Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aporte:  Arduino, mostrar mensajes predefinidos en lcd I2C 16x2
#1
Saludos

Os voy a mostrar el código que he hecho para mostrar unos mensajes ya predefinidos (y que se muestran según la tecla que pulses en un teclado) en una pantalla lcd I2C 16X2 (16 caracteres y 2 líneas)


Materiales utilizados:
  • Una placa arduino Uno o nano (yo he utilizado la nano, pero también vale para la Uno)
  • 4 cables dupont
  • Una pantalla lcd I2C 16X2


[Imagen: lcd_i2c.jpg]




Conexiones:
  • Pin SCL del lcd --> Pin A5 de Arduino
  • Pin SDA del lcd --> Pin A4 de Arduino
  • Pin VCC del lcd --> Pin 5 voltios de Arduino
  • Pin GND del lcd --> Pin GND de Arduino

El código es el siguiente, después de él pasaré a comentarlo:

Código:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup()  
{
  Serial.begin(9600);  

  lcd.begin(16,2);   

  lcd.backlight(); 

}

void loop() 
  {   
    lcd.setCursor(0, 0);
  lcd.write("Esperando datos"); 
  lcd.blink();
  delay(1000);
 if (Serial.available()) {

      delay(100);  
       lcd.setCursor (0,1);
      while (Serial.available() > 0) {
        char pepe = Serial.read();
if (pepe == '1')
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.write("Mensaje recibido");  
   delay(100);  
       lcd.setCursor (0,1);
lcd.write("Hola");
 lcd.noBlink();
}
 
else if (pepe == '2')
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.write("Mensaje recibido");  
   delay(100);  
       lcd.setCursor (0,1);
lcd.write("Adios");
 lcd.noBlink();
}
else 
{
   lcd.clear();
lcd.write("Mensaje erroneo");
 lcd.noBlink();

}      



Comentario del código:
  • Incluimos las librerias necesarias para que todo funcione correctamente.
  • Indicamos todos los pines necesarios
  • Iniciamos la comunicación a 9600 baudios
  • Encendemos el lcd
  • Situamos el cursor del lcd en la primera linea e imprimimos la frase "Esperando datos" con un blink después del último carácter que se enciende y se apaga.
  • Si se inicia la comunicación serial (enviamos algo a la placa arduino) creamos unas variable tipo char (la he llamado pepe) para almacenar los valores de ese envío.
  • Limpiamos la pantalla del lcd
  • En la primera linea mostramos "Mensaje recibido"
  • La segunda linea mostrará, si hemos tecleado un 1 "Hola", si hemos pulsado un 2 "Adios", si pulsamos cualquier otra cosa "Mensaje erroneo"
  • Espera 5 segundos para que podamos leer el mensaje, limpia la pantalla del lcd y vuelve a poner "Esperando datos"
  • Está claro que podemos poner todos los "else if" que queramos para esperar unas pulsaciones de teclado y su correspondiente mensaje a mostrar.

Bueno, espero que os sirve de algo y que el código os sirva para luego ir adaptándolo como vosotros queráis.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)