Kazalo:
- 1. korak: Pregled vezja
- Korak: Izdelava tiskanih vezij
- 3. korak: Pregled programske opreme
- 4. korak: Preizkusite zasnovo
- 5. korak: Zaključek
- 6. korak: Uporabljene reference
Video: Uber I2C LCD krmilni modul: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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
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
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
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
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:
Krmilni sistemi: 5 korakov
Nadzorni sistemi: Torej želite razumeti nadzorne sisteme. Morda boste želeli ugotoviti razliko med krmilnim sistemom zaprte zanke in odprte zanke. Ta navodila vam bodo pomagala pri tem! Kako lahko ugotovim, ali gre za sistem z odprto ali zaprto zanko? Pa ste
Krmilni modul stikala za napajanje Raspberry Pi ATX: 3 koraki
Krmilni modul stikala za napajanje Raspberry Pi ATX PSU: V sistemu, sestavljenem iz RaspberryPi, ki ga poganja napajalna enota ATX, je cilj tega vezja omogočiti vklop ali izklop sistema z enim samim pritiskom na gumb. Ta priročnik je bil razvit avtor sitelec.org
I2C / IIC LCD zaslon - Uporabite SPI LCD za LCD zaslon I2C z uporabo modula SPI do IIC z Arduinom: 5 korakov
I2C / IIC LCD zaslon | Uporabite SPI LCD za LCD zaslon I2C z uporabo modula SPI do IIC z Arduinom: Pozdravljeni, saj ima navaden SPI LCD 1602 preveč žic za povezavo, zato ga je zelo težko povezati z arduinom, vendar je na trgu na voljo en modul, ki lahko pretvorite zaslon SPI v zaslon IIC, tako da morate priključiti samo 4 žice
I2C / IIC LCD zaslon - Pretvorite SPI LCD v LCD zaslon I2C: 5 korakov
I2C / IIC LCD zaslon | Pretvorite SPI LCD v LCD zaslon I2C: uporaba spi lcd zaslona zahteva preveč povezav, kar je res težko narediti, zato sem našel modul, ki lahko i2c lcd pretvori v spi lcd, zato začnimo
DIY laserski krmilni modul za Arduino: 14 korakov (s slikami)
Laserski krmilni modul DIY za Arduino: V tem navodilu bom prikazal konstrukcijo dvoosnega krmilnega modula z enim ogledalom z laserskim žarkom z uporabo 3D tiskanih delov in poceni komponent z eBay-a. Ta projekt je podoben Laser Showu Arduino s Full XY Nadzirajte