#include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key = 0; int adc_key_in = 0; #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 int read_LCD_buttons() // para leer los botones
int read_LCD_buttons() { adc_key_in = analogRead(0); // Leemos A0 // Mis botones dan: 0, 145, 329,507,743 // Y ahora los comparamos con un margen comodo if (adc_key_in > 900) return btnNONE; // Ningun boton pulsado if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 250) return btnUP; if (adc_key_in < 450) return btnDOWN; if (adc_key_in < 650) return btnLEFT; if (adc_key_in < 850) return btnSELECT; return btnNONE; // Por si todo falla }
void setup() { lcd.begin(16, 2); // Inicializar el LCD lcd.setCursor(0,0); lcd.print("Prometec.net"); // print a simple message }
void loop() { lcd.setCursor(9,1); // Cursor a linea 2, posicion 9 lcd.print(millis()/1000); // Imprime segundos lcd.setCursor(13, 0); // Cursor a linea 1, posicion 13 lcd.print(key); // Imprime el valor leido en la puerta A0 lcd.setCursor(0,1); // Cursor a linea 2, posicion 1 lcd_key = read_LCD_buttons(); if( lcd_key == btnRIGHT) lcd.print("RIGHT "); else if ( lcd_key == btnLEFT ) lcd.print("LEFT "); else if ( lcd_key == btnUP) lcd.print("UP "); else if ( lcd_key == btnDOWN) lcd.print("DOWN "); else if ( lcd_key == btnSELECT) lcd.print("SELECT"); else if ( lcd_key == btnNONE) lcd.print("NONE "); }
Si necesitas asesoría en proyectos de Arduino, Raspberry, electrónica, estamos localizados en la ciudad de Quito Ecuador. Somos Microlab.
Dejar una contestacion