Nel caso ve lo steste chiedendo, si mi sono presentato un paio di settimane fa e sono rimasto nell'ombra ad osservarvi
Ritornando al discorso, sto smanettando su un progettino utilizzando arduino mega. È un progetto di "domotica", le virgolette sono necessaria perchè in realtà mi occupo solo della mia stanza.
Al momento arduino controlla due relè, un sensore di temperatura, uno di movimento, una fotoresitenza, un lcd con i2c e una scheda wireless con 4 relè che uso come telecomando per selezionare varie impostazioni.
Avendo comprato un tastierino numerico (matrice 4 x 3) da utilizzare per inserire una password mi sono accorto che sarebbe meglio affiancarlo ad un ulteriore lcd. Come da oggetto uso arduino mega (non originale) e il primo lcd è collegato alle uscite SCL e SDA. Il display che ho al momento collegato è un 20 x 4 con integrato i2c (modello 1602 retroilluminato blu).
Se ne volessi collegare un altro come dovrei fare, da un punto di vista hardware, avendo solo quella uscita disponibile? Possibilmente vorrei restare con un lcd con un integrato l'i2c (comodissimo ).
Quello che però vorrei evitare è lo sbatti di dover comprare un altro arduino per farli comunicare...
Idee??
Di dispositivi I2C ne puoi collegare parecchi sugli stessi pin SDA e SCL. Infatti questo protocollo prevede che ogni dispositivo abbia un suo indirizzo. Questo indirizzo dipende dal dispositivo collegato: "l'integrato I2C" collegato al display ha di solito (ma non so quale sia quindi tiro ad indovinate) 3 jumper che servono a sciegliere appunti l'indirizzo del dispositivo stesso.
Non proprio, prima devi intervenire sulla scheda I2C, modificando l'indirizzo
( in pratica ponticellare una delle piazzole marcate A0, A1, A2 )
In modo da assegnargli un indirizzo diverso
Brunello:
Poi si passa alla aggiunta/modifica nello sketch
Ovvero per inizializzare i 2 display:
LiquidCrystal_I2C lcd1(0x27,20,4); //0x27 indirizzo primo display
LiquidCrystal_I2C lcd2(0x20,20,4); //0x20 indirizzo secondo display
Quando devi scrivere sul primo display:
lcd1.print("Hello, world!");
mentre per scrivere sul secondo:
lcd2.print("Hello, world!");
Alcune precisazioni:
-gli indirizzi dei display sono messi a caso: non so quali display tu hai;
-non so che libreria tu stai usando, devi vedere gli esempi della tua libreria.
@Brunello: ho citato il tuo post per rispondere a stefano_raptor