Buon giorno, avrei in testa un progettino per cui però mi servirebbero a disposizione un numero molto elevato di input ed associato ad ogni input un messaggio su uno schermo LCD.
Uno schermo a 2 righe tipo questo https://www.arduino.cc/en/uploads/Tutorial/lcd_photo.png non andrebbe bene in quanto i messaggio che dovrebbe far leggere sarebbere lunghi 5-6 righe ( sui 160 caratteri o qualcosa di più).
Ho visto che il controllore con maggior numero di input digitali è l'Arduino MEGA o l' Arduino Due che ne hanno 52; a me ne servirebbero circa 120 quindi mi servirebbero circa 3 controllori.
L'input sarebbe legato alla chiusura di circuiti con degli interruttori che farebbero passare da 0 a 1 l'input del controllore e dovrebbero far visualizzare sull' LCD un messaggio ( a seconda della posizione).
Quindi potrei collegare più controllori ad uno stesso schermo LCD?
Quale schermo LCD mi consigliate sulle dimensioni dei 4" o quadrato o rettangolare che possa comunicare con Arduino?
Avete anche qualche idea sulla programmazione?
Sì però quegli LCD sono "piccolini" e con sole 2 righe contenenti poche parole, mi servirebbe un LCD di 4" (oltre non mi ci starebbe e al di sotto sarebbe troppo piccolo per leggere) che mi permetta di leggere 5-6 righe..
Di quei display ce ne sono di varie dimensioni a parte il classico 16x2.
Trovi tranquillamente i 20x4 il I2C ( ne compri 2 e li colleghi con soli 2 fili).
Esiste anche il 40x4 link e in questo post lo hanno usato.
Roba più grande ci sono i Nextion, sono anche touch (non li ho mai usati).
Poi vedi tu.
Ciao grazie delle dritte.. Ora cercherò lo schermo più adatto alle mie esigenze.. Su una cosa però non ho ricevuto risposta : io ho la necessità di avere 120 ingressi ( e quindi la necessità di utilizzare 3 arduino Mega ognuno con 52 digital pin) posso collegarli tutti e 3 allo stesso monitor? Ossia saldare i 2 cavi uscenti da ciascun controllore tra di loro in modo che tutti e 3 siano contemporaneamente collegato allo stesso display?
Gagge89:
Ossia saldare i 2 cavi uscenti da ciascun controllore tra di loro in modo che tutti e 3 siano contemporaneamente collegato allo stesso display?
No, non è possibile; è come se ti parlassero contemporaneamente 3 persone, non ci si capisce niente.
Esistono dei port-expander tipo MCP23017 o altri che aumentano il numero di entrate e uscite.
Anche qui Google aiuta parecchio.
La cosa migliore da fare, se sai usare un saldatore, è quella di usare 8 port expander MCP23017.
Costano poco link , ne puoi collegare fino a 8 ( cosi da avere 16x8 = 128 Input ) , sono facili da gestire ( Esempio ), ci sono anche librerie che aiutano esempio e sostanzialmente visto che si collegano ad Arduino in I2C ti servono solo 2 pin.
E se la memoria a disposizione ti basta , con una UNO gestisci il tutto.
Poi volendo puoi anche usare tre Mega, ma l'LCD lo devi collegare solo su una scheda ed eventualmente collegare le tre mega tra di loro, ad esempio attraverso la seriale, e appunto leggere i dati che arrivano anche dalle altre schede.
Comunque non è che con le tre Mega semplifichi, perchè infilare 120 cavetti nei contatti degli Arduini rende la cosa molto "ballerina"
Mettendo resistenze pesate sugli interruttori e usando gli ingressi analogici di Arduino Uno potresti mettere 6 interruttori su ogni ingresso (in teoria ce ne andrebbero anche di più, ma già devi usare resistenze di precisione e forse aggiustare le soglie in fase di collaudo), per un totale di 6x6=36 ingressi. Già è qualcosa...
Un'altra soluzione è fare una scansione. Contando anche gli ingressi analogici (che puoi usare come porte digitali) Arduino ha 20 I/O: se ne lasci liberi 16, puoi fare 8 uscite e 8 ingressi: 8x8=64... Uhm...
Se lavori con l'oscillatore interno a 8MHz puoi usare anche i 2 pin del quarzo: se ne lasci liberi 18, 9x9=81...
Alle risposte che ho letto qui, e che condivido, direi che per darti un consiglio migliore dovresti descriverci meglio come mai hai 120 input digitali ossia di che tipo sono e cosa ne vuoi farne.
Ad esempio "chiusura di circuiti con degli interruttori" non è chiaro, sono quindi 120 interruttori o cosa? Su questi input (o anche un sottoinsieme) devi attivare procedure in interrupt oppure puoi pensare ad un polling ossia una interrogazione dello stato ad ogni ciclo di elaborazione di Arduino?
Perché nel primo caso devi per forza avere un pin fisicamente connesso, nel secondo invece puoi usare i port expander che ti hanno consigliato oppure farti da te il circuito usando più shift register (vedi qui).
In alcuni casi ho anche io usato un partitore per avere un input (ad esempio un commutatore a 6 posizioni mi occupa 1 solo pin analogico), per cui se spieghi meglio l'esigenza ti si può consigliare al meglio..