Obsah:

3vodičový HD44780 LCD za méně než 1 dolar: 5 kroků
3vodičový HD44780 LCD za méně než 1 dolar: 5 kroků

Video: 3vodičový HD44780 LCD za méně než 1 dolar: 5 kroků

Video: 3vodičový HD44780 LCD za méně než 1 dolar: 5 kroků
Video: Как снять и установить сушилку! 2024, Červenec
Anonim
3vodičový HD44780 LCD za méně než 1 dolar
3vodičový HD44780 LCD za méně než 1 dolar

V tomto návodu se naučíme, jak můžeme připojit LCD displej založený na čipové sadě HD44780 ke sběrnici SPI a řídit jej pouze 3 vodiči za méně než 1 $. Ačkoli se v tomto tutoriálu zaměřím na alfanumerický displej HD44780, stejný princip bude fungovat téměř stejně pro jakýkoli jiný LCD, který používá 8bitovou paralelní datovou sběrnici, a lze ji velmi snadno přizpůsobit tak, aby vyhovoval displejům se 16bitovými datovými sběrnicemi. Alfanumerické displeje na bázi HD44780 (a kompatibilní) jsou obvykle k dispozici v konfiguracích 16x2 (2 řádky skládající se ze 16 znaků) a 20x4, ale lze je nalézt v mnoha dalších formách. Nejkomplikovanějším displejem by byl displej 40x4, tento druh displeje je speciální, protože má 2 ovladače HD44780, jeden pro horní dvě řady a jeden pro spodní dvě řady. Některé grafické LCD mají také dva ovladače. Displeje HD44780 jsou skvělé, jsou velmi levné, čitelné a snadno se s nimi pracuje. Ale mají také některé nevýhody, tyto displeje po připojení k Arduinu zabírají mnoho I/O pinů. V jednoduchých projektech to není problém, ale když jsou projekty velké, se spoustou IO nebo tam, kde jsou určité piny potřebné pro věci, jako je analogové čtení nebo PWM, skutečnost, že tyto LCD displeje vyžadují minimálně 6 pinů, se může stát problém. Tento problém ale můžeme vyřešit levným a zajímavým způsobem.

Krok 1: Získání komponent

U většiny komponent, které jsem použil v tomto projektu, jsem použil TaydaElectronics. Tyto díly můžete získat také na ebay, ale pro snadné použití vás propojím s Tayda. Shopping List2 - 74HC595 balíček DIP161 - Generic male header - 2 pins. To není nutné, použil jsem to jako způsob trvalého vypnutí podsvícení. 3 - Keramický kondenzátor - kapacita 0,1 µF; napětí 50V1 - elektrolytický kondenzátor - kapacita 10 µF; napětí 35V1 - keramický kondenzátor - kapacita 220pF; napětí 50V1 - NPN -tranzistor - část # PN2222A* 1 - 1k Ω Rezistor1 - Trimmer potenciometru - maximální odpor 5kΩ1 - 470 Ω Rezistor* S tranzistorem NPN zůstane podsvícení vypnuté, dokud není softwarově zapnuto. Pokud chcete mít podsvícení ve výchozím nastavení zapnuté, použijte tranzistor typu PNP. Bude však nutné provést změny v kódu poskytnuté knihovny. Mezisoučet pro tento seznam je 0,744 $. Záhlaví špendlíku také není vyžadováno, takže můžete ušetřit 15 centů a mezisoučet bude 0,6 $.

Krok 2: Poznejte svůj hardware #1

Poznejte svůj hardware #1
Poznejte svůj hardware #1

Zde je standardní pin z HD44780 LCD, je také velmi podobný některým grafickým LCD. HD44780 může pracovat ve dvou režimech: 1. 4bitový režim, kde každý bajt odeslaný na LCD sestává ze 2 4bitových částí. 2. 8bitový režim, na který se zaměříme. LCD má celkem 16 pinů, 3 ovládací piny a 8 datových pinů: RS - Řídí, zda chceme na LCD poslat příkaz nebo data. Kde 'high' znamená data (znak) a 'low' znamená příkazový bajt. R/W - Řadič HD44780 vám umožňuje číst z jeho RAM. Když je tento pin „vysoký“, můžeme číst data z jeho datových pinů. Když je 'nízká', můžeme zapisovat data na LCD. Ačkoli v některých případech může být užitečná možnost číst z LCD, v tomto tutoriálu se tím nebudeme zabývat a tento pin jednoduše uzemníme, abychom zajistili, že bude vždy v režimu zápisu. E - E je kolík „Povolit“Tento pin je přepnut na „vysoký“a poté „nízký“, aby se data zapsala do jeho RAM a případně se zobrazila na obrazovce. DB0-7 - Toto jsou datové piny. Ve 4bitovém režimu používáme pouze 4 vysoké bity DB4 -DB7 a v 8bitovém režimu jsou využívány všechny. VSS - Toto je zemnící kolík. VCC - Tento napájecí kolík, LCD vybije 5V napájecí zdroj, můžeme jej snadno napájet z pinu Arduino + 5V. Hlas - Toto je kolík, který vám umožňuje nastavit úroveň kontrastu pro displej, vyžaduje potenciometr, normálně se používá potenciometr 5K Ohm. LED + - Toto je zdroj energie pro podsvícení. Některé displeje LCD nemají podsvícení a mají pouze 14 pinů. Ve většině případů tento pin také vyžaduje připojení +5V. LED- - Toto je základna pro podsvícení. ** Je důležité zkontrolovat datový list displeje nebo zkontrolovat jeho desku plošných spojů, abyste zjistili odpor podsvícení, většina LCD displejů je postaví -v takovém případě stačí použít napájení LED+ a uzemnění LED-. Ale v případě, že váš LCD nemá vestavěný odpor pro podsvícení, je důležité jej přidat, jinak bude podsvícení spotřebovávat spoustu energie a nakonec se spálí. Ve většině případů je tento LCD připojen k Arduinu pomocí 4bitového režimu a uzemněním R/W pinu. Tímto způsobem používáme piny RS, E a DB4-DB7. Běh ve 4bitovém režimu má další malou nevýhodu v tom, že zápis dat na obrazovku trvá dvakrát déle než v 8bitové konfiguraci. Displej LCD má „ustálený“čas 37 mikrosekund, to znamená, že na odeslání dalšího příkazu nebo datového bajtu na LCD displej musíte počkat 37 mikrosekund. Protože ve 4bitovém režimu musíme odesílat data dvakrát pro každý bajt, celkový čas potřebný k zápisu jednoho bajtu se prodlouží až na 74 mikrosekund. Je to stále dostatečně rychlé, ale chtěl jsem, aby můj design přinesl co nejlepší výsledky. Řešení našeho problému s počtem použitých pinů spočívá v převodníku sériového na paralelní…

Krok 3: Poznejte svůj hardware #2

Poznejte svůj hardware #2
Poznejte svůj hardware #2

Co uděláme, je vytvořit adaptér, který vezme sériový typ komunikace vycházející z Arduina a převede data na paralelní výstup, který lze přenést na náš LCD. Přichází čip 74HC595. Jedná se o velmi levný a snadno ovladatelný posuvný registr. V podstatě to, co dělá, je vzít hodiny a datové signály, které používá k vyplnění interního 8bitového bufferu s 8 posledními bity, které byly „taktovány“. Jakmile je kolík „Západka“(ST_CP) vytažen „vysoko“, přesune tyto bity do svých 8 výstupů. 595 má velmi pěknou funkci, má pin pro sériový výstup dat (Q7 '), tento pin lze použít k propojení dvou nebo více 595 dohromady k vytvoření adaptérů Serial to Parallel, které jsou 16 nebo více bitů široké. Pro tento projekt budeme potřebovat 2 z těchto čipů. Schéma lze také upravit tak, aby fungovalo s jediným 595 ve 4bitovém režimu, ale tento tutoriál to nezahrnuje.

Krok 4: Zapojte vše

Zapojení vše
Zapojení vše

Nyní, když víme, jak funguje náš hardware, můžeme vše propojit. Ve schématu vidíme 2 595 čipů propojených dohromady za vzniku 16bitového paralelního výstupu. Spodní čip je ve skutečnosti hlavní a horní je k němu připojen sedmikráskou. Zde vidíme, že spodní 595 pohání datové piny LCD v 8bitové konfiguraci, horní čip ovládá signál RS a podsvícení zapínáním nebo vypínáním tranzistoru. Pamatujte si *poznámku o podsvícení LCD na stránce Know your hardware #1, v případě, že váš LCD nemá odpor podsvícení, nezapomeňte jej přidat do svého obvodu. V mém případě jsou LCD displeje již vybaveny vestavěným odporem, takže jsem tento krok přeskočil. Kontrast je aplikován přes 5K Ohm pot, jeden pin jde do GND, druhý jde do VCC a stěrač do Vo pin na LCD. Kondenzátory používané na linkách VCC LCD a 595 jsou oddělovací kondenzátory, jsou tam, aby se zbavily rušení. Pokud pracujete na prkénku, nejsou nutností, ale měly by být použity v případě, že si vytvoříte vlastní verzi tohoto obvodu, který bude použit mimo „laboratorní podmínky“. R5 a C9 v tomto velmi specifickém pořadí vytvářejí RC zpoždění, které zajišťuje, že data ve výstupech 595 mají čas se stabilizovat, než je aktivační kolík na LCD nastaven na 'vysoký' a načte data. Q7 've spodní části 595 přechází do vstupu sériových dat 595 nahoře, což vytváří řetěz 595 s a tedy 16bitové rozhraní. Zapojení až k Arduinu je snadné. Používáme 3vodičovou konfiguraci pomocí pinů SPI Arduina. To umožňuje velmi rychlé datové přenosy, odeslání 2 bytů na LCD obvykle trvá přibližně 8 mikrosekund. To je velmi rychlé a ve skutečnosti je to mnohem rychlejší než doba, kterou LCD potřebuje ke zpracování dat, takže mezi každým zápisem je třeba zpoždění 30 mikrosekund. Jednou velmi velkou výhodou používání SPI je to, že piny D11 a D13 jsou sdíleny s jinými zařízeními SPI. To znamená, že pokud již máte další komponentu, která používá SPI, například akcelerometr, toto řešení použije pouze jeden pin navíc pro signál povolení. Na další stránce uvidíme výsledek. Postavil jsem batoh na perfboard a zatím mi to funguje velmi dobře.

Krok 5: Výsledek + knihovna

Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna
Výsledek + knihovna

„Obrázek stojí za tisíc slov“, s tímto tvrzením souhlasím, proto zde uvádíme několik obrázků konečného výsledku tohoto projektu. Toto jsou obrázky dokončeného produktu, pohled Fritzing PCB je rozložení perfboardu, které jsem použil ke stavbě svého batohu. Může se vám to hodit, pokud si chcete postavit vlastní. Líbilo se mi to natolik, že jsem pomocí DipTrace navrhl desku plošných spojů a objednal dávku 10 desek plošných spojů. Budu pro sebe potřebovat 2 nebo 3 jednotky, ale zbytek zpřístupním za symbolickou cenu, až je obdržím. Pokud tedy má někdo zájem, dejte mi prosím vědět. * Upravit: PCB jsou zde a fungují. Zde je kompletní obrazová galerie tohoto projektu, včetně skutečných desek plošných spojů. https://imgur.com/a/mUkpw#0 Samozřejmě jsem nezapomněl na to nejdůležitější, knihovnu, se kterou tento okruh používám. Je kompatibilní s knihovnou LiquidCrystal, která je součástí Arduino IDE, takže můžete snadno nahradit deklarace v horní části náčrtu a nemusíte na skici nic jiného měnit. K dispozici je také příklad skici, který ukazuje, jak fungují jednotlivé funkce v knihovně, takže se na to podívejte.

Doporučuje: