|
|
/* Test_LCD-keypad.pde Il programma permette di verificare il funzionamento del display LCD e del Keypad. Sul display viene mostrato il nome del tasto premuto Vengono utilizzati i seguenti pin Pin +5V -> Alimentazione Pin GND -> Alimentazione Pin Digital 4 -> Bus D4 dati LCD Pin Digital 5 -> Bus D5 dati LCD Pin Digital 6 -> Bus D6 dati LCD Pin Digital 7 -> Bus D7 dati LCD Pin Digital 8 -> terminale RS display LCD Pin Digital 9 -> terminale EN display LCD Pin Digital 10 -> attivazione retroilluminazione Pin Analogico 0 -> lettura keypad Creato il 20/9/2010 da Adriano Gandolfo <https://www.adrirobot.it> This example code is in the public domain. */ #include <LiquidCrystal.h> // Selezione dei pin utilizzati dal display LCD // Sintassi LiquidCrystal(rs, enable, d4, d5, d6, d7) LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // defininizione dei valori utilizzati da pulsanti 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 // lettura del pulsante int read_LCD_buttons() { adc_key_in = analogRead(0); // lettura del valore if (adc_key_in > 1000) return btnNONE; if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 195) return btnUP; if (adc_key_in < 380) return btnDOWN; if (adc_key_in < 555) return btnLEFT; if (adc_key_in < 790) return btnSELECT; return btnNONE; } void setup() { pinMode(10, OUTPUT); //ricordarsi di attivarlo come uscita analogWrite(10, 90); lcd.begin(16, 2); // inizializzazione libreria lcd.setCursor(0,0); lcd.print("Premi pulsante!"); // Scrittura messaggio } void loop() { lcd.setCursor(10,1);// spostamento del cursore lcd.print(millis()/1000); // mostra i secondo dall'attivazione del programma lcd.setCursor(0,1); // spostamento cursore lcd_key = read_LCD_buttons(); // Lettura del tasto premuto switch (lcd_key)// in base al valore letto mostra un diverso messaggio { case btnRIGHT: { lcd.print("DESTRA "); break; } case btnLEFT: { lcd.print("SINISTRA "); break; } case btnUP: { lcd.print("SU "); break; } case btnDOWN: { lcd.print("GIU' "); break; } case btnSELECT: { lcd.print("SELEZIONE"); break; } case btnNONE: { lcd.print("NESSUNO "); break; } } } |
Elenco revisioni | |
22/09/2011 | Emissione preliminare |