Ciao Pgiagno,
Ho fatto il programma come mi hai detto tu, sostituendo init() con begin() per l'LCD, ma mi da errore e non me lo caricava. inserendo init, mi ha caricato il programma.
ho editato per scrivere nelle altre corsie, e ci sono riuscito senza problema, ma ho un dubbio:
all'inizio del listato, c'è settato il pulsante all'uscita 11, (start) ma non sono settati i pulsanti di stop. Per settarli, riscrivo lo stesso pezzo di programma, sostituendo 11 con le porte che userò, ma non riesco a capire come abbinarlo alla linea del display specifica.
Ciao e grazie
Ivan
ecco il programma:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display
#define BUTTON 11
int val;
void setup()
{
pinMode(BUTTON, INPUT_PULLUP);
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("CORSIA 1 ");
lcd.setCursor(0,1);
lcd.print("CORSIA 2 ");
lcd.setCursor(0,2);
lcd.print("CORSIA 3 ");
lcd.setCursor(0,3);
lcd.print("CORSIA 4 ");
}
void loop()
{
val = digitalRead(BUTTON);
if (val == HIGH) { //il pulsante è rilasciato
lcd.setCursor(9,0);
lcd.print("PRONTA ");
}
if (val == LOW) { //il pulsante è premuto
lcd.setCursor(9,0);
lcd.print("NON ATTIVA");
}
val = digitalRead(BUTTON);
if (val == HIGH) { //il pulsante è rilasciato
lcd.setCursor(9,1);
lcd.print("PRONTA ");
}
if (val == LOW) { //il pulsante è premuto
lcd.setCursor(9,1);
lcd.print("NON ATTIVA");
}
val = digitalRead(BUTTON);
if (val == HIGH) { //il pulsante è rilasciato
lcd.setCursor(9,2);
lcd.print("PRONTA ");
}
if (val == LOW) { //il pulsante è premuto
lcd.setCursor(9,2);
lcd.print("NON ATTIVA");
}
val = digitalRead(BUTTON);
if (val == HIGH) { //il pulsante è rilasciato
lcd.setCursor(9,3);
lcd.print("PRONTA ");
}
if (val == LOW) { //il pulsante è premuto
lcd.setCursor(9,3);
lcd.print("NON ATTIVA");
}
}