Kazalo:

Uber I2C LCD krmilni modul: 6 korakov
Uber I2C LCD krmilni modul: 6 korakov

Video: Uber I2C LCD krmilni modul: 6 korakov

Video: Uber I2C LCD krmilni modul: 6 korakov
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, November
Anonim
Uber I2C krmilni modul LCD
Uber I2C krmilni modul LCD
Uber I2C krmilni modul LCD
Uber I2C krmilni modul LCD
Uber I2C krmilni modul LCD
Uber I2C krmilni modul LCD

Preambula

V tem navodilu je podrobno opisano, kako ustvariti krmilni modul na osnovi HD44780 LCD (slika 1 zgoraj). Modul omogoča uporabniku programsko krmiljenje vseh vidikov LCD -ja prek I2C, ki obsega; LCD in zaslon, kontrast in jakost osvetlitve ozadja. Čeprav je bil Arduino Uno R3 uporabljen za izdelavo prototipa, bo deloval enako dobro s katerim koli mikrokrmilnikom, ki podpira I2C.

Uvod

Kot je navedeno zgoraj, ta članek dokumentira nastanek modula krmilnika LCD I2C, ki je bil namenjen predvsem oblikovanju, da se ugotovi, kako dolgo bo trajalo ustvarjanje praktičnega delovnega tiskanega vezja.

Zasnova nadomešča standardni generični krmilni modul (slika 3 zgoraj) in temelji na navodilih in knjižnicah, ki sem jih izdelal prej.

Od začetnega prototipa koncepta (slika 2 zgoraj) do dokončanega, popolnoma preizkušenega tiskanega vezja (slika 1 zgoraj) je trajalo skupaj 5,5 dni.

Katere dele potrebujem? Glejte spodaj priloženi material

Kakšno programsko opremo potrebujem?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, če želite spremeniti tiskano vezje. V nasprotnem primeru samo pošljite 'LCD_Controller.zip' na JLCPCB.

Katera orodja potrebujem?

  • Mikroskop najmanj x3 (za spajkanje SMT),
  • Spajkalnik SMD (s peresom za tekoči fluks in spajkalnikom s fluksiranim polnjenjem),
  • Močna pinceta (za spajkanje SMT),
  • Drobne klešče (s konicami in nosom),
  • DMM z zvočnim preverjanjem kontinuitete.

Kakšne veščine potrebujem?

  • Veliko potrpljenja,
  • Velika mera ročne spretnosti in odlična koordinacija roke/oči,
  • Odlične sposobnosti spajkanja.

Zajete teme

  • Uvod
  • Pregled vezja
  • Izdelava PCB
  • Pregled programske opreme
  • Testiranje oblikovanja
  • Zaključek
  • Uporabljene reference

1. korak: Pregled vezja

Pregled vezja
Pregled vezja

Celoten diagram vezja vse elektronike je prikazan na sliki 1 zgoraj, skupaj z PDF spodaj.

Vezje je bilo zasnovano kot natančna zamenjava za standardni modul LCD krmilnika PCF8574A I2C z naslednjimi izboljšavami;

  • Združljivost 3v3 ali 5v, ki jo lahko izberejo uporabniki I2C,
  • Digitalni nadzor kontrasta ali običajna nastavitev lonca,
  • Spremenljiva izbira jakosti osvetlitve ozadja s funkcijo Quartic sprostitev za dosego gladkega bledenja.

Nadzor LCD zaslona

To je faksimil standardnega I2C LCD krmilnega modula, ki uporablja PCF8574A (IC2) za pretvorbo I2C v vzporedno.

Privzeti naslov I2C za to je 0x3F.

Združljivost 3v3 ali 5v I2C

Za delovanje 3v3 ustrezajo Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 in C2.

Če je potrebno delovanje 5v, potem ne namestite nobenih komponent 3v3 in jih zamenjajte z 0 ohmskimi upori ROpt 3 in 4.

Digitalni kontrast

Digitalni nadzor kontrasta se doseže z uporabo digitalnega potenciometra U2 MCP4561-103E/MS in C4, R5.

Če je potreben običajen mehanski potenciometer, ga lahko namestite na tiskano vezje, RV1 10K, namesto U2, C4 in R5. Za združljiv potenciometer glejte BoM.

S premostitvijo mostička J6 je naslov I2C 0x2E. Za normalno delovanje se je domnevalo, da je to premoščeno.

Spremenljiva jakost osvetlitve ozadja

Spremenljivo jakost osvetlitve ozadja nadzoruje PWM modulacija osvetlitve ozadja LCD LED prek U1 pin 6 in ATTiny85. Da bi ohranili popolno združljivost s standardnim modulom LCD krmilnika I2C R1, se za moduliranje napajalne tirnice +ve uporabljajo moduli R1, T1 R7 in T2.

Privzeti naslov I2C za to je 0x08. To lahko izbere uporabnik v času prevajanja pred programiranjem U1.

Korak: Izdelava tiskanih vezij

Izdelava PCB
Izdelava PCB
Izdelava PCB
Izdelava PCB
Izdelava PCB
Izdelava PCB
Izdelava PCB
Izdelava PCB

Kot smo že omenili, je bil ta Instructable vaja, namenjena predvsem ugotavljanju, kako dolgo bo trajalo dokončanje zasnove (ki je imela praktičen namen).

V tem primeru sem pomislil na prvotni koncept v soboto popoldne in prototip dokončal do sobote zvečer na sliki 1 zgoraj. Moja ideja, kot je bilo navedeno, je bila ustvariti lastno različico krmilnega modula I2C LCD z enakim odtisom, ki ponuja popoln programski nadzor LCD nad I2C.

Shematski diagram in postavitev tiskanega vezja sta bila razvita s slikami 2 in 3. Kicad v4.0.7. To je bilo zaključeno v nedeljo popoldne, deli pa so bili naročeni pri Farnellu, PCB pa je bil naložen v JLCPCB do nedelje zvečer.

Komponente so v sredo prispele iz Farnella, v četrtek pa PCB iz JLCPCB (za pospešitev sem uporabil storitev dostave DHL) slike 4, 5, 6 in 7.

Do četrtka zvečer sta bili izdelani in uspešno preizkušeni dve plošči (različice 3v3 in 5v) na LCD -zaslonu 4 x 20. Slike 8, 9 in 10.

Neverjetnih 5,5 dni od začetnega koncepta do zaključka.

Preseneča me, kako hitro lahko JLCPCB sprejme naročilo, izdela dvostransko PTH PCB in ga pošlje v Veliko Britanijo. 2 dni za izdelavo v mehurčkih in 2 dni za dostavo. To je hitreje od proizvajalcev PCB iz Velike Britanije in za del cene.

3. korak: Pregled programske opreme

Pregled programske opreme
Pregled programske opreme
Pregled programske opreme
Pregled programske opreme

Za krmiljenje modula krmilnika LCD I2C obstajajo trije glavni sestavni deli programske opreme;

1. Knjižnica Arduino LiquidCrystal_I2C_PCF8574

Na voljo tukaj

Uporablja se v skici Arduino za nadzor LCD zaslona.

Opomba: To deluje enako dobro z generičnim krmilnikom LCD modulov I2C. Le to daje funkcionalnost kot druge knjižnice.

2. Knjižnica Arduino MCP4561_DIGI_POT

Uporablja se v skici za programsko krmiljenje kontrasta LCD -ja

Na voljo tukaj

3. Programsko krmiljenje ravni osvetlitve ozadja LCD z uporabo PWM in funkcije Quartic sprostitev, da dosežete gladko bledenje

Kot smo že omenili, plošča vsebuje en sam ATTiny85, ki se uporablja za nadzor postopnega ugašanja osvetlitve zaslona.

Podrobnosti o tej programski opremi so navedene v prejšnjem navodilu "Gladko PWM LED zbledelo z ATTiny85"

V tem primeru je bila za ohranitev končnih dimenzij tiskanega vezja enaka generičnemu krmilnemu modulu LCD, izbrana SOIC varianta ATTiny85. Na slikah 1 in 2 je prikazano, kako je bil ATTiny85 SOIC programiran in preizkušen v nastavljenem prototipu.

Koda, programirana v ATTiny85, je bila "Tiny85_I2C_Slave_PWM_2.ino" na voljo tukaj

Za podrobnosti o tem, kako ustvariti lastnega programerja ATTiny85, glejte ta navodila "Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ponudnik internetnih storitev"

4. korak: Preizkusite zasnovo

Testiranje oblikovanja
Testiranje oblikovanja
Testiranje oblikovanja
Testiranje oblikovanja

Za preizkus zasnove sem ustvaril skico z imenom 'LCDControllerTest.ino', ki uporabniku omogoča, da nastavi kateri koli poseben parameter LCD neposredno prek povezave serijskega terminala.

Skico lahko najdete v mojem skladišču GitHub I2C-LCD-Controller-Module

Na sliki 1 zgoraj je prikazana stiskalnica za ploščo, ki je skladna s 5v I2C, nameščena na LCD -zaslon velikosti 4 x 20, slika 2 pa privzeti zaslon, ko prvič zaženete preskusno kodo.

Za osvetlitev ozadja in kontrast uporablja naslednje privzete vrednosti;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((brez podpisa dolgo) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Ugotovil sem, da so ti dobro delovali z LCD zaslonom 4 x 20, ki sem ga imel na zalogi.

5. korak: Zaključek

Ko sem pred časom prvič začel delati v industriji elektronike/programske opreme, je bil velik poudarek na uporabi žične ali veroboard konstrukcije za izdelavo prototipov z veliko preoblikovanja končnega vezja, če ste naredili napako glede na stroške in trajanje ponovnega vrtenja plošče.

Napaka vas je običajno stala nekaj tednov na urniku in poslabšala stopnjo dobička (in morda tudi vaše delo).

PCB so imenovali "umetniška dela", ker so bila resnično umetniška dela. Ustvarjen dvakrat v polni velikosti z lepljivim črnim krep trakom s strani »sledilca« ali draughtspersona, fotografsko zmanjšan s čudovito hišo, da se fotografija upre šablonam.

Vezje so ustvarili tudi sledilci in ročno narisali iz vaših načrtov. Kopije so bile narejene fotostatično in so se imenovale "modri odtisi". Ker so bile vedno modre barve.

Mikrokrmilniki so bili šele v povojih in so bili običajno v vezju posnemani, če si je vaše podjetje privoščilo takega s spremljajočim zapletenim in dragim razvojnim okoljem.

Kot takratni izdelovalec so bili zgolj stroški verige orodij za razvoj programske opreme previsoki, neizogibno ste bili prisiljeni vstaviti šestnajstiške vrednosti neposredno v EPROM (RAM/Flash, če ste imeli veliko srečo), nato pa porabite ure za razlago nastalega vedenja, da ugotovite, kaj vaša koda je delovala, če ni delovala po pričakovanjih (najpogostejša tehnika odpravljanja napak je bit 'wiggling' ali serijski printf. Nekatere stvari se nikoli ne spremenijo). Običajno ste morali napisati vse svoje knjižnice, saj nobena ni bila na voljo (zagotovo ni bilo bogatega vira, kot je internet).

To je pomenilo, da ste porabili veliko časa, da bi razumeli, kako nekaj deluje, in manj časa za ustvarjalno ustvarjanje.

Vsi vaši diagrami so bili ročno narisani, običajno na A4 ali A3 in jih je bilo treba dobro premisliti, kar jim daje logičen tok signalne poti od leve proti desni. Popravki so običajno pomenili, da morate začeti s svežim listom.

Večinoma je bilo vaše zadnje vezje razvito z uporabo veroboard -a za trajnost in nameščeno v preprosto ohišje iz ABS -a, ki mu daje tisti "profesionalni dotik".

Skratka, ta projekt sem v 5,5 dneh razvil z visoko kakovostno brezplačno programsko opremo, kar je povzročilo profesionalno standardno tiskano vezje. Če bi me želja prevzela, bi jo lahko namestil v 3D tiskano škatlo lastne izdelave.

Nekaj, o čemer ste lahko sanjali šele pred manj kot desetletjem.

Kako so se stvari spremenile na bolje.

6. korak: Uporabljene reference

KiCAD Shematski zajem in zasnova tiskanega vezja

KiCAD EDA

Orodje za razvoj programske opreme Arduino ORG

Arduino

Knjižnica Arduino LiquidCrystal_I2C_PCF8574

Tukaj

Knjižnica Arduino MCP4561_DIGI_POT

Tukaj

Gladko PWM LED bledenje z ATTiny85

Tukaj

Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP

Priporočena: