Taula de continguts:
- Pas 1: Visió general del circuit
- Pas 2: fabricació de PCB
- Pas 3: Visió general del programari
- Pas 4: provar el disseny
- Pas 5: Conclusió
- Pas 6: referències utilitzades
Vídeo: Mòdul de controlador LCD Uber I2C: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Preàmbul
Aquest document instructiu detalla com crear un mòdul de controlador LCD HD44780 (foto 1 anterior). El mòdul permet a l'usuari controlar tots els aspectes de la pantalla LCD per programació sobre I2C, que inclouen; Pantalla LCD i pantalla, contrast i intensitat de llum de fons. Tot i que l’Arduino Uno R3 es va utilitzar per prototipar-lo, funcionarà igual de bé amb qualsevol microcontrolador que admeti I2C.
Introducció
Com es va esmentar anteriorment, aquest article documenta la creació d'un mòdul de controlador LCD I2C, principalment es pretenia com un exercici de disseny per determinar el temps que trigaria a crear un PCB de treball pràctic.
El disseny substitueix el mòdul de controlador genèric estàndard (foto 3 anterior) i s’inspira en Instructables i biblioteques que he produït anteriorment.
Des del prototip de concepte inicial (foto 2 a dalt) fins a PCB completament provat (foto 1 a dalt) van passar un total de 5,5 dies.
Quines peces necessito? Consulteu la llista de materials adjunta a continuació
Quin programari necessito?
- Arduino IDE 1.6.9,
- Kicad v4.0.7 si voleu modificar el PCB. En cas contrari, envieu 'LCD_Controller.zip' a JLCPCB.
Quines eines necessito?
- Microscopi com a mínim x3 (per soldar SMT),
- Soldadura SMD (amb ploma de flux líquid i soldadura de flux)
- Pinces fortes (per soldar SMT),
- Alicates fines (punta de punta i moc),
- DMM amb comprovació audible de continuïtat.
Quines habilitats necessito?
- Molta paciència,
- Una gran quantitat de destresa manual i una excel·lent coordinació mà / ull,
- Excel·lents habilitats de soldadura.
Temes tractats
- Introducció
- Visió general del circuit
- Fabricació de PCB
- Descripció general del programari
- Prova del disseny
- Conclusió
- Referències utilitzades
Pas 1: Visió general del circuit
A la imatge 1 es mostra un diagrama de circuits complet de tots els aparells electrònics, juntament amb un PDF de la mateixa a continuació.
El circuit va ser dissenyat per ser un substitut exacte del mòdul de controlador LCD PCF8574A I2C estàndard amb les següents millores;
- Compatibilitat 3v3 o 5v seleccionable per l'usuari I2C,
- Control de contrast digital o configuració de pot convencional,
- Selecció d’intensitat de llum de fons variable amb control de la funció d’alleujament quartic per aconseguir una decoloració suau.
Control de pantalla LCD
Es tracta d’un facsímil del mòdul de controlador LCD I2C estàndard que utilitza un PCF8574A (IC2) per a la conversió I2C a paral·lela.
L'adreça I2C per defecte és 0x3F.
Compatibilitat I2C de 3v3 o 5v
Per a operacions 3v3, ajusteu Q1, Q2 ROpt1, 2, 5 i 6, IC1, C2 i C2.
Si es necessita un funcionament de 5v, no s'adapti a cap component de 3v3, substituint-los per resistències de 0 Ohm ROpt 3 i 4.
Contrast digital
El control de contrast digital s’aconsegueix mitjançant l’ús d’un potenciòmetre digital U2 MCP4561-103E / MS i C4, R5.
Si es necessita un potenciòmetre mecànic convencional, es pot instal·lar al PCB, RV1 10K, en lloc de U2, C4 i R5. Vegeu BoM per a un potenciòmetre compatible.
Mitjançant pont pont J6, l'adreça I2C és 0x2E. Es va suposar que, per al funcionament normal, es tracta d'un pont.
Selecció d’intensitat de llum de fons variable
La intensitat de la llum de fons variable es controla mitjançant la modulació PWM de la llum de fons LED LCD mitjançant el pin U1 6 i un ATTiny85. Per tal de mantenir la plena compatibilitat amb el mòdul de control LCD I2C estàndard R1, s’utilitzen T1 R7 i T2 per modular el carril de subministrament + ve.
L'adreça I2C per defecte és 0x08. Això es pot seleccionar per l'usuari en el moment de la compilació abans de programar U1.
Pas 2: fabricació de PCB
Com es va esmentar anteriorment, aquest Instructable era un exercici, destinat principalment a determinar el temps que trigaria a completar un disseny (que tenia un propòsit pràctic).
En aquest cas, vaig pensar en el concepte inicial de dissabte a la tarda i havia completat el prototip el dissabte al vespre de la imatge 1 anterior. La meva idea, tal com es va dir, era crear la meva pròpia variant del mòdul de controlador LCD I2C, amb una petjada idèntica, que ofereixi un control programàtic complet de la pantalla LCD sobre I2C.
El diagrama esquemàtic i el disseny del PCB es van desenvolupar amb les imatges 2 i 3. de Kicad v4.0.7. Es va completar diumenge a la tarda i es van demanar les peces a Farnell i el PCB es va penjar a JLCPCB el diumenge al vespre.
Els components van arribar de Farnell el dimecres, seguits dels PCB de JLCPCB el dijous (vaig fer servir el servei de lliurament DHL per accelerar les coses) fotos 4, 5, 6 i 7.
El dijous al vespre ja s'havien construït dues taules (variants de 3v3 i 5v) i provades amb èxit en una pantalla LCD de 4 per 20. Fotos 8, 9 i 10.
Uns 5,5 dies increïbles des del concepte inicial fins a la finalització.
Em sorprèn la rapidesa amb què JLCPCB pot fer una comanda, fabricar un PCB PTH de doble cara i enviar-lo al Regne Unit. Una ampolla de 2 dies per a la fabricació i 2 dies per lliurar. Això és més ràpid que els fabricants de PCB amb seu al Regne Unit i a una fracció del preu.
Pas 3: Visió general del programari
Hi ha tres components principals del programari necessaris per controlar el mòdul del controlador LCD I2C;
1. LiquidCrystal_I2C_PCF8574 Biblioteca Arduino
Disponible aquí
Per utilitzar-lo a l'esbós Arduino per controlar la pantalla LCD.
Nota: funciona igual de bé amb el controlador de mòduls LCD genèric I2C. Només dóna funcions que altres biblioteques.
2. Biblioteca MCP4561_DIGI_POT Arduino
Per utilitzar-lo a l'esbós per controlar el contrast de la pantalla mitjançant programació
Disponible aquí
3. Control programàtic dels nivells de llum de fons LCD mitjançant la funció PWM i Quartic easing per aconseguir una decoloració suau
Com es va esmentar anteriorment, el tauler conté un únic ATTiny85 que s'utilitza per controlar la disminució gradual de la llum de fons de la pantalla.
Els detalls d’aquest programari es donen en un anterior “Suau PWM LED Fading with the ATTiny85” instructable
En aquest cas, per mantenir les dimensions finals de PCB iguals que un mòdul de controlador LCD genèric, es va escollir la variant SOIC de l'ATTiny85. Les imatges 1 i 2 mostren com es va programar i provar el SOIC ATTiny85 en el prototip configurat.
El codi programat a l'ATTiny85 era "Tiny85_I2C_Slave_PWM_2.ino" disponible aquí
Per obtenir detalls sobre com crear el vostre propi programador ATTiny85, consulteu aquest document "Programació de l'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP".
Pas 4: provar el disseny
Per provar el disseny, vaig crear un esbós anomenat "LCDControllerTest.ino" que permet a l'usuari configurar qualsevol paràmetre específic de LCD directament a través d'una connexió de terminal sèrie.
L'esbós es pot trobar al dipòsit GitHub I2C-LCD-Controller-Module
La imatge 1 anterior mostra la premsa de placa compatible amb 5V I2C instal·lada en un LCD de 4 per 20 i la imatge 2 la pantalla predeterminada quan s’executa el codi de prova per primera vegada.
Utilitza els valors predeterminats següents per a la llum de fons i el contrast;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((sense signar llarg) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Vaig trobar que funcionaven bé amb la pantalla LCD de 4 per 20 que tenia al recanvi.
Pas 5: Conclusió
Quan vaig començar a la indústria de l’electrònica i el programari ara fa força temps, es va fer un gran èmfasi en l’ús de la construcció de filferro o veroboard per fer prototips amb molta enginyeria excessiva al circuit final per si s’havia equivocat., tenint en compte el cost i la durada d'una tornada de taula.
Un error sol costar-vos unes quantes setmanes a l’hora prevista i provocar el marge de benefici (i possiblement la vostra feina).
Els PCB s’anomenaven “obres d’art”, perquè eren realment obres d’art. Creada dues vegades a mida completa amb cinta adhesiva de crespó negre per un "traçador" o dibuixant i reduïda fotogràficament per la fabulosa casa per fer que la foto resisteixi les plantilles.
Els traçadors també han creat diagrames de circuits i s'han extret a mà a partir de les notes de disseny. Les còpies es feien foto-estàticament i s'anomenaven "impressions blaves". Perquè eren invariablement de color blau.
Els microcontroladors només estaven en la seva infància i normalment estaven emulats en un circuit si la vostra empresa se’n podia permetre un amb el complex i costós entorn de desenvolupament.
Com a fabricant en aquell moment, el simple cost de la cadena d’eines de desenvolupament de programari era prohibitiu; inevitablement, estaven obligats a introduir els valors hexadecimals directament a EPROM (RAM / Flash si teníeu molta sort) i després passeu hores interpretant el comportament resultant per determinar què el vostre codi estava funcionant si no funcionava com s'esperava (les "tècniques de depuració més populars" o "printf" en sèrie són algunes de les tècniques de depuració més populars. Algunes coses no canvien mai). Normalment havíeu d’escriure totes les vostres pròpies biblioteques, ja que no n’hi havia cap disponible (segur que no hi havia cap font rica com Internet).
Això significava que passaves molt de temps intentant entendre com funcionava alguna cosa i passaves menys temps creant creativament.
Tots els vostres diagrames van ser dibuixats a mà, normalment en A4 o A3 i s’havien de revisar a fons, donant-los un flux lògic del recorregut del senyal d’esquerra a dreta. Les correccions normalment significaven que calia començar amb un full nou.
En la seva major part, el vostre circuit final es va desenvolupar amb veroboard per a la permanència i es va muntar en un recinte senzill en ABS per donar-li aquest "toc professional".
Per contrast, vaig desenvolupar tot aquest projecte en 5,5 dies amb programari gratuït d’alta qualitat que va donar com a resultat un PCB estàndard professional. Si el desig m’hagués agafat, l’hauria pogut muntar en una caixa impresa en 3D de la meva pròpia creació.
Una cosa que només podíeu haver somiat fa menys d’una dècada.
Com han canviat les coses per millorar.
Pas 6: referències utilitzades
Captura esquemàtica KiCAD i disseny de PCB
KiCAD EDA
Eina de desenvolupament de programari Arduino ORG
Arduino
Biblioteca Arduino de LiquidCrystal_I2C_PCF8574
Aquí
MCP4561_DIGI_POT Biblioteca Arduino
Aquí
PWM LED suau que s’esvaeix amb l’ATTiny85
Aquí
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP
Recomanat:
Controlador de jocs DIY basat en Arduino - Controlador de jocs Arduino PS2 - Jugar a Tekken amb el bricolatge Arduino Gamepad: 7 passos
Controlador de jocs DIY basat en Arduino | Controlador de jocs Arduino PS2 | Jugar a Tekken amb el bricolatge Arduino Gamepad: Hola nois, jugar sempre és divertit, però jugar amb el vostre propi controlador de jocs de bricolatge és més divertit
Pantalla LCD I2C / IIC - Utilitzeu un LCD SPI a la pantalla LCD I2C mitjançant el mòdul SPI a IIC amb Arduino: 5 passos
Pantalla LCD I2C / IIC | Utilitzeu un LCD SPI a la pantalla LCD I2C Utilitzant el mòdul SPI a IIC amb Arduino: Hola, ja que un SPI LCD 1602 normal té massa cables per connectar-se, de manera que és molt difícil connectar-lo amb arduino, però hi ha un mòdul disponible al mercat. converteix la pantalla SPI en pantalla IIC, de manera que només heu de connectar 4 cables
Pantalla LCD I2C / IIC - Convertiu un LCD SPI a pantalla LCD I2C: 5 passos
Pantalla LCD I2C / IIC | Converteix una pantalla LCD SPI a la pantalla LCD I2C: fer servir una pantalla LCD SPI necessita massa connexions, cosa que és molt difícil de fer, així que he trobat un mòdul que pot convertir el LCD i2c al LCD SPI, així que comencem
YABC - Un altre controlador Blynk - Controlador de temperatura i humitat al núvol IoT, ESP8266: 4 passos
YABC - Encara un altre controlador Blynk: controlador de temperatura i humitat del núvol IoT, ESP8266: Hola, fabricants, recentment he començat a cultivar bolets a casa, bolets ostres, però ja tinc 3 vegades aquests controladors a casa per al control de temperatura de fermentació per a la meva cervesa, esposa ara també fa això de Kombucha i com a termòstat de calor
NESblinky - Controlador de flaix de controlador de Nintendo: 12 passos (amb imatges)
NESblinky - Nintendo Controller Bike Flasher: vaig veure el missatge "Light Up Your Ride" i vaig reflexionar sobre què es podria tornar a proposar per augmentar la visibilitat de la meva moto, tot esperant que encegés un motorista o dos en un atac de ràbia retro. Vaig passar amb una vella Nintendo trencada