Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino 16×2 LCD Tutorial – Todo lo que necesitas saber

En este tutorial de Arduino aprenderemos a conectar y utilizar un LCD (Liquid Crystal Display) con Arduino . Las pantallas LCD como estas son muy populares y se utilizan ampliamente en muchos proyectos de electrónica porque son excelentes para mostrar información simple, como datos de sensores, a la vez que son muy asequibles.

Ya los he usado en varios de mis proyectos Arduino, y puedes consultarlos aquí:

Puede ver el siguiente video o leer el tutorial escrito a continuación. Incluye todo lo que necesita saber sobre el uso de una pantalla de caracteres LCD con Arduino, como pinout LCD, diagrama de cableado y varios códigos de ejemplo.

¿Qué es la pantalla LCD de caracteres?

Una pantalla de caracteres LCD es un tipo único de pantalla que solo puede generar caracteres ASCII individuales con un tamaño fijo. Usando estos caracteres individuales podemos formar un texto.

Si observamos más de cerca la pantalla, podemos notar que hay pequeñas áreas rectangulares compuestas por una cuadrícula de 5×8 píxeles. Cada píxel puede iluminarse individualmente, y así podemos generar caracteres dentro de cada cuadrícula.

El número de áreas rectangulares define el tamaño de la pantalla LCD. La pantalla LCD más popular es la pantalla LCD de 16×2, que tiene dos filas con 16 áreas rectangulares o caracteres. Por supuesto, hay otros tamaños como 16×1, 16×4, 20×4, etc., pero todos funcionan con el mismo principio. Además, estas pantallas LCD pueden tener diferentes colores de fondo y de texto.

16×2 LCD Pinout

Tiene 16 pines y el primero de izquierda a derecha es el Tierra alfiler. El segundo pin es el VCC que conectamos el pin de 5 voltios en la placa Arduino. El siguiente es el pin Vo en el que podemos conectar un potenciómetro para controlar el contraste de la pantalla.

A continuación, el RS pin o pin de selección de registro se utiliza para seleccionar si enviaremos comandos o datos a la pantalla LCD. Por ejemplo, si el pin RS está configurado en estado bajo o cero voltios, entonces estamos enviando comandos a la pantalla LCD como:coloque el cursor en una ubicación específica, borre la pantalla, apague la pantalla, etc. Y cuando el pin RS está configurado en estado alto o 5 voltios, estamos enviando datos o caracteres a la pantalla LCD.

Luego viene el R/W pin que selecciona el modo si vamos a leer o escribir en la pantalla LCD. Aquí el modo de escritura es obvio y se usa para escribir o enviar comandos y datos a la pantalla LCD. El modo de lectura es utilizado por la propia pantalla LCD cuando se ejecuta el programa, del cual no tenemos necesidad de hablar en este tutorial.

El siguiente es el E pin que permite escribir en los registros, o los siguientes 8 pines de datos de D0 a D7. Entonces, a través de estos pines, estamos enviando los datos de 8 bits cuando estamos escribiendo en los registros o, por ejemplo, si queremos ver la última A mayúscula en la pantalla, enviaremos 0100 0001 a los registros de acuerdo con la tabla ASCII. Los dos últimos pines A y K , o el ánodo y el cátodo son para la retroiluminación LED.

Después de todo, no tenemos que preocuparnos mucho por cómo funciona la pantalla LCD, ya que la biblioteca de cristal líquido se encarga de casi todo. Desde el sitio web oficial de Arduino puede encontrar y ver las funciones de la biblioteca que permiten un fácil uso de la pantalla LCD. Podemos usar la Biblioteca en modo de 4 u 8 bits. En este tutorial lo usaremos en modo de 4 bits, o solo usaremos 4 de los 8 pines de datos.

Cómo conectar Arduino a LCD – Diagrama de cableado

Así es como necesitamos conectar la pantalla LCD de 16×2 a una placa Arduino.

Usaremos solo 6 pines de entrada digital de la placa Arduino. Los registros de la pantalla LCD de D4 a D7 se conectará a los pines digitales de Arduino del 4 al 7. El Habilitar pin se conectará al pin número 2 y el RS el pin se conectará al pin número 1. El R/W pin se conectará a Tierra y el Vo El pin se conectará al pin central del potenciómetro.

Puede obtener estos componentes en cualquiera de los siguientes sitios:

  • LCD de 16×2 caracteres……………………..
  • Potenciómetro …………………………….
  • Placa Arduino ………………………………
  • Placa de prueba y cables de salto ……… 

Ajuste del contraste de la pantalla LCD

Podemos ajustar el contraste de la pantalla LCD ajustando la entrada de voltaje en el Vo alfiler. Estamos usando un potenciómetro porque de esa manera podemos ajustar fácilmente el contraste, ajustando el voltaje de entrada de 0 a 5V.

¿Puedo usar la pantalla LCD sin potenciómetro?

Sí, en caso de que no tengamos un potenciómetro, aún podemos ajustar el contraste de la pantalla LCD usando un divisor de voltaje hecho de dos resistencias. Usando el divisor de voltaje, debemos establecer el valor del voltaje entre 0 y 5V para obtener un buen contraste en la pantalla. Descubrí que el voltaje de alrededor de 1V funcionó muy bien para mi LCD. Usé una resistencia de 1K y 220 ohmios para obtener un buen contraste.

También hay otra forma de ajustar el contraste de la pantalla LCD, y es suministrando una señal PWM desde el Arduino al Vo pin de la pantalla LCD. Podemos conectar el Vo pin a cualquier pin compatible con Arduino PWM, y en la sección de configuración, podemos usar la siguiente línea de código:

analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)Code language: Arduino (arduino)

Generará una señal PWM en el pin D11, con un valor de 100 de 255, que se tradujo en un voltaje de 0 a 5 V, será de alrededor de 2 V de entrada en el Vo pin LCD.

Código Arduino LCD

Aquí hay un código simple a través del cual podemos explicar el principio de funcionamiento de la biblioteca Liquid Crystal. Este es el código del primer ejemplo del video:

/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.print("Arduino"); // Prints "Arduino" on the LCD 
 delay(3000); // 3 seconds delay 
 lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed 
 lcd.print("LCD Tutorial"); 
 delay(3000); 
 lcd.clear(); // Clears the display 
 lcd.blink(); //Displays the blinking LCD cursor 
 delay(4000); 
 lcd.setCursor(7,1); 
 delay(3000); 
 lcd.noBlink(); // Turns off the blinking LCD cursor 
 lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written 
 delay(4000); 
 lcd.noCursor(); // Hides the LCD cursor 
 lcd.clear(); // Clears the LCD screen 
}Code language: Arduino (arduino)

Descripción del código:

Lo primero que debemos hacer es insertar la biblioteca de cristal líquido. Podemos hacerlo así:Bosquejo> Incluir biblioteca> Cristal líquido. Luego tenemos que crear un objeto LC. Los parámetros de este objeto deben ser los números de los pines de entrada digital de la placa Arduino respectivamente a los pines de la pantalla LCD de la siguiente manera:(RS, Habilitar, D4, D5, D6, D7). En la configuración, tenemos que inicializar la interfaz a la pantalla LCD y especificar las dimensiones de la pantalla usando begin() función.

En el bucle escribimos nuestro programa principal. Usando imprimir() función que imprimimos en la pantalla LCD.

lcd.print("Arduino"); // Prints "Arduino" on the LCDCode language: Arduino (arduino)

El setCursor() La función se utiliza para configurar la ubicación en la que se mostrará el texto subsiguiente escrito en la pantalla LCD.

lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed Code language: Arduino (arduino)

El parpadeo() La función se utiliza para mostrar un cursor parpadeante y el noBlink() función de apagado.

lcd.blink(); //Displays the blinking LCD cursorCode language: Arduino (arduino)

El cursor() La función se utiliza para mostrar el cursor de subrayado y el noCursor() Función para apagar. Usando clear() función podemos borrar la pantalla LCD.

lcd.clear(); // Clears the LCD screenCode language: Arduino (arduino)

Ejemplo de desplazamiento de texto en LCD 16×2 y Arduino

En caso de que tengamos un texto con una longitud superior a 16 caracteres, podemos desplazar el texto usando el scrollDisplayLeft() o scrollDisplayRight() función de la biblioteca LiquidCrystal.

Aquí hay un código de ejemplo:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}
void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
}Code language: Arduino (arduino)

Podemos elegir si el texto se desplazará hacia la izquierda o hacia la derecha, usando el scrollDisplayLeft() o scrollDisplayRight() funciones Con el retraso() función podemos establecer la velocidad de desplazamiento.

Si desea tener más control sobre cómo se desplaza el texto, también puede realizar el desplazamiento por su cuenta utilizando un bucle "for". He aquí un ejemplo:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display

}

void loop() {
  // scroll text to the right
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
    lcd.print("LCD");
    delay(500); // 1 second delay
    lcd.clear(); // Write a character to the LCD
  }
  // scroll text to the left
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500); 
    lcd.clear(); 
  }
}Code language: Arduino (arduino)

Cómo generar y mostrar caracteres personalizados en la pantalla LCD

Además de los caracteres ASCII, con la biblioteca LiquidCrystal también es posible generar y mostrar caracteres personalizados en la pantalla LCD.

Podemos especificar la apariencia de cada carácter mediante una matriz de 8 bytes. Aquí hay un código de ejemplo:

#include <LiquidCrystal.h>

byte heart[8] = {  // Array of bytes
  B00000,          // B stands for binary formatter and the five numbers are the pixels
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

byte smile[8] = {
  B00000,
  B00000,
  B01010,
  B00000,
  B10001,
  B01110,
  B00000,
  B00000
};

byte lock[8] = {
  B01110,
  B10001,
  B10001,
  B11111,
  B11011,
  B11011,
  B11111,
  B00000
};

byte character[8] = {
  B11111,
  B10101,
  B11111,
  B01010,
  B01110,
  B11111,
  B01110,
  B01110
};


LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
  lcd.createChar(0, heart); // Create a custom character
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);

  // Clears the LCD screen
  lcd.clear();

  // Print a message to the LCD
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);
  lcd.write(byte(0));  // Display the custom character 0, the heart

  lcd.setCursor(5, 1);
  lcd.write(byte(1));

  lcd.setCursor(9, 1);
  lcd.write(byte(2));

  lcd.setCursor(13, 1);
  lcd.write(byte(3));
}Code language: Arduino (arduino)

Podemos notar cómo podemos especificar la apariencia del personaje cambiando los 0 por 1 dentro de la cuadrícula de 5×8 píxeles.

En la configuración, tenemos que crear el personaje personalizado usando createChar() función.

lcd.createChar(0, heart); // Create a custom characterCode language: Arduino (arduino)

El primer parámetro en esta función es un número entre 0 y 7, o tenemos que reservar uno de los 8 caracteres personalizados admitidos. El segundo parámetro es el nombre de la matriz de bytes.

Escribimos el carácter personalizado en la pantalla usando write() función y como parámetro usamos el número del carácter.

lcd.write(byte(0));  // Display the custom character 0, or the heartCode language: Arduino (arduino)

Ver también: Tutorial de pantalla táctil de Arduino | LCD TFT

Conclusión

Entonces, hemos cubierto casi todo lo que necesitamos saber sobre el uso de una pantalla LCD con Arduino. Estas pantallas de caracteres LCD son realmente útiles para mostrar información para muchos proyectos electrónicos. En los ejemplos anteriores, utilicé una pantalla LCD de 16 × 2, pero el mismo principio de funcionamiento se aplica a cualquier otro tamaño de estas pantallas de caracteres.

Espero que hayas disfrutado este tutorial y hayas aprendido algo nuevo. No dude en hacer cualquier pregunta en la sección de comentarios a continuación y no olvide consultar mi colección completa de más de 30 proyectos Arduino.


Proceso de manufactura

  1. Todo lo que necesita saber sobre la electroerosión por inmersión
  2. Todo lo que necesitas saber sobre el hierro fundido
  3. Todo lo que necesitas saber sobre el alto horno
  4. Todo lo que necesitas saber sobre la máquina perforadora
  5. Todo lo que necesitas saber sobre las chapas
  6. Todo lo que necesita saber sobre la fresadora
  7. Todo lo que necesitas saber sobre una máquina cepilladora
  8. Todo lo que necesitas saber sobre la máquina moldeadora
  9. Todo lo que necesitas saber sobre la metalurgia
  10. Todo lo que necesita saber sobre la máquina CNC
  11. Todo lo que necesitas saber sobre la prensa mecánica