Obsah:

3-drôtový HD44780 LCD za menej ako 1 dolár: 5 krokov
3-drôtový HD44780 LCD za menej ako 1 dolár: 5 krokov

Video: 3-drôtový HD44780 LCD za menej ako 1 dolár: 5 krokov

Video: 3-drôtový HD44780 LCD za menej ako 1 dolár: 5 krokov
Video: Автоматика STOUT: двухпозиционные комнатные регуляторы ST 295v2 и ST 295v3 2024, November
Anonim
3-drôtový HD44780 LCD za menej ako 1 dolár
3-drôtový HD44780 LCD za menej ako 1 dolár

V tomto návode sa naučíme, ako môžeme k zbernici SPI pripojiť LCD na základe čipovej sady HD44780 a riadiť ho iba 3 vodičmi za menej ako 1 dolár. Aj keď sa v tomto návode zameriam na alfanumerický displej HD44780, rovnaký princíp bude fungovať skoro rovnako ako na akomkoľvek inom LCD displeji, ktorý používa 8 -bitovú paralelnú dátovú zbernicu, a dá sa veľmi ľahko prispôsobiť displejom so 16 -bitovými dátovými zbernicami. Alfanumerické displeje na báze HD44780 (a kompatibilné) sú zvyčajne k dispozícii v konfiguráciách 16 x 2 (2 riadky pozostávajúce zo 16 znakov) a 20 x 4, ale dajú sa nájsť v mnohých ďalších formách. Najkomplikovanejším displejom by bol displej 40 x 4, tento druh displeja je špeciálny, pretože má 2 ovládače HD44780, jeden pre horné dva riadky a jeden pre spodné dva rady. Niektoré grafické displeje LCD majú aj dva ovládače. Displeje HD44780 LCD sú skvelé, sú veľmi lacné, čitateľné a práca s nimi je celkom jednoduchá. Majú však aj svoje nevýhody, tieto displeje po pripojení k Arduinu zaberajú veľa I/O pinov. V jednoduchých projektoch to nie je problém, ale keď sú projekty veľké, s veľkým počtom vstupov alebo výstupov alebo keď sú určité piny potrebné na veci, ako je analógové čítanie alebo PWM, skutočnosť, že tieto displeje LCD vyžadujú minimálne 6 kolíkov, sa môže stať problém. Tento problém však môžeme vyriešiť lacným a zaujímavým spôsobom.

Krok 1: Získanie komponentov

Na väčšinu komponentov, ktoré som použil v tomto projekte, som použil TaydaElectronics. Tieto diely môžete získať aj na ebay, ale kvôli jednoduchému použitiu vás prepojím s Taydou. Nákupný zoznam2 - balík 74HC595 DIP161 - generická hlavička - 2 piny. Toto sa nevyžaduje, použil som to ako spôsob trvalého vypnutia podsvietenia.3 - Keramický kondenzátor - kapacita 0,1 µF; napätie 50V1 - elektrolytický kondenzátor - kapacita 10 µF; napätie 35V1 - keramický kondenzátor - kapacita 220pF; napätie 50V1 - NPN -tranzistor - časť # PN2222A* 1 - 1k Ω Rezistor1 - potenciometer trimra - maximálny odpor 5kΩ1 - 470 Ω Rezistor* S tranzistorom NPN zostane podsvietenie vypnuté, kým ho softvér nezapne. Ak chcete mať podsvietenie predvolene zapnuté, použite tranzistor typu PNP. Bude však potrebné vykonať zmeny v kóde poskytnutej knižnice. Medzisúčet za tento zoznam je 0,744 USD. Hlavička špendlíka tiež nie je potrebná, takže môžete ušetriť 15 centov práve tam a medzisúčet bude 0,6 dolára.

Krok 2: Spoznajte svoj hardvér #1

Spoznajte svoj hardvér #1
Spoznajte svoj hardvér #1

Tu je štandardný kolík z LCD HD44780, ktorý je tiež veľmi podobný niektorým grafickým LCD. HD44780 môže pracovať v dvoch režimoch: 1. 4-bitový režim, kde každý bajt odoslaný na LCD pozostáva z 2 4-bitových častí. 2. 8-bitový režim, na ktorý sa zameriame. LCD má celkom 16 pinov, 3 riadiace piny a 8 dátových pinov: RS - Ovláda, či chceme na LCD poslať príkaz alebo údaje. Kde „vysoký“znamená údaje (znak) a „nízky“znamená príkazový bajt. R/W - Ovládač HD44780 vám umožňuje čítať z pamäte RAM. Keď je tento pin „vysoký“, môžeme čítať údaje z jeho dátových pinov. Keď je „nízka“, môžeme zapísať údaje na LCD. Napriek tomu, že v niektorých prípadoch môže byť užitočná možnosť čítať z LCD displeja, v tomto návode sa tým nebudeme zaoberať a tento pin jednoducho uzemníme, aby sme zaistili, že bude vždy v režime zápisu. E - E je kolík „Povoliť“„Tento kolík je prepnutý na„ vysoký “a potom na„ nízky “, aby sa údaje zapísali do pamäte RAM a prípadne sa zobrazili na obrazovke. DB0-7 - Toto sú dátové kolíky. V 4 -bitovom režime používame iba 4 vysoké bity DB4 -DB7 a v 8 -bitovom režime sú použité všetky. VSS - Toto je uzemňovací kolík. VCC - Tento napájací kolík, LCD napája napájanie 5 V Môžeme ho ľahko napájať z pinu Arduino + 5V. Hlas - Toto je kolík, ktorý vám umožňuje nastaviť úroveň kontrastu pre displej, vyžaduje potenciometer, normálne sa používa hrniec 5K Ohm. LED + - Toto je zdroj energie pre podsvietenie. Niektoré displeje LCD nie sú vybavené podsvietením a majú iba 14 pinov. Vo väčšine prípadov tento pin vyžaduje aj pripojenie +5V. LED- - Toto je podklad pre podsvietenie. ** Je dôležité skontrolovať technický list displeja alebo skontrolovať jeho dosku a skontrolovať odpor podsvietenia, väčšina displejov LCD ich má zabudované. -v takom prípade stačí iba pripojiť napájanie k LED+ a uzemnenie k LED-. Ale v prípade, že váš LCD displej nemá vstavaný odpor pre podsvietenie, je dôležité ho pridať, inak podsvietenie spotrebuje veľa energie a nakoniec sa vypáli. Vo väčšine prípadov je tento LCD displej pripojený k Arduinu pomocou 4-bitového režimu a uzemnenia kolíka R/W. Týmto spôsobom používame piny RS, E a DB4-DB7. Spustenie v 4-bitovom režime má ďalšiu malú nevýhodu v tom, že zápis údajov na obrazovku trvá dvakrát tak dlho, ako by to trvalo v 8-bitovej konfigurácii. LCD má „usadzovací“čas 37 mikrosekúnd, to znamená, že na odoslanie nasledujúceho príkazu alebo dátového bajtu na LCD displej musíte čakať 37 mikrosekúnd. Pretože v 4-bitovom režime musíme odoslať údaje dvakrát pre každý bajt, celkový čas potrebný na zapísanie jedného bajtu trvá až 74 mikrosekúnd. Je to stále dostatočne rýchle, ale chcel som, aby môj návrh priniesol najlepšie možné výsledky. Riešenie nášho problému s počtom použitých pinov spočíva v prevodníku sériového na paralelný …

Krok 3: Spoznajte svoj hardvér #2

Poznáte svoj hardvér #2
Poznáte svoj hardvér #2

Čo urobíme, je vytvoriť adaptér, ktorý odoberá sériový typ komunikácie vychádzajúcej z Arduina a prevádza údaje na paralelný výstup, ktorý je možné privádzať na náš LCD displej. Prichádza čip 74HC595. Jedná sa o veľmi lacný a ľahko ovládateľný posuvný register. V podstate to, čo robí, je vziať hodiny a dátové signály, ktoré používa na vyplnenie internej 8 -bitovej vyrovnávacej pamäte 8 poslednými bitmi, ktoré boli „taktované“. Akonáhle bude kolík „Západka“(ST_CP) vynesený „vysoko“, presunie tieto bity do svojich 8 výstupov. 595 má veľmi peknú vlastnosť, má sériový výstupný kolík (Q7 '), tento pin je možné použiť na prepojenie 2 alebo viacerých 595 dohromady a vytvoriť adaptéry sériového na paralelný, ktoré sú široké 16 alebo viac bitov. Na tento projekt budeme potrebovať 2 z týchto čipov. Schéma môže byť tiež upravená tak, aby fungovala s jediným 595 v 4-bitovom režime, ale na to sa tento návod nevzťahuje.

Krok 4: Všetko zapojte

Celé zapojenie
Celé zapojenie

Teraz, keď vieme, ako náš hardvér funguje, môžeme to všetko prepojiť. Na schéme vidíme 2 595 čipov za sebou zapojených do reťazca, aby vytvorili 16 -bitový paralelný výstup. Spodný čip je vlastne hlavný a horný je k nemu reťazovo zapojený. Vidíme tu, že spodok 595 poháňa dátové piny LCD v 8-bitovej konfigurácii, horný čip ovláda signál RS a podsvietenie zapnutím alebo vypnutím tranzistora. Pamätajte si *poznámku o podsvietení LCD na stránke Poznáte svoj hardvér č. 1, v prípade, že váš LCD displej nemá odpor podsvietenia, nezabudnite ho do svojho obvodu pridať. V mojom prípade sú LCD displeje už vybavené vstavaným odporom, takže som tento krok preskočil. Kontrast sa aplikuje cez 5K ohmový hrniec, jeden pin smeruje do GND, druhý do VCC a stierač do kolíka Vo na LCD. Kondenzátory používané na linkách LCD a 595 VCC sú oddeľovacie kondenzátory, slúžia na odstránenie rušenia. Nie sú nevyhnutné, ak pracujete na doske, ale mali by byť použité v prípade, že si vytvoríte vlastnú verziu tohto obvodu, ktorý sa bude používať mimo „laboratórnych podmienok“. R5 a C9 v tomto veľmi špecifickom poradí vytvárajú RC oneskorenie, ktoré zaisťuje, že údaje vo výstupoch 595 majú čas na stabilizáciu predtým, ako je aktivačný kolík na LCD displeji nastavený na „vysoký“a načíta údaje. Q7 'spodnej časti 595 prechádza do vstupu sériových dát 595 na hornej strane, čo vytvára reťazec 595 s a teda 16 -bitové rozhranie. Zapojenie do Arduina je jednoduché. Používame 3-vodičovú konfiguráciu pomocou pinov SPI spoločnosti Arduino. To umožňuje veľmi rýchle dátové prenosy, odoslanie 2 bajtov na LCD trvá zvyčajne asi 8 mikrosekúnd. Je to veľmi rýchle a v skutočnosti je to oveľa rýchlejšie, ako je čas potrebný na spracovanie údajov na displeji LCD, takže medzi každým zápisom je potrebné oneskorenie 30 mikrosekúnd. Jednou veľmi veľkou výhodou použitia SPI je, že piny D11 a D13 sú zdieľané s inými zariadeniami SPI. To znamená, že ak už máte ďalší komponent, ktorý používa SPI, napríklad akcelerometer, toto riešenie použije na aktivačný signál iba jeden pin navyše. Na ďalšej stránke uvidíme výsledok. Ruksak som postavil na perfboard a zatiaľ sa mi s ním veľmi dobre pracuje.

Krok 5: Knižnica výsledkov +

Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica
Výsledok + knižnica

„Obrázok má hodnotu tisíc slov“, s týmto tvrdením súhlasím, a preto uvádzam niekoľko obrázkov konečného výsledku tohto projektu. Toto sú obrázky dokončeného produktu, pohľad Fritzing PCB je rozloženie perfboardu, ktoré som použil na stavbu svojho batohu. Môže sa vám to hodiť, ak si chcete postaviť svoj vlastný. Páčilo sa mi to natoľko, že som navrhol DPS pomocou DipTrace a objednal som dávku 10 DPS. Budem potrebovať 2 alebo 3 jednotky pre seba, ale ostatné sprístupním za symbolickú cenu, keď ich dostanem. Takže ak by mal niekto záujem, dajte mi vedieť. * Upraviť: DPS sú tu a fungujú. Tu je kompletná galéria obrázkov k tomuto projektu vrátane skutočných PCB. https://imgur.com/a/mUkpw#0 Samozrejme, nezabudol som na najdôležitejšiu vec, na knižnicu, s ktorou sa má tento okruh používať. Je kompatibilný s knižnicou LiquidCrystal, ktorá je súčasťou Arduino IDE, takže deklarácie v hornej časti náčrtu môžete ľahko nahradiť a nemusíte na svojom náčrte nič meniť. Existuje aj príklad náčrtu, ktorý ukazuje, ako fungujú jednotlivé funkcie v knižnici, takže si ich pozrite.

Odporúča: