lcd 16×2 arduino

lcd 16×2 arduino

Con el siguiente codigo lograremos usar cuatro botones para cuatro mensajes y un mensaje estara fijo por defecto hasta que no se persione un boton.

El diseño puede ser ampliado usando mas botones y claro, mas mensajes por cada boton agregado, hay que destacar que la a limitacion seria el hardware de entradas del arduino que usemos.

 

lcd-2x16-arduino-300x264 lcd 16x2 arduino
lcd 16×2 arduino

A continuacion les dejo e codigo empleado:

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

// constants won't change. Used here to set a pin number :
const int botonD =  11;// the number of the  pin
const int botonC =  10;// the number of the  pin
const int botonB =  9;// the number of the  pin
const int botonA =  8;// the number of the  pin


// Variables will change :
int buttonAantes = 0;
int buttonAahora = 0;

int buttonBantes = 0;
int buttonBahora = 0;

int buttonCantes = 0;
int buttonCahora = 0;

int buttonDantes = 0;
int buttonDahora = 0;

int Estado = 0;

void setup() 
{
  // set the digital pin as output:
  pinMode(botonA, INPUT);
  pinMode(botonB, INPUT);
  pinMode(botonC, INPUT);
  pinMode(botonD, INPUT);
  
  lcd.begin(16, 2);
}

void loop() 
{
  lectura();
  mostrar();
}

void lectura()
{
  buttonAantes = buttonAahora;
  buttonAahora = digitalRead(botonA);
  
  buttonBantes = buttonBahora;
  buttonBahora = digitalRead(botonB);
  
  buttonCantes = buttonCahora;
  buttonCahora = digitalRead(botonC);
  
  buttonDantes = buttonDahora;
  buttonDahora = digitalRead(botonD);
  
  delay(1); //meor es mas rapido, tiempo de espers para mostar mensaje 
}

void mostrar()
{
  if(buttonAantes == 1)
  {
    MensajeLCD("[Mensaje       ]","[uno           ]");
  }
  else if(buttonBantes == 1)
  {
    MensajeLCD("[Mensaje       ]","[dos           ]");
  } 
  else if(buttonCantes == 1 )
  {
    MensajeLCD("[Mensaje       ]","[tres          ]");
  }
  else if(buttonDantes == 1 )
  {
    MensajeLCD("[Mensaje       ]","[cuatro        ]");
  }
  else
  {
    MensajeLCD("[Mensaje       ]","[cero          ]");
  }    
}

void MensajeLCD(String mensajeA, String mensajeB)
{
  //lcd.clear();
  lcd.setCursor(0, 0);  // set the cursor to column 1, line 1
  lcd.print(mensajeA); // Enviar el mensaje
  lcd.setCursor(0, 1);  // set the cursor to column 1, line 2
  lcd.print(mensajeB); // Enviar el mensaje
}

El secreto para que los mensajes salgan rapido al presionar esta en no limpiar la lcd. el metodo .clear esta comentado por esa razon, pero para evitar que el mensaje nuevo a mostrar digamos el mensaje del boton 4 sea menos largo en caracteres que el anterior se le debe dar igual longitud de 16 caracteres rellenando el mensaje con espacios en blanco “Mensaje        .”

Se puede hacer una funcion tambien dentro de MensajeLCD que llene los mensajes de espacios si estos han de faltarles los mismos para cubrir los 16.

Comparte en...lcd-2x16-arduino-300x264 lcd 16x2 arduinolcd-2x16-arduino-300x264 lcd 16x2 arduinolcd-2x16-arduino-300x264 lcd 16x2 arduinolcd-2x16-arduino-300x264 lcd 16x2 arduinolcd-2x16-arduino-300x264 lcd 16x2 arduino

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *