Turinys:

3 laidų HD44780 skystųjų kristalų ekranas, skirtas mažiau nei 1 doleriui: 5 žingsniai
3 laidų HD44780 skystųjų kristalų ekranas, skirtas mažiau nei 1 doleriui: 5 žingsniai

Video: 3 laidų HD44780 skystųjų kristalų ekranas, skirtas mažiau nei 1 doleriui: 5 žingsniai

Video: 3 laidų HD44780 skystųjų kristalų ekranas, skirtas mažiau nei 1 doleriui: 5 žingsniai
Video: Įvadas į LCD2004 skystųjų kristalų ekraną su „Arduino“ I2C moduliu 2024, Lapkritis
Anonim
3 laidų HD44780 skystųjų kristalų ekranas už mažiau nei 1 dolerį
3 laidų HD44780 skystųjų kristalų ekranas už mažiau nei 1 dolerį

Šioje instrukcijoje sužinosime, kaip galime prijungti LCD, pagrįstą HD44780 mikroschemų rinkiniu, prie SPI magistralės ir valdyti tik 3 laidais už mažiau nei 1 USD. Nors šioje pamokoje daugiausia dėmesio skirsiu HD44780 raidiniam ir skaitmeniniam ekranui, tas pats principas veiks beveik vienodai bet kuriam kitam skystųjų kristalų ekranui, kuriame naudojama 8 bitų lygiagreti duomenų magistralė, ir jis gali būti labai lengvai pritaikomas, kad tiktų ekranams su 16 bitų duomenų magistralėmis. HD44780 (ir suderinami) raidiniai ir skaitmeniniai ekranai paprastai yra 16x2 (2 eilutės, susidedančios iš 16 simbolių) ir 20x4 konfigūracijų, tačiau jų galima rasti daugeliu kitų formų. Pats sudėtingiausias ekranas būtų 40x4 ekranas, toks ekranas yra ypatingas, nes turi 2 HD44780 valdiklius, vieną viršutinei dviem eilėms ir vieną apatinėms dviem eilėms. Kai kuriuose grafiniuose LCD ekranuose taip pat yra du valdikliai. HD44780 LCD yra puikūs, jie yra labai pigūs, lengvai skaitomi ir su jais lengva dirbti. Tačiau jie taip pat turi trūkumų: šie ekranai užima daug įvesties/išvesties kaiščių, kai jie prijungti prie „Arduino“. Paprastiems projektams tai nekelia rūpesčių, tačiau kai projektai tampa dideli, turi daug IO arba kai reikalingi tam tikri kaiščiai, pvz., Analoginis skaitymas ar PWM, tai, kad šiems LCD ekranams reikia mažiausiai 6 kaiščių, problema. Tačiau šią problemą galime išspręsti pigiai ir įdomiai.

1 žingsnis: Komponentų gavimas

Daugumai šiame projekte naudojamų komponentų naudojau „TaydaElectronics“. Šias dalis taip pat galite įsigyti „ebay“, tačiau, kad būtų lengviau naudoti, aš susieju jus su „Tayda“. Tai nėra būtina, aš tai naudoju kaip būdą visam laikui išjungti foninį apšvietimą. 3 - Keraminis kondensatorius - talpa 0,1 µF; įtampa 50V1 - elektrolitinis kondensatorius - talpa 10µF; įtampa 35V1 - keraminis kondensatorius - talpa 220pF; įtampa 50V1 - NPN -tranzistorius - dalis # PN2222A* 1 - 1k Ω Rezistorius1 - žoliapjovės potenciometras - maksimali varža 5kΩ1 - 470 Ω Rezistorius* Naudojant NPN tranzistorių, foninis apšvietimas neužsidegs, kol neįjungs programinė įranga. Jei norite, kad foninis apšvietimas būtų įjungtas pagal numatytuosius nustatymus, naudokite PNP tipo tranzistorių. Vis dėlto teks pakeisti pateiktos bibliotekos kodą. Bendra šio sąrašo suma yra 0,744 USD. Smeigtuko antraštė taip pat nereikalinga, todėl ten galite sutaupyti 15 centų, o tarpinė suma bus 0,6 USD.

2 žingsnis: pažinkite savo aparatūrą #1

Žinokite savo aparatūrą #1
Žinokite savo aparatūrą #1

Čia yra standartinis kaištis iš HD44780 LCD, jis taip pat labai panašus į kai kuriuos grafinius LCD. HD44780 gali veikti dviem režimais: 1. 4 bitų režimu, kai kiekvienas į LCD siunčiamas baitas susideda iš 2 4 bitų dalių. 2. 8 bitų režimas, į kurį mes sutelksime dėmesį. Skystųjų kristalų ekrane iš viso yra 16 kaiščių, 3 valdymo kaiščiai ir 8 duomenų smeigtukai: RS - valdo, ar norime į LCD siųsti komandą ar duomenis. Kur „didelis“reiškia duomenis (simbolis), o „žemas“reiškia komandinį baitą. R/W - HD44780 valdiklis leidžia skaityti iš RAM. Kai šis kaištis yra „aukštas“, galime nuskaityti duomenis iš jo duomenų kaiščių. Kai jis yra „mažas“, galime įrašyti duomenis į LCD. Nors parinktis skaityti iš LCD gali būti naudinga kai kuriais atvejais, šioje pamokoje mes jos neperžiūrėsime, o paprasčiausiai įžeminsime šį kaištį, kad užtikrintume, jog jis visada yra rašymo režime. E - E yra įjungimo kaištis, šis kaištis yra perjungtas į „aukštas“, tada į „žemą“, kad duomenys būtų įrašyti į RAM ir galiausiai būtų rodomi ekrane. DB0-7 - tai yra duomenų kaiščiai. 4 bitų režimu mes naudojame tik 4 aukštų bitų DB4 -DB7, o 8 bitų režimu visi jie naudojami. VSS - tai įžeminimo kaištis. VCC - tai maitinimo kaištis, LCD veikia iš 5 V maitinimo šaltinio, mes galime lengvai tiekti energiją iš „Arduino“+ 5 V kaiščio. Vo - tai yra kaištis, leidžiantis nustatyti ekrano kontrasto lygį, tam reikalingas potenciometras, paprastai naudojamas 5 K omų indas. LED + - Tai yra galinio apšvietimo energijos šaltinis. Kai kuriuose LCD ekranuose nėra foninio apšvietimo ir tik 14 kaiščių. Daugeliu atvejų šiam kaiščiui taip pat reikalingas +5 V ryšys. Šviesos diodas - tai yra foninio apšvietimo pagrindas. ** Svarbu patikrinti ekranų duomenų lapą arba apžiūrėti jo PCB, kad patikrintumėte, ar nėra apšvietimo rezistoriaus. Daugumoje LCD jie bus pastatyti -tokiu atveju jums tereikia maitinti LED+ ir įžeminti-. Tačiau tuo atveju, jei jūsų LCD ekrane nėra įmontuoto foninio apšvietimo rezistoriaus, svarbu jį pridėti, kitaip foninis apšvietimas sunaudos daug energijos ir ilgainiui sudegs. Daugeliu atvejų šis LCD ekranas yra prijungtas prie „Arduino“naudojant jį 4 bitų režimu ir įžeminant R/W kaištį. Tokiu būdu mes naudojame kaiščius RS, E ir DB4-DB7. Veikimas 4 bitų režimu turi dar vieną nedidelį trūkumą, nes duomenų įrašymas į ekraną užtrunka dvigubai ilgiau nei 8 bitų konfigūracija. Skystųjų kristalų ekrano „nusistovėjimo“laikas yra 37 mikrosekundės, tai reiškia, kad prieš nusiųsdami kitą komandą ar duomenų baitą į LCD turite palaukti 37 mikrosekundžių. Kadangi 4 bitų režimu turime du kartus siųsti duomenis apie kiekvieną baitą, bendras laikas, kurį reikia parašyti vienam baitui, išauga iki 74 mikrosekundžių. Tai vis dar pakankamai greitai, tačiau norėjau, kad mano dizainas duotų kuo geresnių rezultatų. Mūsų problemos, susijusios su naudojamų kaiščių skaičiumi, sprendimas yra serijinis į lygiagretųjį keitiklį …

3 žingsnis: pažinkite savo aparatūrą #2

Žinokite savo aparatūrą #2
Žinokite savo aparatūrą #2

Ką mes padarysime, tai sukursime adapterį, kuris iš „Arduino“išeina iš serijinio ryšio ir konvertuoja duomenis į lygiagrečią išvestį, kurią galima tiekti į mūsų LCD. Įeina 74HC595 lustas. Tai labai pigus ir paprastai valdomas pamainų registras. Iš esmės tai yra laikrodis ir duomenų signalai, kuriuos jis naudoja vidiniam 8 bitų buferiui užpildyti 8 paskutiniais „užraktais“bitais. Kai „Latch“(ST_CP) kaištis bus „aukštas“, jis perkelia šiuos bitus į 8 išėjimus. „595“turi labai gražią funkciją, turi serijinių duomenų išvesties kaištį (Q7 '), šis kaištis gali būti naudojamas 2 ar daugiau 595 grandinių sujungimui, kad būtų suformuoti 16 ar daugiau bitų pločio serijiniai lygiagrečiai adapteriai. Šiam projektui mums reikės 2 iš šių lustų. Schema taip pat gali būti pakeista, kad ji veiktų su vienu 595 4 bitų režimu, tačiau ši pamoka to neapims.

4 žingsnis: prijunkite viską

Laidai viską
Laidai viską

Dabar, kai žinome, kaip veikia mūsų aparatinė įranga, galime viską prijungti. Schemoje matome 2 595 mikroschemas, sujungtas grandine, kad sudarytų 16 bitų lygiagrečią išvestį. Apatinė mikroschema iš tikrųjų yra pagrindinė, o viršutinė - prie jos pririšta. Čia matome, kad apatinis 595 valdo LCD duomenų kaiščius 8 bitų konfigūracijoje, o viršutinė mikroschema valdo RS signalą ir apšvietimą, įjungdama arba išjungdama tranzistorių. Prisiminkite *pastabą apie skystųjų kristalų ekrano apšvietimą puslapyje Žinokite savo aparatinę įrangą Nr. 1, jei jūsų skystųjų kristalų ekranas neturi apšvietimo rezistoriaus, nepamirškite pridėti jo prie savo grandinės. Mano atveju, LCD ekranai jau buvo su įmontuotu rezistoriumi, todėl praleidau šį žingsnį. Kontrastas taikomas per 5K omo puodą, vienas kaištis eina į GND, antrasis - į VCC, o valytuvas - į Vo kaištį LCD ekrane. Kondensatoriai, naudojami LCD ir 595 VCC linijose, yra atsiejami kondensatoriai, jie yra skirti atsikratyti trukdžių. Jie nėra privalomi, jei dirbate su duonos lenta, tačiau turėtų būti naudojami tuo atveju, jei sukuriate savo šios grandinės versiją, kuri bus naudojama ne „laboratorijos sąlygomis“. R5 ir C9 ta labai konkrečia tvarka sukuria RC vėlavimą, kuris užtikrina, kad 595 išvesties duomenys turi laiko stabilizuotis, kol LCD įjungimo kaištis bus nustatytas kaip „aukštas“ir nuskaitomi duomenys. Apatinio 595 Q7 'patenka į viršuje esančio 595 serijinių duomenų įvestį, todėl sukuriama 595 sekundžių grandinė ir 16 bitų sąsaja. Prijungti prie „Arduino“lengva. Mes naudojame 3 laidų konfigūraciją, naudodami „Arduino“SPI kaiščius. Tai leidžia labai greitai perduoti duomenis, 2 baitų siuntimas į LCD paprastai trunka apie 8 mikrosekundes. Tai labai greita ir iš tikrųjų daug greičiau nei laikas, per kurį LCD apdoroja duomenis, todėl tarp kiekvieno įrašymo reikia atidėti 30 mikrosekundžių. Vienas labai didelis SPI naudojimo privalumas yra tas, kad kaiščiai D11 ir D13 yra bendrinami su kitais SPI įrenginiais. Tai reiškia, kad jei jau turite kitą komponentą, kuris naudoja SPI, pvz., Akselerometrą, šis sprendimas įjungimo signalui naudos tik vieną papildomą kaištį. Kitame puslapyje pamatysime rezultatą. Aš sukūriau kuprinę ant parketlentės ir iki šiol ji man labai tinka.

5 veiksmas: rezultatas + biblioteka

Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka
Rezultatas + biblioteka

„Paveikslas vertas tūkstančio žodžių“, aš sutinku su šiuo teiginiu, todėl čia yra keletas šio projekto galutinio rezultato vaizdų. Tai yra baigto produkto vaizdai, „Fritzing PCB“vaizdas yra perforatoriaus išdėstymas, kurį naudoju kurdamas savo kuprinę. Tai gali būti naudinga, jei norite sukurti savo. Man tai labai patiko, kad sukūriau PCB naudodami „DipTrace“ir užsisakiau 10 PCB partiją. Man reikės 2 ar 3 vienetų, bet likusias suteiksiu už simbolinę kainą, kai jas gausiu. Taigi, jei kam nors įdomu, praneškite man. * Redaguoti: PCB yra čia ir jie veikia. Čia yra visa šio projekto nuotraukų galerija, įskaitant faktines PCB. https://imgur.com/a/mUkpw#0 Žinoma, nepamiršau svarbiausio dalyko - bibliotekos, su kuria galima naudoti šią grandinę. Jis suderinamas su „LiquidCrystal“biblioteka, įtraukta į „Arduino IDE“, todėl galite lengvai pakeisti eskizo viršuje esančias deklaracijas ir nieko kito eskizo keisti nereikia. Taip pat yra eskizo pavyzdys, parodantis, kaip veikia kiekviena bibliotekos funkcija, todėl patikrinkite.

Rekomenduojamas: