Hai scritto nel programma per Arduino qualcosa come:
lcd.print ("Ciao, mondo!")
La lavagna eseguì obbedientemente il comando e il testo apparve sul display. Ma come ha fatto un dispositivo a "dire" qualcosa e il secondo a "sentire" e "capire"? È come chiedere all'artista di realizzare il tuo ritratto, ma non vedere come ci lavora. L'autore di Instructbles con il soprannome indoorgeek ha creato uno stand che ti aiuterà a sentirti nei panni dell '"Arduino vivente" e a guidare l'HD44780 a un livello basso. In uno dei concorsi, questo prodotto fatto in casa ha vinto il primo premio.
Ha bisogno di un piccolo dettaglio: qualsiasi modulo (LCD, VLI o PMOLED) sul controller HD44780 o compatibile, otto interruttori a levetta, un pulsante senza blocco, un interruttore a scorrimento, un resistore variabile da 1 kΩ, una scheda con una presa Micro USB e una custodia.
Da ciò che non è mostrato nella foto, abbiamo bisogno di: una resistenza di 10 kOhm e un condensatore di 100 μF e almeno 6,3 V.
Indoorgeek stesso prese un modulo del tipo più comune: LCD, 16 caratteri per riga, due righe. Ma il resto dei moduli ha lo stesso principio di controllo, solo la piedinatura può differire leggermente, quindi non essere troppo pigro per guardare nel foglio dati.
In tutti i casi, la connessione al filo comune corrisponde a zero logico e la connessione al bus di alimentazione +5 volt corrisponde all'unità.
I pin 1 e 2 servono per alimentare il modulo. Il primo è sempre collegato a un filo comune e il secondo è sempre con un bus di alimentazione.
Il pin 3 serve per regolare il contrasto. Quando viene applicata una tensione da 0 a 5 volt rispetto al filo comune, il contrasto cambia da zero a massimo.
Il pin 4 consente di scegliere tra un registro dati e un registro istruzioni. Diamo uno zero logico: il registro delle istruzioni (in altre parole, comandi) è selezionato, l'unità è il registro dei dati.
Le istruzioni possono essere, ad esempio, le seguenti: inizializzare il controller, cancellare lo schermo, ecc., E i dati includono segni che verranno visualizzati sull'indicatore.
Al contrario, puoi leggere i dati da alcuni registri. Per fare ciò, è necessario applicare un livello elevato al pin 5 e il display tornerà in modalità di output delle informazioni al microcontrollore. Per iniziare a scrivere nuovamente i dati dal microcontrollore sul controller del display, è necessario inviare un livello basso 5 al pin 5. Abbastanza spesso, la modalità di lettura non viene affatto utilizzata, come, ad esempio, in questo prodotto fatto in casa.
Secondo i pin da 7 a 14, il display può scambiare comandi e dati con codifica a 8 bit. Il livello più basso corrisponde al pin 7, il più alto - 14.
Il pin 6 è necessario per il gate.Stai lentamente impostando i dati sui pin da 7 a 14, ma mentre il pin 6 è uno zero logico, il modulo non risponde affatto a questo. Quindi, senza modificare lo stato dei pin da 7 a 14, si invia un impulso a breve termine di alto livello al pin 7 e i dati vengono trasmessi.
Conclusioni 15 e 16 - eventuale nutrizione della retroilluminazione. 15 - più, 16 - meno.
Disponibile per indorgeek, la custodia si è rivelata di dimensioni 200x150x40 millimetri. Questo caso è stato preso da un altro, smontato fatto in casa, e c'erano già buchi. Il maestro li ha usati al massimo nel nuovo design per fare il meno possibile quelli aggiuntivi.
Ha impostato otto interruttori a levetta per cambiare lo stato delle linee del bus dati / comando, un interruttore per scegliere tra i registri (vedi sopra), un pulsante per il gate, un resistore variabile per la regolazione continua del contrasto.
La riser board con un jack Micro USB ha comodi piedini che facilitano il collegamento dei cavi. Ne servono solo due: +5 V e un filo comune. Se non hai una scheda di questo tipo e una presa Micro USB saldata da qualche parte sembra scomoda per la saldatura, puoi semplicemente prendere un cavo con un connettore USB. In ogni caso, ripetiamo dopo il master e la saldatura un tale schema:
I contatti degli interruttori a levetta corrispondenti alla posizione superiore, indorgeek sono collegati tra loro e presentano un vantaggio su di essi. Ha fatto lo stesso con i contatti degli interruttori a levetta corrispondenti alla posizione inferiore, solo che ha dato loro un segno meno. Ha collegato i contatti mobili degli interruttori a levetta non tra loro, ma con le conclusioni dei comandi bus / modulo dati in base al “peso” di entrambi (D0 - pin 7 - ordine basso, D7 - pin 14 - alto). Se i maestri non avessero morso le resistenze pull-up infuriate durante l'infanzia, sarebbe in grado di utilizzare interruttori a levetta più semplici - non commutare, ma normalmente aperti.
Ma gli stessi resistori, ma nei circuiti di soppressione del contatto rimbalzano, non fu mai offeso. Qui, questo circuito è necessario in modo che il controller del display non tenga premuto il pulsante strobo per diversi. Altri controlli non richiedono la soppressione delle vibrazioni, poiché finché non vengono ricevuti gli impulsi strobo, i dati sulle linee rimanenti possono cambiare molte volte come desiderato. La cosa principale è non toccare gli interruttori a levetta e l'interruttore con il pulsante premuto. Quindi, con una resistenza di 10 kOhm, il master ha tirato il pin 6 sul filo comune e con il pulsante sul bus positivo. Poiché la resistenza del pulsante è molto più bassa, quando viene premuta, "trascina". Quando viene rilasciato, la sua resistenza si avvicina all'infinito e il resistore lo sta già "tirando". Un condensatore da 100 uF (non mostrato nello schema), collegato da un positivo al bus positivo, e da un negativo alla resistenza e alla sesta uscita del display, sopprime le vibrazioni. È meglio, ovviamente, sopprimere le chiacchiere con un pulsante di commutazione e RS-trigger.
All'interruttore a scorrimento, le uscite dei contatti fissi sono collegate allo stesso modo degli interruttori a levetta e di quello mobile - all'uscita del modulo 6. Qui, lo sviluppatore ha mostrato ancora una volta la paura dei resistori pull-up. Questo interruttore è necessario per scegliere tra le modalità di trasmissione dei comandi (zero) e dei dati (unità).
Indoorgeek ha collegato l'uscita del resistore variabile corrispondente al contrasto minimo al filo comune, l'opposto al bus positivo e il mezzo (motore) alla terza uscita del modulo.
Conclusioni 1, 5 e 16 (rispettivamente, meno potenza, scrittura / lettura e meno retroilluminazione) il master si è collegato a un filo comune, quindi la modalità di registrazione è selezionata in modo continuo. Conclusioni 2 e 15 (rispettivamente, più potenza e più retroilluminazione), si è collegato al bus a cinque volt. Una resistenza di limitazione della corrente attraverso i LED di retroilluminazione è integrata nel modulo display.
Se hai raccolto tutto questo, di fronte a te ora - qualcosa del genere:
Il pannello frontale indoorgeek progettato in modo da poter fare lo stesso:
Puoi imparare i comandi del controller HD44780 e come controllarli scheda tecnica. Puoi anche vedere esempi di script già pronti per simulatore. Per cominciare, ripeteremo i passaggi dietro indoorgeek per visualizzare CIAO!
Accendi il dispositivo. La retroilluminazione si accenderà. Spostare l'interruttore a scorrimento nella posizione corrispondente allo zero logico, in modo che l'indicatore passi alla modalità di ricezione dei comandi. Impostare il numero binario 00001111 sul comando / bus dati con i bicchieri e premere brevemente il pulsante strobo. Questo comando significa: accendere il display, rendere visibile e lampeggiante il cursore, il che accadrà. Allo stesso modo, emetteremo il comando 00110000, che significa: ricevere dati in formato 8 bit, selezionare la prima riga e il carattere 5 di 8 pixel. Visivamente, non succederà nulla, ma da qualche parte all'interno del controller del display si verificheranno gli interruttori necessari. È possibile trasferire dati. Traduciamo l'interruttore a scorrimento nella posizione corrispondente all'unità logica, ora il modulo indicatore è pronto per accettarli. Impostare il codice ASCII della lettera H, ovvero 01001000, attivare / disattivare gli interruttori a levetta sul bus e premere il pulsante strobo. La lettera corrispondente appare sullo schermo e il cursore si sposta di una posizione verso destra. Allo stesso modo, passeremo le lettere E, L, L, O e un punto esclamativo: 01000101, 01001100, 01001100, 01001111, 00100001. Se hai fatto la stessa cosa, non importa sullo stand che hai appena assemblato o nel simulatore, vedrai l'iscrizione HELLO ! In questo modo:
Ecco come hai capito quanto Arduino fa per mostrare solo pochi personaggi. E ci sono squadre per eseguire azioni più complesse, dopo aver imparato che puoi ottenere effetti interessanti, definire personaggi non standard ...
La tua escursione nella "cucina" della libreria Arduino LiquidCrystal è solo all'inizio e lascia che sia divertente!