27.- LCD Keypad Shield

Publicado el 24 diciembre 2013 por Practicandoarduino @PracticaArduino

Hola a todos, en este tutorial vamos a aprender a usar un LCD Keypad Shield, el sketch es muy sencillo, lo único que hace es dependiendo del botón que pulsemos, multiplica por 10 un número, lo divide por 10, le suma o le resta 1 o lo multiplica por si mismo. Si pulsamos reset volvemos al estado inicial.

No diré nada sobre conexiones ya que el LCD Keypad Shield se conecta directamente sobre nuestra placa Arduino, no hay que hacer nada más, en este caso como no vamos a interactuar con más no hace falta hacer ninguna conexión.

Código fuente:

 
#include <LiquidCrystal.h>
 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int pulsacion, oldpulsacion;
double valor=2.0;
void setup() {
  lcd.begin(16, 2);
  lcd.clear();
  Serial.begin(9600);
}
 
void loop() {
  pulsacion=analogRead(0);
  Serial.println(pulsacion);
  if (pulsacion!=oldpulsacion & abs(pulsacion-oldpulsacion)>1){
    switch (pulsacion){
     case 0:
       valor=valor*10;
       break;
     case 258:
       valor--;
       break;
     case 101:
       valor++;
       break;
     case 413:
       valor=valor/10;
       break;
     case 642:
       valor=valor*valor; 
    }
    lcd.print("Usando LCD");
    lcd.setCursor(0,1);
    lcd.print(valor);
    lcd.setCursor(0,0);
    oldpulsacion=pulsacion;
  }
 
}

Vamos a ver el código, en primer lugar incluimos la libreria LiquidCrystal que es la encargada de controlar el LCD Keypad Shield y configuramos sus pins (en mi caso 8,9,4,5,6,7), tened en cuenta que dependiendo del fabricante varían.
En el void setup() indicamos que el lcd (en mi caso) tiene 2 lineas y 16 caracteres por linea, lo limpiamos, lo cual borra la pantalla y coloca el cursor en la posición 0,0 que el primer caracter de la primera linea.
Para leer los botones usamos la entrada analógica 0, y según el valor leído actuamos. Aclaro que no me convence mucho este método ya que si haceis un sketch para que muestre por el Lcd Keypad shield el valor que devuelve la pulsación y que ese mismo valor salga por el monitor serie vereis que son distintos. Usando los que aparecen en el monitor serie funciona el sketch así que tomé dichos valores. Con las variables pulsacion y oldpulsacion controlamos que cuando el usuario deje pulsado el boton este solo haga una operación, el problema es que algunos botones nod an un valor fijo al pulsarlo, sino que varia en un dígito, por eso la segunda comprobación del if, si el valor absoluto de su resta es mayor que 1 es que hemos pulsado otro botón si no es que sigue pulsado el mismo pero ha variado en un dígito.
Actuamos sobre nuestra variable valor, la mostramos y actualizamos pulsación.



style="display:inline-block;width:728px;height:15px"
data-ad-client="ca-pub-3868159888315364"
data-ad-slot="7639712738">

PracticandoArduino