Sommario:
- Passaggio 1: panoramica del circuito
- Passaggio 2: produzione PCB
- Passaggio 3: panoramica del software
- Passaggio 4: test del design
- Passaggio 5: conclusione
- Passaggio 6: riferimenti utilizzati
Video: Modulo controller LCD Uber I2C: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Preambolo
Questo Instructable spiega come creare un modulo controller basato su LCD HD44780 (foto 1 sopra). Il modulo consente all'utente di controllare tutti gli aspetti dell'LCD in modo programmatico su I2C, comprendendo; LCD e display, contrasto e intensità della retroilluminazione. Sebbene Arduino Uno R3 sia stato utilizzato per prototiparlo, funzionerà ugualmente bene con qualsiasi microcontrollore che supporti I2C.
introduzione
Come accennato in precedenza, questo articolo documenta la creazione di un modulo controller LCD I2C, è stato principalmente inteso come esercizio di progettazione per determinare quanto tempo sarebbe necessario per creare un pratico PCB funzionante.
Il design sostituisce il modulo controller generico standard (foto 3 sopra) e si basa su Instructables e librerie che ho prodotto in precedenza.
Dal prototipo del concetto iniziale (foto 2 sopra) al PCB completato e completamente testato (foto 1 sopra) ci sono voluti un totale di 5,5 giorni.
Di quali parti ho bisogno?Vedi la distinta materiali allegata di seguito
Di che software ho bisogno?
- Arduino IDE 1.6.9,
- Kicad v4.0.7 se vuoi modificare il PCB. Altrimenti basta inviare 'LCD_Controller.zip' a JLCPCB.
Di quali strumenti ho bisogno?
- Microscopio almeno x3 (per saldatura SMT),
- Saldatore SMD (con penna a flusso liquido e saldatura animata),
- Pinzette forti (per saldatura SMT),
- Pinze sottili (a punta e a becco camuso),
- Multimetro digitale con controllo di continuità sonoro.
Di quali competenze ho bisogno?
- tanta pazienza,
- Grande manualità e ottima coordinazione occhio/mano,
- Ottime capacità di saldatura.
Argomenti trattati
- introduzione
- Panoramica del circuito
- Produzione PCB
- Panoramica del software
- Testare il design
- Conclusione
- Riferimenti utilizzati
Passaggio 1: panoramica del circuito
Uno schema circuitale completo di tutta l'elettronica è fornito nella figura 1 sopra, insieme a un PDF dello stesso sotto.
Il circuito è stato progettato per sostituire esattamente il modulo controller LCD I2C PCF8574A standard con i seguenti miglioramenti;
- Compatibilità 3v3 o 5v selezionabile dall'utente I2C,
- Controllo digitale del contrasto o impostazione convenzionale del potenziometro,
- Selezione dell'intensità della retroilluminazione variabile con controllo della funzione di allentamento Quartic per ottenere una dissolvenza uniforme.
Controllo display LCD
Questo è un facsimile del modulo controller LCD I2C standard che utilizza un PCF8574A (IC2) per la conversione da I2C a parallelo.
L'indirizzo I2C predefinito per questo è 0x3F.
Compatibilità 3v3 o 5v I2C
Per il funzionamento 3v3, montare Q1, Q2 ROpt1, 2, 5 e 6, IC1, C2 e C2.
Se è richiesta l'operazione a 5v, non montare alcun componente 3v3, sostituendoli con resistori da 0 Ohm ROpt 3 e 4.
Contrasto digitale
Il controllo digitale del contrasto è ottenuto tramite l'uso di un potenziometro digitale U2 MCP4561-103E/MS e C4, R5.
Se è necessario un potenziometro meccanico convenzionale, è possibile montarne uno sul PCB, RV1 10K, invece di U2, C4 e R5. Vedere BoM per potenziometro compatibile.
Collegando il jumper J6 l'indirizzo I2C è 0x2E. Si presume che per il normale funzionamento questo sia collegato.
Selezione dell'intensità della retroilluminazione variabile
L'intensità della retroilluminazione variabile è controllata dalla modulazione PWM della retroilluminazione a LED LCD tramite il pin U1 6 e ATTiny85. Al fine di mantenere la piena compatibilità con il modulo controller LCD I2C standard R1, T1 R7 e T2 vengono utilizzati per modulare la linea di alimentazione +ve.
L'indirizzo I2C predefinito per questo è 0x08. Questo è selezionabile dall'utente, in fase di compilazione prima della programmazione U1.
Passaggio 2: produzione PCB
Come accennato in precedenza, questo Instructable era un esercizio, inteso principalmente a determinare quanto tempo sarebbe necessario per completare un progetto (che aveva uno scopo pratico).
In questo caso ho pensato al concetto iniziale sabato pomeriggio e avevo completato il prototipo entro sabato sera foto 1 sopra. La mia idea, come affermato, era quella di creare la mia variante del modulo controller LCD I2C, con un ingombro identico, offrendo il controllo programmatico completo dell'LCD su I2C.
Il diagramma schematico e il layout del PCB sono stati sviluppati con Kicad v4.0.7 foto 2 e 3. Questo è stato completato domenica pomeriggio e le parti sono state ordinate da Farnell e il PCB è stato caricato su JLCPCB entro domenica sera.
I componenti sono arrivati da Farnell mercoledì, seguiti dai PCB da JLCPCB giovedì (ho usato il servizio di consegna DHL per velocizzare le cose) foto 4, 5, 6 e 7.
Giovedì sera erano state costruite e testate con successo due schede (varianti 3v3 e 5v) su un display LCD 4x20. Foto 8, 9 e 10.
Un incredibile 5,5 giorni dall'idea iniziale fino al completamento.
Mi stupisce quanto velocemente JLCPCB sia in grado di prendere un ordine, produrre un PCB PTH a doppia faccia e spedirlo nel Regno Unito. Un blistering di 2 giorni per la produzione e 2 giorni per la consegna. Questo è più veloce dei produttori di PCB con sede nel Regno Unito e ad una frazione del prezzo.
Passaggio 3: panoramica del software
Ci sono tre componenti principali del software necessario per controllare il modulo controller LCD I2C;
1. Libreria Arduino LiquidCrystal_I2C_PCF8574
Disponibile qui
Da utilizzare nel tuo schizzo Arduino per controllare il display LCD.
Nota: funziona ugualmente bene con il controller del modulo LCD I2C generico. Solo dà funzionalità rispetto ad altre librerie.
2. Libreria Arduino MCP4561_DIGI_POT
Da utilizzare nel tuo schizzo per controllare in modo programmatico il contrasto LCD
Disponibile qui
3. Controllo programmatico dei livelli di retroilluminazione LCD utilizzando la funzione PWM e Quartic easing per ottenere una dissolvenza uniforme
Come accennato in precedenza la scheda contiene un singolo ATTiny85 utilizzato per controllare il graduale sbiadimento della retroilluminazione del display.
I dettagli di questo software sono forniti in un precedente Instructable "Smooth PWM LED Fading With the ATTiny85"
In questo caso per mantenere le dimensioni finali del PCB le stesse di un generico modulo controller LCD è stata scelta la variante SOIC dell'ATTiny85. Le foto 1 e 2 mostrano come è stato programmato e testato l'ATTiny85 SOIC nell'allestimento del prototipo.
Il codice programmato nell'ATTiny85 era 'Tiny85_I2C_Slave_PWM_2.ino' disponibile qui
Per i dettagli su come creare il proprio programmatore ATTiny85, vedere questo Instructable "Programmazione di ATTiny85, ATTiny84 e ATMega328P: Arduino come ISP"
Passaggio 4: test del design
Per testare il design ho creato uno schizzo chiamato 'LCDControllerTest.ino' che consente all'utente di impostare qualsiasi parametro specifico dell'LCD direttamente su una connessione terminale seriale.
Lo schizzo può essere trovato nel mio repository GitHub I2C-LCD-Controller-Module
L'immagine 1 sopra mostra la pressa per scheda compatibile 5v I2C montata su un LCD 4x20 e l'immagine 2 il display predefinito quando si esegue il codice di test per la prima volta.
Utilizza i seguenti valori predefiniti per la retroilluminazione e il contrasto;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((unsigned long) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Ho scoperto che funzionavano bene con il display LCD 4 per 20 che avevo in giro.
Passaggio 5: conclusione
Quando ho iniziato a lavorare nell'industria elettronica/software un po' di tempo fa, c'era una grande enfasi sull'uso della costruzione wire-wrap o veroboard per la prototipazione con un sacco di over-engineering sul circuito finale nel caso avessi commesso un errore, dato il costo e la durata di un re-spin della scheda.
Un errore di solito ti costa alcune settimane sul programma e fa saltare il margine di profitto (e forse il tuo lavoro).
I PCB erano chiamati "opere d'arte", perché erano vere e proprie opere d'arte. Creato due volte a grandezza naturale utilizzando nastro adesivo crepe nero da un "tracciante" o disegnatore e ridotto fotograficamente dalla favolosa casa per rendere la foto resistente agli stencil.
Anche gli schemi circuitali sono stati creati da traccianti e disegnati a mano dalle tue note di progettazione. Le copie venivano fatte in modo fotostatico e chiamate "stampe blu". Perché erano invariabilmente di colore blu.
I microcontrollori erano solo agli inizi ed erano in genere emulati nel circuito se la tua azienda poteva permettersene uno con il relativo ambiente di sviluppo complesso e costoso.
Come produttore all'epoca, il semplice costo della catena di strumenti di sviluppo software era proibitivo, eri inevitabilmente costretto a inserire valori esadecimali direttamente nella EPROM (RAM/Flash se eri molto fortunato) e poi passare ore a interpretare il comportamento risultante per determinare cosa il tuo codice stava facendo se non funzionava come previsto (bit 'wiggling' o serial printf sono le tecniche di debug più popolari. Alcune cose non cambiano mai). In genere dovevi scrivere tutte le tue librerie poiché non erano disponibili (non c'era certamente una fonte ricca come Internet).
Ciò significava che passavi molto tempo a cercare di capire come funzionava qualcosa e dedicavi meno tempo alla creazione creativa.
Tutti i tuoi diagrammi sono stati disegnati a mano, in genere su A4 o A3 e hanno dovuto essere attentamente pensati, dando loro un flusso logico del percorso del segnale da sinistra a destra. Le correzioni di solito significavano che dovevi iniziare con un nuovo foglio.
Per la maggior parte il tuo circuito finale è stato sviluppato utilizzando veroboard per la permanenza e montato in una semplice custodia in ABS per dargli quel "tocco professionale".
In netto contrasto, ho sviluppato l'intero progetto in 5,5 giorni utilizzando freeware di alta qualità risultando in un PCB standard professionale. Se il desiderio mi avesse preso, avrei potuto montarlo in una scatola stampata in 3D di mia fabbricazione.
Qualcosa che potevi solo sognare meno di dieci anni fa.
Come le cose sono cambiate in meglio.
Passaggio 6: riferimenti utilizzati
Acquisizione di schemi KiCAD e progettazione PCB
KiCAD EDA
Strumento di sviluppo software Arduino ORG
Arduino
Libreria Arduino LiquidCrystal_I2C_PCF8574
Qui
Libreria Arduino MCP4561_DIGI_POT
Qui
Dissolvenza uniforme del LED PWM con ATTiny85
Qui
Programmazione di ATTiny85, ATTiny84 e ATMega328P: Arduino come ISP
Consigliato:
Display LCD I2C / IIC - Utilizzare un display LCD SPI sul display LCD I2C utilizzando il modulo SPI su IIC con Arduino: 5 passaggi
Display LCD I2C / IIC | Utilizzare un display LCD SPI per il display LCD I2C utilizzando il modulo da SPI a IIC con Arduino: Ciao ragazzi poiché un normale LCD 1602 SPI ha troppi fili da collegare, quindi è molto difficile interfacciarlo con arduino ma c'è un modulo disponibile sul mercato che può convertire il display SPI in display IIC, quindi è necessario collegare solo 4 fili
1602 Modulo schermo tastiera LCD con zaino I2C: 6 passaggi
1602 Modulo Scudo Tastiera LCD Con Zaino I2C: Come parte 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. Così ho comprato dell'hardware
Guidare un LCD con modulo I2C: 8 passaggi
Guidare un LCD Con Modulo I2C: In questo tutorial vedremo come funziona uno schermo LCD e come utilizzarlo più facilmente con il modulo I2C
Display LCD I2C / IIC - Converti un LCD SPI nel display LCD I2C: 5 passaggi
Display LCD I2C / IIC | Convertire un display LCD SPI in display LCD I2C: l'utilizzo del display lcd spi richiede troppe connessioni, il che è davvero difficile da fare, quindi ho trovato un modulo che può convertire l'affissione a cristalli liquidi i2c all'affissione a cristalli liquidi spi quindi iniziamo
Modulo RF 433MHZ - Realizza ricevitore e trasmettitore dal modulo RF 433MHZ senza alcun microcontrollore: 5 passaggi
Modulo RF 433MHZ | Crea ricevitore e trasmettitore da un modulo RF 433MHZ senza alcun microcontrollore: desideri inviare dati wireless? facilmente e senza bisogno di microcontrollore? Eccoci, in questa istruzione ti mostrerò il trasmettitore e il ricevitore rf di base pronti per essere utilizzati! In questa istruzione potrai inviare e ricevere dati usando molto ver