Cuprins:
- Pasul 1: Prezentare generală a circuitului
- Pasul 2: Fabricarea PCB
- Pasul 3: Prezentare generală a software-ului
- Pasul 4: Testarea designului
- Pasul 5: Concluzie
- Pasul 6: Referințe utilizate
Video: Modul de controler LCD Uber I2C: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Preambul
Acest Instrucțiuni detaliază cum să creați un modul de control LCD HD44780 (imaginea 1 de mai sus). Modulul permite utilizatorului să controleze toate aspectele LCD-ului prin program pe I2C, cuprinzând; LCD și afișaj, contrast și intensitatea luminii de fundal. Deși Arduino Uno R3 a fost folosit pentru a-l prototipa, acesta va funcționa la fel de bine cu orice microcontroler care acceptă I2C.
Introducere
Așa cum s-a menționat mai sus, acest articol documentează crearea unui modul de control LCD I2C, acesta a fost destinat în primul rând ca un exercițiu de proiectare pentru a determina cât de mult ar dura crearea unui PCB de lucru practic.
Proiectarea înlocuiește modulul de controler generic standard (imaginea 3 de mai sus) și se bazează pe instructabile și biblioteci pe care le-am produs anterior.
De la prototipul inițial al conceptului (imaginea 2 de mai sus) până la PCB complet complet testat (imaginea 1 de mai sus) a durat în total 5,5 zile.
De ce piese am nevoie? Consultați lista de materiale atașată mai jos
De ce software am nevoie?
- Arduino IDE 1.6.9,
- Kicad v4.0.7 dacă doriți să modificați PCB-ul. În caz contrar, trimiteți „LCD_Controller.zip” la JLCPCB.
De ce instrumente am nevoie?
- Microscop cel puțin x3 (pentru lipire SMT),
- Fier de lipit SMD (cu stilou de flux lichid și lipit cu flux),
- Pensete puternice (pentru lipire SMT),
- Clește fină (cu vârf și vârf),
- DMM cu verificare de continuitate sonoră.
De ce abilități am nevoie?
- Multă răbdare,
- O mare dexteritate manuală și o coordonare excelentă mână / ochi,
- Abilități excelente de lipit.
Subiecte acoperite
- Introducere
- Prezentare generală a circuitului
- Fabricarea PCB
- Prezentare generală a software-ului
- Testarea proiectării
- Concluzie
- Referințe utilizate
Pasul 1: Prezentare generală a circuitului
O diagramă completă a circuitelor electronice este prezentată în imaginea 1 de mai sus, împreună cu un PDF al acesteia de mai jos.
Circuitul a fost conceput pentru a fi un înlocuitor exact pentru modulul de control LCD PCF8574A I2C standard cu următoarele îmbunătățiri;
- Compatibilitate 3v3 sau 5v selectabilă de către utilizator I2C,
- Control digital al contrastului sau setarea potului convențional,
- Selecție variabilă a intensității luminii din spate cu control al funcției de relaxare Quartic pentru a obține o estompare lină.
Control ecran LCD
Acesta este un facsimil al modulului de control LCD I2C standard care utilizează un PCF8574A (IC2) pentru conversia I2C în paralel.
Adresa I2C implicită pentru aceasta este 0x3F.
Compatibilitate 3v3 sau 5v I2C
Pentru funcționarea 3v3 potriviți Q1, Q2 ROpt1, 2, 5 și 6, IC1, C2 și C2.
Dacă este necesară o funcționare de 5v, nu se potrivește niciun component 3v3, înlocuindu-le cu rezistențe 0 Ohm ROpt 3 și 4.
Contrast digital
Controlul digital al contrastului se realizează prin utilizarea unui potențiometru digital U2 MCP4561-103E / MS și C4, R5.
Dacă este necesar un potențiometru mecanic convențional, atunci acesta poate fi montat pe PCB, RV1 10K, în loc de U2, C4 și R5. Consultați BoM pentru potențiometru compatibil.
Prin jumperul J6, adresa I2C este 0x2E. Se presupune că, pentru funcționarea normală, acest lucru este eliminat.
Selecție a intensității luminii din spate variabile
Intensitatea luminii de fund variabile este controlată de modularea PWM a luminii de fundal cu LED-uri LCD prin pinul U1 6 și ATTiny85. Pentru a păstra compatibilitatea deplină cu modulul de control LCD I2C standard R1, T1 R7 și T2 sunt utilizate pentru a modula șina de alimentare + ve.
Adresa I2C implicită pentru aceasta este 0x08. Acesta poate fi selectat de utilizator, la momentul compilării înainte de programarea U1.
Pasul 2: Fabricarea PCB
Așa cum am menționat mai devreme, acest Instructable a fost un exercițiu, destinat în primul rând să determine cât timp ar dura până la finalizarea unui proiect (care avea un scop practic).
În acest caz, m-am gândit la conceptul inițial de sâmbătă după-amiază și am finalizat prototipul până sâmbătă seara, imaginea 1 de mai sus. Ideea mea, așa cum am afirmat, a fost să creez propria mea variantă a modulului de control LCD I2C, cu o amprentă identică, oferind control programatic complet al LCD-ului peste I2C.
Diagrama schematică și aspectul PCB au fost dezvoltate cu Kicad v4.0.7 poze 2 și 3. Acest lucru a fost finalizat duminică după-amiază și piesele au fost comandate de la Farnell, iar PCB-ul a fost încărcat în JLCPCB până duminică seara.
Componentele au sosit de la Farnell miercuri, urmate de PCB-urile de la JLCPCB joi (am folosit serviciul de livrare DHL pentru a accelera lucrurile) poze 4, 5, 6 și 7.
Joi seara, două plăci (variante 3v3 și 5v) fuseseră construite și testate cu succes pe un ecran LCD de 4 cu 20. Poze 8, 9 și 10.
5,5 zile uimitoare de la conceptul inițial până la finalizare.
Mă uimește cât de repede JLCPCB este capabil să preia o comandă, să fabrice un PCB PTH pe două fețe și să-l expediate în Marea Britanie. Un blister 2 zile pentru fabricare și 2 zile pentru livrare. Acest lucru este mai rapid decât producătorii de PCB din Marea Britanie și la o fracțiune din preț.
Pasul 3: Prezentare generală a software-ului
Există trei părți componente principale ale software-ului necesare pentru controlul modulului de control LCD I2C;
1. LiquidCrystal_I2C_PCF8574 Arduino Library
Disponibil aici
Pentru a fi utilizat în schița Arduino pentru a controla afișajul LCD.
Notă: Acest lucru funcționează la fel de bine cu controlerul modulului LCD generic I2C. Doar oferă funcționalitate decât alte biblioteci.
2. MCP4561_DIGI_POT Arduino Library
Pentru a fi folosit în schița dvs. pentru a controla programatic contrastul LCD
Disponibil aici
3. Controlul programatic al nivelurilor de lumină din spate LCD utilizând funcția de relaxare PWM și Quartic pentru a obține o estompare lină
După cum sa menționat anterior, placa conține un singur ATTiny85 utilizat pentru a controla estomparea treptată a luminii de fundal a afișajului.
Detaliile acestui software sunt furnizate într-o versiune anterioară „Smooth PWM LED Fading With the ATTiny85”
În acest caz, pentru a menține dimensiunile finale ale PCB la fel ca un modul de controler LCD generic, s-a ales varianta SOIC a ATTiny85. Imaginile 1 și 2 arată modul în care ATTiny85 SOIC a fost programat și testat în configurația prototipului.
Codul programat în ATTiny85 a fost „Tiny85_I2C_Slave_PWM_2.ino” disponibil aici
Pentru detalii despre cum să vă creați propriul programator ATTiny85, consultați acest „Programare ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP” instructabil
Pasul 4: Testarea designului
Pentru a testa designul, am creat o schiță numită „LCDControllerTest.ino” care permite utilizatorului să seteze orice parametru specific LCD direct printr-o conexiune de terminal serial.
Schița poate fi găsită la depozitul meu GitHub I2C-LCD-Controller-Module
Imaginea 1 de mai sus prezintă presa de placă compatibilă 5v I2C montată pe un LCD de 4 cu 20 și imaginea 2 afișajul implicit atunci când rulați codul de testare pentru prima dată.
Folosește următoarele valori implicite pentru lumină de fundal și contrast;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((nesemnat lung) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Am găsit că acestea funcționau bine cu afișajul LCD de 4 cu 20 pe care îl aveam în poziție de rezervă.
Pasul 5: Concluzie
Când am început pentru prima oară în industria electronică / software acum ceva timp, am pus un mare accent pe utilizarea construcției de sârmă sau veroboard pentru prototipuri cu o mulțime de supra-inginerie în circuitul final, în cazul în care ați făcut o greșeală, având în vedere costul și durata unei re-rotiri a plăcii.
O greșeală vă costă, de obicei, câteva săptămâni în program și a suflat marja de profit (și, eventual, locul de muncă).
PCB-urile erau numite „opere de artă”, deoarece erau cu adevărat opere de artă. Creat de două ori la dimensiune completă utilizând bandă de crep negru lipicios de către un „trasor” sau desenator și redusă fotografic de fabuloasa casă pentru a face fotografia să reziste la șabloane.
Diagramele de circuit au fost, de asemenea, create de trasoare și extrase manual din notele dvs. de proiectare. Copiile au fost făcute foto-static și au fost numite „albastre”. Pentru că erau invariabil de culoare albastră.
Microcontrolerele erau încă la început și erau de obicei imitate în circuit, dacă compania dvs. își putea permite unul cu mediul de dezvoltare complex și costisitor.
Ca producător la acea vreme, simplul cost al lanțului de instrumente de dezvoltare software era prohibitiv, erai inevitabil obligat să introduci valorile hexagonale direct în EPROM (RAM / Flash dacă ai fi foarte norocos), apoi petreci ore întregi interpretând comportamentul rezultat pentru a determina ce codul dvs. funcționa dacă nu funcționa așa cum era de așteptat (bit "wiggling" sau serial printf fiind cele mai populare tehnici de depanare. Unele lucruri nu se schimbă niciodată). În mod obișnuit trebuia să scrieți propriile biblioteci, deoarece niciuna nu era disponibilă (cu siguranță nu exista o sursă bogată precum internetul).
Aceasta a însemnat că ați petrecut mult timp încercând să înțelegeți cum a funcționat ceva și ați petrecut mai puțin timp realizând creativ.
Toate diagramele dvs. au fost desenate manual, de obicei pe A4 sau A3 și au trebuit să fie bine gândite, oferindu-le un flux logic al traseului semnalului de la stânga la dreapta. Corecțiile au însemnat, de obicei, că trebuie să începeți cu o foaie nouă.
În cea mai mare parte circuitul final a fost dezvoltat folosind veroboard pentru permanență și montat într-o carcasă simplă din ABS pentru a-i oferi acea „atingere profesională”.
Prin contrast puternic, am dezvoltat întregul proiect în 5,5 zile folosind freeware de înaltă calitate, rezultând un PCB standard profesional. În cazul în care dorința m-ar fi luat, aș fi putut să o montez într-o cutie tipărită 3D, realizată de mine.
Ceva la care ai fi putut visa doar cu mai puțin de un deceniu în urmă.
Cum s-au schimbat lucrurile în bine.
Pasul 6: Referințe utilizate
Captură schematică KiCAD și proiectare PCB
KiCAD EDA
Instrument de dezvoltare software Arduino ORG
Arduino
LiquidCrystal_I2C_PCF8574 Arduino Library
Aici
MCP4561_DIGI_POT Arduino Library
Aici
Se estompează LED-ul PWM neted cu ATTiny85
Aici
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP
Recomandat:
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
Afișaj LCD I2C / IIC - Utilizați un LCD SPI pe afișajul LCD I2C Utilizând modulul SPI la IIC cu Arduino: 5 pași
Afișaj LCD I2C / IIC | Utilizați un LCD SPI pe afișajul LCD I2C Utilizarea modulului SPI la IIC cu Arduino: Bună băieți, deoarece un SPI LCD 1602 normal are prea multe fire pentru a se conecta, deci este foarte dificil să îl interfațați cu arduino, dar există un modul disponibil pe piață. convertiți afișajul SPI în afișajul IIC, deci trebuie să conectați doar 4 fire
Modul ecran ecran LCD 1602 cu rucsac I2C: 6 pași
Modul ecran 1602 cu tastatură LCD cu rucsac I2C: Ca parte a unui proiect mai mare, am vrut să am un afișaj LCD și o tastatură pentru navigarea unor meniuri simple. Voi folosi o mulțime de porturi I / O de pe Arduino pentru alte joburi, așa că am dorit o interfață I2C pentru LCD. Așa că am cumpărat niște hardware
Afișaj LCD I2C / IIC - Convertiți un LCD SPI în afișajul LCD I2C: 5 pași
Afișaj LCD I2C / IIC | Convertiți un LCD SPI pe afișajul LCD I2C: utilizarea afișajului spi lcd are nevoie de prea multe conexiuni, ceea ce este foarte greu de făcut, așa că am găsit un modul care poate converti lcd i2c în lcd spi, așa că să începem
YABC - încă un controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: 4 pași
YABC - încă un alt controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: Bună ziua, producători, am început recent să cultiv ciuperci acasă, ciuperci de stridii, dar am deja 3x din aceste controlere acasă pentru controlul temperaturii fermentatorului pentru berea mea de acasă, soție face, de asemenea, acest lucru Kombucha acum și ca termostat pentru căldură