NOTA
Nel listato che segue le resistenze non hanno il valore di cui sopra. Esso si riferisce alla shield LCD della DFRobat con pulsanti.
/* Una serie di 5 resistenze fanno capo al pin A0. 5 Pulsanti, ciascuno ad ogni pressione cortocircuita una o più resistenze variando il valore di tensione su A0. */ #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 10, 11, 12, 13); # define Pulsanti A0 long Value= 0; void setup() { pinMode(Pulsanti, INPUT); lcd.begin(16, 2); Serial.begin(9600); } void loop() { Value = analogRead(Pulsanti); lcd.clear(); lcd.setCursor(0, 0); lcd.print("VALUE"); lcd.setCursor(12, 0); lcd.print(Value); Serial.print("VALUE "); Serial.println(Value); if (Value >1020) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTI OFF "); Serial.print("TASTI OFF "); } if (Value >=0 && Value <=20) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTI UNO"); Serial.print("TASTI UNO"); } if (Value >=90 && Value <=110) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTO DUE"); Serial.print("TASTO DUE"); } if (Value >=240 && Value <=265) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTO TRE"); Serial.print("TASTO TRE"); } if (Value >=390 && Value <=415) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTO QUATTRO"); Serial.print("TASTO QUATTRO"); } if (Value >=600 && Value <=700) {lcd.setCursor(13, 0); lcd.setCursor(0, 1); lcd.print("TASTO CINQUE"); Serial.print("TASTO CINQUE"); } delay(300); } Breve commento:La pressione di un pulsante varia il valore di una delle due resistenze del partitore, non rimane quindi che leggere il valore analogico e porre le condizioni "if" se il valore è compreso fra -10% e +10% (o altra tolleranza).
Nessun commento:
Posta un commento