Cuprins:

Modul de controler LCD Uber I2C: 6 pași
Modul de controler LCD Uber I2C: 6 pași

Video: Modul de controler LCD Uber I2C: 6 pași

Video: Modul de controler LCD Uber I2C: 6 pași
Video: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, Noiembrie
Anonim
Modul de controler Uber I2C LCD
Modul de controler Uber I2C LCD
Modul de controler Uber I2C LCD
Modul de controler Uber I2C LCD
Modul de controler Uber I2C LCD
Modul de controler Uber I2C LCD

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

Prezentare generală a circuitului
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

Fabricarea PCB
Fabricarea PCB
Fabricarea PCB
Fabricarea PCB
Fabricarea PCB
Fabricarea PCB
Fabricarea PCB
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

Prezentare generală a software-ului
Prezentare generală a software-ului
Prezentare generală a software-ului
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

Testarea proiectării
Testarea proiectării
Testarea proiectării
Testarea proiectării

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: