Sisukord:

3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollarile: 5 sammu
3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollarile: 5 sammu

Video: 3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollarile: 5 sammu

Video: 3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollarile: 5 sammu
Video: Jak podłączyć łączniki schodowe i krzyżowy w puszce - krok po kroku - DIY 2024, November
Anonim
3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollari eest
3-juhtmeline HD44780 LCD-ekraan vähem kui 1 dollari eest

Selles juhendis õpime, kuidas ühendada HD44780 kiibistikul põhinev LCD -ekraan SPI -siini külge ja juhtida seda ainult 3 juhtmega vähem kui 1 dollari eest. Kuigi ma keskendun selles õpetuses HD44780 tähtnumbrilisele ekraanile, töötab sama põhimõte peaaegu sama mis tahes muu LCD -ekraani puhul, mis kasutab 8 -bitist paralleelset andmesiini, ja seda saab hõlpsasti kohandada 16 -bitiste andmesiinidega kuvaritele sobivaks. HD44780 (ja ühilduvad) põhised tähtnumbrilised kuvarid on tavaliselt saadaval 16x2 (2 rida, mis koosnevad 16 tähemärgist) ja 20x4 konfiguratsioonis, kuid neid võib leida ka paljudes muudes vormides. Kõige keerulisem ekraan oleks 40x4 -kuvar, selline kuvar on eriline, kuna sellel on kaks HD44780 kontrollerit, üks ülemise kahe rea ja teine alumise rea jaoks. Mõnel graafilisel LCD -l on ka kaks kontrollerit. HD44780 LCD -ekraanid on suurepärased, need on väga odavad, loetavad ja nendega on üsna lihtne töötada. Kuid neil on ka mõningaid puudusi, need kuvarid võtavad Arduinoga ühendamisel palju I/O kontakte. Lihtsate projektide puhul pole see murettekitav, kuid kui projektid muutuvad suureks, suure hulga IO -ga või kui teatud tihvte on vaja selliste asjade jaoks nagu analooglugemine või PWM, võib asjaolu, et nende LCD -de jaoks on vaja vähemalt 6 tihvti. probleem. Kuid me saame selle probleemi odavalt ja huvitavalt lahendada.

Samm: komponentide hankimine

Enamiku selles projektis kasutatud komponentide puhul kasutasin TaydaElectronicsit. Neid osi saate hankida ka ebayst, kuid kasutusmugavuse huvides seon teid Taydaga. Ostunimekiri2 - 74HC595 pakett DIP161 - üldine isane päis - 2 tihvti. See pole nõutav, kasutasin seda taustvalgustuse püsivaks väljalülitamiseks. 3 - Keraamiline kondensaator - mahtuvus 0,1 µF; pinge 50V1 - elektrolüütkondensaator - mahtuvus 10µF; pinge 35V1 - keraamiline kondensaator - mahtuvus 220pF; pinge 50V1 - NPN -transistor - osa # PN2222A* 1 - 1k Ω Takisti1 - trimmeri potentsiomeeter - maksimaalne takistus 5kΩ1 - 470 Ω takisti* NPN -transistori korral jääb taustvalgus välja, kuni tarkvara selle sisse lülitab. Kui soovite taustvalgust vaikimisi sisse lülitada, kasutage PNP tüüpi transistorit. Esitatud raamatukogu koodis tuleb siiski muudatusi teha. Selle loendi kogusumma on 0,744 dollarit. Nööpnõela päist pole samuti vaja, nii et saate säästa 15 senti ja vahesumma on 0,6 dollarit.

Samm: tundke oma riistvara #1

Tunne oma riistvara #1
Tunne oma riistvara #1

Siin on tavaline tihvt HD44780 LCD -ekraanist, see on samuti väga sarnane mõne graafilise LCD -ga. HD44780 saab töötada kahes režiimis: 1. 4-bitine režiim, kus iga LCD-le saadetud bait koosneb 2 4-bitisest osast. 2. 8-bitine režiim, millele keskendume. LCD -ekraanil on kokku 16 tihvti, 3 juhtnööpi ja 8 andmestikku: RS - kontrollib, kas tahame LCD -le käsku või andmeid saata. Kui "kõrge" tähendab andmeid (tähemärk) ja "madal" tähendab käsubaiti. R/W - HD44780 kontroller võimaldab teil lugeda selle RAM -i. Kui see tihvt on „kõrge”, saame lugeda andmeid selle tihvtidelt. Kui see on madal, saame andmeid LCD -le kirjutada. Kuigi LCD -ekraanilt lugemise võimalus võib mõnel juhul olla kasulik, ei lähe me selles juhendis sellest üle ja maandame selle tihvti lihtsalt tagamaks, et see on alati kirjutusrežiimis. E - E on nupp „Luba”, see tihvt on lülitatud "kõrgeks" ja seejärel "madalaks", et kirjutada andmed oma mällu ja kuvada need lõpuks ekraanil. DB0-7 - need on andmestikud. 4 -bitises režiimis kasutame ainult 4 kõrget bitti DB4 -DB7 ja 8 -bitises režiimis kasutatakse neid kõiki. VSS - see on maandusnõel. VCC - see toitenupp, LCD töötab 5 V toiteallikast, saame seda hõlpsalt toita Arduino + 5v nööpnõelast. Vo - See on tihvt, mis võimaldab teil ekraani kontrastsust määrata, see nõuab potentsiomeetrit, tavaliselt kasutatakse 5K oomi potti. LED + - See on taustvalgustuse toiteallikas. Mõnel LCD -l pole taustavalgustust ja neil on ainult 14 kontakti. Enamikul juhtudel nõuab see tihvt ka +5 V ühendust. LED- - See on taustvalgustuse alus. ** Taustvalgustustakisti leidmiseks on oluline kontrollida kuvarite andmelehte või kontrollida selle trükkplaati, enamik LCD -sid on need ehitatud -in, sel juhul piisab, kui rakendada LED+ -le toide ja maandada LED-. Kuid kui teie LCD-ekraanil pole taustvalgustuse jaoks sisseehitatud takistit, on oluline see lisada, vastasel juhul tarbib taustvalgus palju energiat ja lõpuks põleb. Enamikul juhtudel ühendatakse see LCD Arduinoga, kasutades seda 4-bitises režiimis ja maandades R/W tihvti. Nii kasutame tihvte RS, E ja DB4-DB7. 4-bitises režiimis töötamisel on veel üks väike puudus, kuna andmete ekraanile kirjutamine võtab kaks korda rohkem aega kui 8-bitise konfiguratsiooni korral. LCD-ekraanil on settimisaeg 37 mikrosekundit, see tähendab, et enne järgmise käsu või andmebaidi LCD-le saatmist peate ootama 37 mikrosekundit. Kuna 4-bitises režiimis peame iga baidi kohta kaks korda andmeid saatma, ulatub ühe baidi kirjutamiseks kuluv aeg kokku 74 mikrosekundini. See on endiselt piisavalt kiire, kuid tahtsin, et minu disain annaks parimaid võimalikke tulemusi. Lahendus meie probleemile kasutatud tihvtide arvuga peitub jada -paralleelmuunduris …

Samm: tundke oma riistvara #2

Tunne oma riistvara #2
Tunne oma riistvara #2

Mida me teeme, on ehitada adapter, mis võtab Arduino'st väljuvat jadatüüpi sidet ja teisendab andmed paralleelväljundiks, mida saab meie LCD -ekraanile edastada. Sisse tuleb kiip 74HC595. See on väga odav ja hõlpsasti kasutatav vahetuste register. Põhimõtteliselt võtab see kella ja andmesignaalid, mida ta kasutab sisemise 8 -bitise puhvri täitmiseks kaheksa viimase kellaga. Kui „Latch” (ST_CP) tihvt on „kõrgele” viidud, liigutab ta need bitid oma 8 väljundisse. 595 -l on väga kena omadus, sellel on seeriaandmete väljastamise tihvt (Q7 '), seda tihvti saab kasutada kahe või enama ahela 595 ühendamiseks, et moodustada 16 või enama bitise laiusega seeria- ja paralleeladapterid. Selle projekti jaoks vajame 2 sellist kiipi. Skeemi saab muuta ka töötamiseks ühe 595-ga 4-bitises režiimis, kuid see õpetus seda ei hõlma.

Samm: ühendage see kõik kokku

Juhtmestik kõik üles
Juhtmestik kõik üles

Nüüd, kui me teame, kuidas meie riistvara töötab, saame selle kõik ühendada. Skeemil näeme 2 595 kiipi, mis on aheldatud kokku, moodustades 16 -bitise paralleelse väljundi. Alumine kiip on tegelikult peamine ja ülemine on selle külge aheldatud. Siin näeme, et alumine 595 juhib LCD-andmesideid 8-bitises konfiguratsioonis, ülemine kiip juhib RS-signaali ja taustvalgust, lülitades transistori sisse või välja. Pidage meeles *märkust LCD taustvalgustuse kohta leheküljel Tunne oma riistvara nr 1, juhul kui teie LCD -l pole taustvalgustustakisti, ärge unustage seda oma vooluringi lisada. Minu puhul on LCD-ekraanidel juba sisseehitatud takisti, seega jätsin selle sammu vahele. Kontrast kantakse läbi 5K oomi poti, üks tihvt läheb GND -le, teine VCC -le ja klaasipuhasti LCD -ekraanil olevale Vo -tihvtile. LCD ja 595 VCC liinidel kasutatavad kondensaatorid on lahti ühendatud kondensaatorid, need on olemas häiretest vabanemiseks. Need ei ole kohustuslikud, kui töötate leivaplaadil, kuid neid tuleks kasutada juhuks, kui loote selle vooluringi oma versiooni kasutamiseks väljaspool laboritingimusi. R5 ja C9 selles väga spetsiifilises järjekorras tekitavad RC viivituse, mis tagab, et 595 väljundite andmetel on aega stabiliseeruda, enne kui LCD -ekraanil olev lubamisnupp on kõrgeks seatud ja andmed ette loetakse. Alumise 595 Q7 'läheb üleval oleva 595 seeriaandmete sisendisse, see loob 595 -st koosneva ahela ja seega 16 -bitise liidese. Arduinoga ühendamine on lihtne. Kasutame 3-juhtmelist konfiguratsiooni, kasutades Arduino SPI tihvte. See võimaldab väga kiiret andmeedastust, 2 baidi saatmine LCD -le võtab tavaliselt umbes 8 mikrosekundit. See on väga kiire ja tegelikult palju kiirem kui aeg, mis kulub LCD -l andmete töötlemiseks, seega on iga kirjutamise vahel vaja 30 mikrosekundilist viivitust. Üks väga suur SPI kasutamise eelis on see, et tihvte D11 ja D13 jagatakse teiste SPI -seadmetega. See tähendab, et kui teil on juba mõni muu SPI -d kasutav komponent, näiteks kiirendusmõõtur, kasutab see lahendus lubamissignaali jaoks ainult ühte lisatihvti. Järgmisel lehel näeme tulemust. Olen ehitanud parvlauale seljakoti ja see töötab minu jaoks siiani väga hästi.

Samm: tulemus + kogu

Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu
Tulemus + raamatukogu

"Pilt on väärt tuhat sõna", nõustun selle väitega, nii et siin on mõned pildid selle projekti lõpptulemusest. Need on valminud toote pildid, Fritzing PCB vaade on perfboard -paigutus, mida kasutasin oma seljakoti ehitamiseks. See võib osutuda kasulikuks, kui soovite ise ehitada. Mulle meeldis see nii väga, et kavandasin DipTrace'i abil PCB ja tellisin 10 PCB partii. Ma vajan endale 2 või 3 ühikut, kuid muud teen kättesaadavaks sümboolse hinna eest, kui need kätte saan. Nii et kui kedagi huvitab, siis andke teada. * Muuda: PCB -d on siin ja need töötavad. Siin on selle projekti täielik pildigalerii, sealhulgas tegelikud trükkplaadid. https://imgur.com/a/mUkpw#0 Muidugi ei unustanud ma kõige tähtsamat - raamatukogu, millega seda vooluringi kasutada. See ühildub Arduino IDE -ga kaasas oleva LiquidCrystali raamatukoguga, nii et saate hõlpsalt oma visandi ülaosas olevaid deklaratsioone asendada ja ei pea visandis midagi muud muutma. Samuti on näidisvisand, mis näitab, kuidas iga funktsioon raamatukogus töötab, seega vaadake seda.

Soovitan: