Kazalo:

3-žični HD44780 LCD za manj kot 1 dolar: 5 korakov
3-žični HD44780 LCD za manj kot 1 dolar: 5 korakov

Video: 3-žični HD44780 LCD za manj kot 1 dolar: 5 korakov

Video: 3-žični HD44780 LCD za manj kot 1 dolar: 5 korakov
Video: POER PTC20 WIFI - Идеальный термостат, для домашней автоматики, с управлением по WIFI! Полный обзор. 2024, Julij
Anonim
3-žični HD44780 LCD za manj kot 1 dolar
3-žični HD44780 LCD za manj kot 1 dolar

V tem navodilu se bomo naučili, kako lahko LCD, ki temelji na naboru čipov HD44780, priključimo na vodilo SPI in ga s samo tremi žicami povežemo za manj kot 1 USD. Čeprav se bom v tej vadnici osredotočil na alfanumerični zaslon HD44780, bo isto načelo delovalo skoraj enako za vse druge LCD -je, ki uporabljajo 8 -bitno vzporedno podatkovno vodilo, zato ga je mogoče zelo enostavno prilagoditi zaslonom s 16 -bitnimi podatkovnimi vodili.. Alfanumerični zasloni na osnovi HD44780 (in združljivi) so običajno na voljo v konfiguracijah 16x2 (2 vrstici, sestavljeni iz 16 znakov) in 20x4, vendar jih je mogoče najti v številnih drugih oblikah. Najbolj "zapleten" zaslon bi bil zaslon velikosti 40x4, ta vrsta zaslona je posebna, saj ima 2 krmilnika HD44780, enega za zgornji dve vrstici in enega za spodnji dve vrstici. Nekateri grafični LCD -ji imajo tudi dva krmilnika. LCD -zasloni HD44780 so odlični, zelo poceni so, berljivi in z njimi je enostavno delati. Imajo pa tudi nekaj pomanjkljivosti, ti zasloni zavzamejo veliko V/I zatičev, ko so povezani z Arduinom. Pri enostavnih projektih to ne skrbi, če pa projekti postanejo veliki, z veliko vmesnih izhodov ali kadar so potrebni nekateri zatiči za stvari, kot je analogno branje ali PWM, lahko dejstvo, da ti LCD -ji zahtevajo najmanj 6 zatičev, postane problem. Toda to težavo lahko rešimo na poceni in zanimiv način.

1. korak: Pridobite komponente

Za večino komponent, ki sem jih uporabil v tem projektu, sem uporabil TaydaElectronics. Te dele lahko dobite tudi na ebayu, vendar vas zaradi lažje uporabe povežem s Tayda. Seznam nakupov2 - paket 74HC595 DIP161 - Generična moška glava - 2 zatiča. To ni potrebno, to sem uporabil kot način za trajno onemogočanje osvetlitve ozadja.3 - Keramični kondenzator - kapacitivnost 0,1 µF; napetost 50V1 - elektrolitski kondenzator - kapacitivnost 10µF; napetost 35V1 - Keramični kondenzator - kapacitivnost 220pF; napetost 50V1 - NPN -tranzistor - del # PN2222A* 1 - 1k Ω upor 1 - trimer potenciometer - največji upor 5kΩ1 - 470 Ω upor* Pri tranzistorju NPN osvetlitev ozadja ne sveti, dokler ga programska oprema ne vklopi. Če želite privzeto vklopiti osvetlitev ozadja, uporabite tranzistor tipa PNP. Kljub temu bo treba spremeniti kodo knjižnice. Skupaj za ta seznam je 0,744 USD. Glava zatiča tudi ni potrebna, zato lahko tam shranite 15 centov in vmesni seštevek znaša 0,6 USD.

2. korak: Spoznajte svojo strojno opremo #1

Spoznajte svojo strojno opremo #1
Spoznajte svojo strojno opremo #1

Tukaj je standardni pin iz HD44780 LCD -ja, prav tako je zelo podoben nekaterim grafičnim LCD -jem. HD44780 lahko deluje v dveh načinih: 1. 4-bitni način, kjer je vsak bajt, poslan na LCD, sestavljen iz 2 4-bitnih delov. 2. 8-bitni način, na katerega se bomo osredotočili. LCD ima skupaj 16 zatičev, 3 krmilne zatiče in 8 podatkovnih zatičev: RS - Nadzira, ali želimo poslati ukaz ali podatke na LCD. Kjer "visoko" pomeni podatke (znak) in "nizko" pomeni ukazni bajt. R/W - Krmilnik HD44780 vam omogoča branje iz RAM -a. Ko je ta pin "visok", lahko beremo podatke iz njegovih zatičev. Ko je "nizko", lahko podatke zapišemo na LCD. Čeprav je možnost branja z LCD -ja v nekaterih primerih lahko koristna, je v tej vadnici ne bomo obravnavali, ampak bomo ta pin preprosto ozemljili, da zagotovimo, da je vedno v načinu za pisanje., ta pin se preklopi 'visoko', nato 'nizko', da zapiše podatke v svoj RAM in jih sčasoma prikaže na zaslonu. DB0-7 - to so podatkovni zatiči. V 4 -bitnem načinu uporabljamo samo 4 velike bite DB4 -DB7, v 8 -bitnem načinu pa se uporabljajo vsi. VSS - To je ozemljitveni vtič., lahko enostavno napajamo z napajalnikom Arduino + 5v. Vo - To je pin, ki vam omogoča nastavitev ravni kontrasta za zaslon, potrebuje potenciometer, običajno se uporablja lonec 5K Ohm. LED + - To je vir energije za osvetlitev ozadja. Nekateri LCD -zasloni nimajo osvetlitve ozadja in imajo le 14 zatičev. V večini primerov ta pin potrebuje tudi povezavo +5V. LED- - To je osnova za osvetlitev ozadja. ** Pomembno je, da preverite podatkovni list zaslona ali pregledate njegovo tiskano vezje, da preverite upor osvetlitve ozadja, večina LCD jih bo imela vgrajenih -v tem primeru morate le priključiti napajanje na LED+ in ozemljiti na LED-. Toda če vaš LCD nima vgrajenega upora za osvetlitev ozadja, je pomembno, da ga dodate, sicer bo osvetlitev ozadja porabila veliko energije in bo sčasoma izgorela. V večini primerov je ta LCD priključen na Arduino z uporabo v 4-bitnem načinu in ozemljitvijo R/W zatiča. Na ta način uporabljamo zatiče RS, E in DB4-DB7. Izvajanje v 4-bitnem načinu ima še eno majhno pomanjkljivost, saj zapisovanje podatkov na zaslon traja dvakrat dlje kot v 8-bitni konfiguraciji. LCD-zaslon ima čas „poravnave“37 mikrosekund, kar pomeni, da morate počakati 37 mikrosekund, preden pošljete naslednji ukaz ali podatkovni bajt na LCD. Ker moramo v 4-bitnem načinu dvakrat poslati podatke za vsak bajt, se skupni čas, ki je potreben za zapis enega bajta, poveča na 74 mikrosekund. To je še vedno dovolj hitro, vendar sem želel, da bi moj dizajn prinesel najboljše možne rezultate. Rešitev našega problema s številom uporabljenih zatičev je v serijskem pretvorniku …

3. korak: Spoznajte svojo strojno opremo #2

Spoznajte svojo strojno opremo #2
Spoznajte svojo strojno opremo #2

Kar bomo naredili, je izdelati adapter, ki sprejme serijsko vrsto komunikacije, ki prihaja iz Arduina, in pretvori podatke v vzporedni izhod, ki se lahko vnese na naš LCD. Na voljo je čip 74HC595. To je zelo poceni in enostaven za uporabo premični register. V bistvu vzame uro in podatkovne signale, ki jih uporablja za zapolnitev notranjega 8 -bitnega medpomnilnika z osmimi zadnjimi bitovi, ki so bili "vklopljeni". Ko je pin "Latch" (ST_CP) "visoko" premakne te bite v svojih 8 izhodov. 595 ima zelo lepo funkcijo, ima izhod za serijske podatke (Q7 '), ta pin se lahko uporablja za povezovanje 2 ali več 595 -ih skupaj, da tvorijo zaporedne do vzporedne vmesnike, široke 16 ali več bitov. Za ta projekt potrebujemo 2 od teh čipov. Shemo je mogoče spremeniti tudi za delo z enim samim 595 v 4-bitnem načinu, vendar to ne bo zajeto v tej vadnici.

4. korak: Ožičite vse

Ožičenje vse skupaj
Ožičenje vse skupaj

Zdaj, ko vemo, kako deluje naša strojna oprema, lahko vse povežemo. Na shemi vidimo 2 595 žetonov, povezanih skupaj, da tvorijo 16 -bitni vzporedni izhod. Spodnji čip je pravzaprav glavni, zgornji pa je nanj privezan marjetica. Tukaj vidimo, da spodnji 595 poganja podatkovne zatiče LCD-ja v 8-bitni konfiguraciji, zgornji čip nadzoruje signal RS in osvetlitev ozadja z vklopom ali izklopom tranzistorja. Ne pozabite *opombe o osvetlitvi zaslona LCD na strani Spoznajte svojo strojno opremo #1, če vaš LCD nima upora za osvetlitev ozadja, ne pozabite dodati enega v vezje. V mojem primeru sem LCD že opremil z vgrajenim uporom, zato sem ta korak preskočil. Kontrast se uporablja prek lonca 5K Ohm, en zatič gre za GND, drugi za VCC, brisalnik pa za Vo pin na LCD -ju. Kondenzatorji, ki se uporabljajo na linijah LCD in 595 VCC, so ločeni kondenzatorji, zato so namenjeni odpravljanju motenj. Niso nujni, če delate na krovu, vendar jih je treba uporabiti, če sestavite svojo različico tega vezja za uporabo zunaj "laboratorijskih pogojev". R5 in C9 v tem zelo določenem vrstnem redu ustvarita zakasnitev RC, ki poskrbi, da se imajo podatki na izhodih 595 časa stabilizirati, preden je pin za omogočanje na LCD -ju nastavljen na "visoko" in prebere podatke. Q7 'na dnu 595 gre v serijski vnos podatkov 595 na vrhu, kar ustvarja verižico marjetice 595s in s tem 16 -bitni vmesnik. Ožičenje do Arduina je enostavno. Uporabljamo 3-žično konfiguracijo z uporabo Arduinovih SPI zatičev. To omogoča zelo hiter prenos podatkov, pošiljanje 2 bajtov na LCD običajno traja približno 8 mikrosekund. To je zelo hitro in dejansko veliko hitreje kot čas, ki je potreben LCD -ju za obdelavo podatkov, zato je med vsakim pisanjem potrebna zamuda 30 mikrosekund. Ena velika prednost uporabe SPI je, da se nožici D11 in D13 delita z drugimi napravami SPI. To pomeni, da če že imate drugo komponento, ki uporablja SPI, na primer merilnik pospeška, bo ta rešitev uporabila samo en dodatni pin za signal za omogočanje. Na naslednji strani bomo videli rezultat. Zgradil sem nahrbtnik na plošči in mi doslej zelo dobro deluje.

5. korak: Knjižnica Result +

Knjižnica Result +
Knjižnica Result +
Knjižnica Result +
Knjižnica Result +
Knjižnica Result +
Knjižnica Result +
Knjižnica Result +
Knjižnica Result +

"Slika je vredna tisoč besed", se strinjam s to trditvijo, zato je tukaj nekaj slik končnega rezultata tega projekta. To so slike dokončanega izdelka, pogled Fritzing PCB je postavitev perfboard -a, ki sem jo uporabil za izdelavo nahrbtnika. Morda se vam bo zdelo koristno, če želite zgraditi svojega. Tako mi je bilo všeč, da sem z DipTraceom oblikoval tiskano vezje in naročil serijo 10 PCB -jev. Potreboval bom 2 ali 3 enote zase, ostalo pa bom dal na voljo po simbolični ceni, ko jih bom prejel. Tako da če koga zanima naj mi sporoči. * Edit: PCB -ji so tu in delujejo. Tukaj je celotna galerija slik za ta projekt, vključno z dejanskimi tiskanimi vezji. https://imgur.com/a/mUkpw#0 Seveda nisem pozabil na najpomembnejšo stvar, knjižnico za uporabo tega vezja. Združljiv je s knjižnico LiquidCrystal, vključeno v Arduino IDE, zato lahko preprosto zamenjate deklaracije na vrhu skice in vam ni treba spreminjati ničesar drugega na skici. Obstaja tudi primer skice, ki prikazuje, kako deluje vsaka funkcija v knjižnici, zato jo preverite.

Priporočena: