Sommario:

1602 Modulo schermo tastiera LCD con zaino I2C: 6 passaggi
1602 Modulo schermo tastiera LCD con zaino I2C: 6 passaggi

Video: 1602 Modulo schermo tastiera LCD con zaino I2C: 6 passaggi

Video: 1602 Modulo schermo tastiera LCD con zaino I2C: 6 passaggi
Video: Use 16x2 LCD Display with Raspberry Pi 4 2024, Luglio
Anonim
1602 Modulo schermo tastiera LCD con zaino I2C
1602 Modulo schermo tastiera LCD con zaino I2C

Nell'ambito di un progetto più ampio, volevo avere un display LCD e una tastiera per la navigazione di alcuni semplici menu. Userò molte delle porte I/O su Arduino per altri lavori, quindi volevo un'interfaccia I2C per l'LCD. Quindi ho acquistato dell'hardware, costituito da un modulo di schermatura per tastiera LCD 1602 da DFRobot e un modulo seriale I2C anonimo per LCD. Voglio usarli con un Arduino Nano. Poi ho scoperto che ci sono alcune sfide per far funzionare insieme questi componenti, ma è possibile. Quindi voglio condividere la mia esperienza e forse aiutare altri.

Questa foto è della breadboard funzionante, che può visualizzare messaggi sul display LCD e identificare le pressioni dei tasti. L'LCD è controllato tramite l'interfaccia I2C, inclusa la retroilluminazione dell'LCD. Le pressioni dei tasti vengono ricevute dall'Arduino sul pin A0 (può essere uno qualsiasi dei pin analogici, ad eccezione di A4 e A5 che sono legati all'interfaccia I2C).

Fase 1: Descrizione delle parti - Modulo di schermatura della tastiera LCD

Descrizione delle parti - Modulo schermo tastiera LCD
Descrizione delle parti - Modulo schermo tastiera LCD

Il modulo di schermatura della tastiera LCD è costituito da un LCD 1602 comunemente usato montato sulla parte superiore di una scheda a circuiti che contiene i tasti e che prende un sottoinsieme delle connessioni LCD e le rende disponibili ai pin dell'intestazione sul lato inferiore della scheda a circuiti. Capisco che questa scheda sia progettata per essere montata su un Arduino Uno o simile e fornisce il layout dei pin corretto per farlo funzionare in quell'ambiente. Ho acquistato questo modulo su Ebay da un venditore in Cina. I pin dell'intestazione sul lato inferiore (tastiera) della scheda sono per lo più etichettati, ma i pin sul lato superiore, che è l'interfaccia LCD, non sono etichettati. Tuttavia, i pin sul display LCD stesso sono etichettati.

Passaggio 2: descrizione delle parti - Modulo seriale I2C

Descrizione delle parti - Modulo seriale I2C
Descrizione delle parti - Modulo seriale I2C

Il modulo seriale ha la consueta intestazione a 4 pin per I2C e una serie di pin di intestazione non etichettati che, a quanto mi risulta, sono destinati a essere inseriti direttamente nella parte inferiore del modulo LCD. Studiando le etichette sull'LCD, sono riuscito a identificare le funzioni dei pin sul modulo seriale.

Questo modulo è basato sull'IC PCF8574T che termina il protocollo I2C, ha 3 pin per il controllo dell'indirizzo (da 20 a 27) e dispone di 8 pin di input/output digitali da P0 a P7. Secondo la scheda tecnica del PCF8574T, ogni pin I/O ha un FET per portarlo a terra per lo stato LOW e può affondare di almeno 20 mA. Nello stato High, ha un pull-up attivo transitorio e quindi una corrente di pull-up continua di circa 0,1 mA.

Su questo modulo, tutti i pin di I/O digitali, ad eccezione di P3, vengono semplicemente portati ai pin di intestazione (a destra nella foto). Nel caso di P3, è collegato alla base di un transistor (visibile nella foto in alto a destra appena sotto l'etichetta "LED"). L'emettitore di quel transistor è collegato a Vss (massa) e il collettore è collegato al pin 16 dell'intestazione, dove può essere utilizzato per controllare la retroilluminazione dell'LCD. A causa del transistor, lo stato logico è invertito rispetto a quello assunto nella libreria software. Cioè, la retroilluminazione LCD viene attivata quando il pin P3 è basso e OFF quando il pin P3 è alto.

L'etichetta sul transistor dice L6 che secondo la mia ricerca probabilmente lo rende un MMBC1623L6 che ha un guadagno di corrente minimo di 200. Con 0,1 mA di corrente di base, dovrebbe essere in grado di mantenere una condizione LOW al suo collettore (modulo Pin 16) con corrente di collettore di almeno 20mA.

Inoltre questo modulo dispone di un potenziometro da 10K collegato tra +5 e Ground, il cui cavo variabile viene portato al pin 3 (terzo dal basso nella foto). Quando è collegato direttamente all'LCD, questo potenziometro controllerà il contrasto dell'LCD. Tuttavia, tale funzione è fornita da un potenziometro simile separato sullo schermo LCD, quindi questo potenziometro sul modulo seriale non ha alcuna funzione.

Non sono riuscito a trovare alcuna connessione al pin INT del PCF8574T.

AGGIORNAMENTO 22 agosto 2019

Come accennato in precedenza, il PCF8574 ha 3 pin di controllo dell'indirizzo. Questi sembrano essere portati in rilievo sulla tavola dello zaino dove sono etichettati A0, A1 e A2. Possono essere visti nella foto. Non l'ho testato, ma sembra quasi certo che collegando uno o più di questi pin ai pad adiacenti, l'indirizzo I2C possa essere controllato nell'intervallo da 20 a 27. Inoltre, esiste un secondo dispositivo quasi identico, il PCF8574A che ha funzionalità identiche al PCF8574 ma copre l'intervallo di indirizzi da 0x38 a 0x3F.

L'indirizzo effettivamente utilizzato dal tuo dispositivo può essere verificato con un I2CScanner. Ci sono diversi semplici scanner I2C disponibili da varie fonti. Questo su https://github.com/farmerkeith/I2CScanner identifica anche alcuni dei dispositivi trovati.

Passaggio 3: connessioni

Connessioni
Connessioni

Grazie a ChaitanyaM17 che ha fornito il diagramma di Fritzing che raffigura le connessioni, descritte di seguito.

Potenza:

Il modulo LCD ha un pin sul lato inferiore etichettato "5.0V". A destra, adiacenti a questo, ci sono due perni non etichettati entrambi rettificati.

Tenendo il modulo seriale con l'interfaccia I2C all'estremità sinistra, ci sono 16 pin sul bordo inferiore. Il primo di questi è macinato e il secondo è +5v. Un'altra opzione è quella di utilizzare i due pin inferiori sull'interfaccia I2C per l'alimentazione, ma ho trovato più comodo utilizzare i pin come descritto sopra.

Interfaccia I2C. Sul modulo seriale, il pin superiore è SCL (clock) e va all'Arduino A5. Il secondo pin down è SDA (dati) e va ad Arduino A4.

Interfaccia di stampa LCD. Ci sono 6 connessioni tra il modulo seriale e lo schermo della tastiera LCD, tutte tra pin senza etichette. Li identificherò sul modulo LCD contando da Destra a Sinistra, con il primo pin come 1. Ci sono 2 blocchi da 8, quindi vanno da 1 a 16. Li identificherò sul modulo seriale I2C contando da Sinistra a Giusto, ce ne sono anche 16 di questi. Inoltre do ad ogni filo un'etichetta, che è il pin equivalente sull'Arduino che normalmente è associato a quella funzione, nel caso di collegamento diretto senza il modulo seriale.

Quindi le 6 connessioni dati sono:

Equivalente Arduino // Pin modulo seriale // Pin modulo tastiera LCD

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

Controllo retroilluminazione LCD: utilizza un'altra connessione:

Equivalente Arduino // Pin modulo seriale // Pin modulo tastiera LCD

D10//16 // 11

Interfaccia tastiera: utilizza un singolo filo dal pin del modulo LCD sul lato inferiore etichettato "A0", al pin A0 su Arduino. Almeno questo è stato abbastanza facile!

Passaggio 4: rendere la chiave RST utilizzabile in modo simile alle altre 5 chiavi

L'RST può essere collegato direttamente all'ingresso RESTART dell'Arduino Nano.

Tuttavia, se si desidera che la chiave RST sia utilizzabile nel software per altre cose, ciò può essere fatto collegando un resistore da 15K tra il pin RST e il pin A0 sul lato inferiore dello schermo della tastiera LCD.

Funziona come segue: c'è una resistenza da 2K tra +5V e il tasto Destra. Quindi una catena di resistori progressivamente più grandi per ciascuno degli altri tasti (330R per il tasto SU, 620R per il tasto GI, 1K per il tasto SINISTRA e 3K3 per il tasto SELECT. Tutti i tasti (incluso il tasto RST) si collegano a Quando collegati ad un convertitore A/D a 10 bit (come per Arduino Nano A0) forniscono approssimativamente i seguenti valori:

Destra = 0; Su = 100; Giù = 260; Sinistra = 410; Seleziona = 640.

Con la resistenza da 15 k a RST, fornisce circa 850.

Il software utilizzerà i valori intorno ai punti medi tra questi valori per decidere quale tasto è stato premuto.

Passaggio 5: software

Il software utile è ovviamente un esercizio per il lettore. Tuttavia, per iniziare, puoi dare un'occhiata al mio software di prova. Ho usato la libreria NewLiquidCrystal, che contiene il supporto per l'interfaccia I2C. Ha funzionato tutto, una volta installate correttamente le librerie.

Il punto principale era invertire la polarità dei comandi Backlight OFF e ON (a causa del transistor sul modulo I2C come spiegato nella sezione Descrizione delle parti).

AGGIORNAMENTO 22 agosto 2019

Se hai problemi con il display LCD che non funziona, controlla l'indirizzo I2C del tuo zaino seriale utilizzando uno scanner I2C. È collegato uno scanner adatto. Quindi, se necessario, regolare il primo parametro nell'istruzione

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7);

Passaggio 6: revisione e discussione

Come puoi vedere ho fatto funzionare le funzioni principali.

La mia prossima intenzione è di metterlo in una scatola del progetto come parte di un altro progetto. Tuttavia, dopo aver intrapreso questo percorso ho appreso che c'è un'altra difficoltà che non avevo previsto.

La difficoltà è che questo modulo tastiera LCD non è predisposto per essere installato in una scatola. Qualsiasi tipo di scatola. I pulsanti dei 6 tasti sono ben al di sotto del livello dello schermo LCD, in modo che se il modulo è montato in una scatola (ad esempio nel coperchio) con la parte superiore della scheda LCD a filo con la parte inferiore del coperchio, le parti superiori dei tasti sono circa 7 mm sotto la parte superiore del coperchio.

Le possibili soluzioni sono:

a) Sopportalo. Praticare dei fori di accesso nel coperchio e utilizzare uno strumento (ad es. un ferro da calza tagliato di diametro adeguato) per premere i bottoni.

b) Rimuovere l'LCD dalla scheda del modulo ed eseguire un intervento chirurgico sulla tastiera in modo che i due componenti possano essere fissati al coperchio della scatola del progetto in modo indipendente (penso che ci possa essere ancora un problema con i pulsanti troppo corti)

c) rimuovere i bottoni esistenti e sostituirli con bottoni più alti. I nuovi pulsanti devono essere alti circa 13 mm in modo che possano essere azionati attraverso il coperchio della scatola del progetto). Gli interruttori a pulsante di ricambio sono prontamente disponibili in una gamma di altezze, tra cui 13 mm.

d) scartare il modulo di protezione della tastiera LCD e utilizzare unità LCD e tastiera separate (ad es. ricominciare da capo). È disponibile un'ampia gamma di tastiere, tuttavia non ne ho vista una con lo stesso layout a 6 tasti di questo modulo (ad es. Seleziona, Sinistra, Su, Giù, Destra, Riavvia). Potrebbe non essere un grosso problema, ma uno dei motivi per cui ho iniziato con questo modulo era che pensavo che questo layout di tasti fosse quello che volevo.

Sto pensando di andare con la soluzione c) sopra, e vedere come vado.

Un altro frammento di informazioni che potrebbero interessare:

Con la retroilluminazione accesa, il consumo di corrente di questo progetto è: Arduino Nano 21,5 ma; Modulo seriale 3,6 ma; Modulo LCD 27,5 mA; Totale 52 mA.

Con la retroilluminazione spenta, il consumo di corrente di questo progetto è: Arduino Nano 21,5 ma; Modulo seriale 4,6 ma; Modulo LCD 9,8 mA; Totale 36 mA.

Consigliato: