Napsali jste v programu pro Arduino něco jako:
lcd.print („Ahoj, svět!“)
Deska poslušně provedla příkaz a text se objevil na displeji. Jak ale jedno zařízení „řeklo“ něco a druhé „slyšelo“ a „pochopilo“? Je to jako požádat umělce, aby vytvořil váš portrét, ale nechápu, jak na tom pracuje. Autor Instructsbles, přezdívaný indoorgeek, přišel s podstavcem, který vám pomůže cítit se v botách „žijícího Arduina“ a řídit HD44780 na nízké úrovni. V jedné ze soutěží to domácí vyhrál první cenu.
Potřebuje trochu detailu: jakýkoli modul (LCD, VLI nebo PMOLED) na ovladači HD44780 nebo kompatibilní, osm přepínačů, tlačítko bez aretace, posuvný přepínač, 1 kΩ variabilní rezistor, deska s konektorem Micro USB a pouzdro.
Z toho, co není na obrázku znázorněno, potřebujeme: odpor 10 kOhm a kondenzátor 100 μF a nejméně 6,3 V.
Indoorgeek sám vzal modul nejběžnějšího typu: LCD, 16 znaků na řádek, dva řádky. Ale ostatní moduly mají stejný princip ovládání, pouze pinout se může mírně lišit, takže se nemusíte příliš líný na to, abyste se podívali do datového listu.
Ve všech případech odpovídá připojení ke společnému vodiči logické nule a připojení k napájecí sběrnici +5 V odpovídá jednotě.
Kolíky 1 a 2 slouží k napájení modulu. První z nich je vždy připojen ke společnému vodiči a druhý je vždy s napájecí sběrnicí.
Pin 3 slouží k úpravě kontrastu. Při přivedení napětí od 0 do 5 V vůči běžnému drátu se kontrast změní z nuly na maximum.
Pin 4 umožňuje zvolit mezi datovým registrem a registrem instrukcí. Dáme logickou nulu - je vybrán registr instrukcí (jinými slovy příkazy), jednotka je datový registr.
Pokyny mohou být například následující: inicializujte ovladač, vyčistěte obrazovku atd. A data obsahují znaky, které se zobrazí na indikátoru.
Naopak můžete číst data z nějakého registru. Chcete-li to provést, musíte použít vysokou úroveň na pin 5 a displej přejde do informačního výstupního režimu zpět do vašeho mikrokontroléru. Chcete-li začít znovu zapisovat data z mikrokontroléru do kontroléru zobrazení, musíte odeslat pin 5 nízké úrovně 5. Poměrně často se režim čtení nepoužívá vůbec, například v tomto domácím produktu.
Podle pinů 7 až 14 může displej vyměňovat příkazy a data v 8bitovém kódování. Nejnižší úroveň odpovídá kolíku 7, nejvyšší - 14.
Pin 6 je potřebný pro hradlování.Pomalu nastavujete data na pinech 7 až 14, ale zatímco pin 6 je logická nula, modul na to vůbec nereaguje. Poté, aniž byste změnili stav pinů 7 až 14, pošlete na pin 7 vysokou krátkodobou impuls - a data budou přenesena.
Závěry 15 a 16 - výživa podsvícení, pokud existuje. 15 - plus, 16 - minus.
K dispozici pro indorgeek, případ se ukázal být o velikosti 200x150x40 milimetrů. Tento případ byl převzat z jiného, rozebraného doma vyrobeného a v něm již byly díry. Master je použil v novém designu na maximum, aby udělal co nejméně dalších.
Nastavil osm přepínačů pro změnu stavu datových / příkazových sběrnicových vedení, přepínač pro výběr mezi registry (viz výše), tlačítko pro hradlování, variabilní rezistor pro plynulé nastavení kontrastu.
Stoupací deska s konektorem Micro USB má pohodlné kolíky, které usnadňují připojení vodičů. Zde jsou potřeba pouze dvě: +5 V a společný vodič. Pokud takovou desku nemáte, a zdířka Micro USB pájená odněkud se zdá být pro pájení nepohodlná, stačí vzít kabel s konektorem USB. V každém případě opakujme po veliteli a pájíme takové schéma:
Kontakty přepínačů odpovídající horní poloze, vzájemně propojené a vložily na ně plus. To samé udělal s kontakty přepínačů odpovídajících spodní poloze, pouze jim dal mínus. Pohyblivé kontakty přepínacích spínačů spojil nejen jeden s druhým, ale se závěry příkazů datové sběrnice / modulu v souladu s „váhou“ obou (D0 - pin 7 - nízký řád, D7 - pin 14 - vysoký). Pokud by páni v dětství nekousli zuřivé pull-up rezistory, byl by schopen použít jednodušší přepínače - ne přepínání, ale normálně otevřené.
Ale stejné odpory, ale v potlačovacích obvodech kontaktních odrazů, se nikdy neurazil. Zde je tento obvod potřebný, aby řadič displeje nestlačil několikrát tlačítko stroboskopu. Ostatní ovládací prvky nevyžadují potlačení chvění, protože pokud nejsou přijímány pulzy stroboskopu, mohou se data na zbývajících řádcích mnohokrát měnit podle potřeby. Hlavní věcí je nedotýkat se přepínačů a spínače se stisknutým tlačítkem. Takže, s odporem 10 kOhm, hlavní vytáhl kolík 6 na společný drát a tlačítkem na plus sběrnici. Protože odpor tlačítka je mnohem nižší, při stisknutí se „zatáhne“. Když je uvolněn, jeho odpor se blíží nekonečnu a odpor jej již „tahá“. Kondenzátor 100 uF (na obrázku není zobrazen), připojený plusem ke plusové sběrnici a mínusem k rezistoru a šestému výstupu displeje, potlačí chvění. Je samozřejmě lepší potlačit chvění pomocí tlačítka a RS-spouště.
Na posuvném spínači jsou výstupy pevných kontaktů spojeny stejným způsobem jako u přepínačů a pohyblivých spínačů - na výstup modulu 6. Zde vývojář opět projevil strach z pull-up rezistorů. Tento přepínač je potřebný pro výběr mezi režimy přenosu příkazů (nula) a dat (jednotka).
Indoorgeek připojil výstup variabilního rezistoru odpovídající minimálnímu kontrastu s běžným drátem, naproti kladné sběrnici a prostřední (motor) ke třetímu výstupu modulu.
Závěry 1, 5 a 16 (v tomto pořadí - mínus výkon, zápis / čtení a mínus podsvícení) master připojený ke společnému vodiči, takže režim záznamu je vybírán nepřetržitě. Závěry 2 a 15 (respektive plus napájení a plus podsvícení), připojil se k pětivoltové sběrnici. Do zobrazovacího modulu je integrován odpor omezující proud prostřednictvím LED podsvícení.
Pokud jste to všechno shromáždili, nyní před vámi - něco takového:
Indoorgeek na předním panelu je navržen tak, abyste mohli dělat to samé:
Můžete se naučit příkazy řadiče HD44780 a jak je ovládat datový list. Můžete si také prohlédnout hotové příklady skriptů pro simulátor. Pro začátečníky budeme opakovat kroky za indoorgeek pro zobrazení HELLO!
Zapněte zařízení. Podsvícení se rozsvítí. Posuňte posuvný přepínač do polohy odpovídající logické nule, takže se indikátor přepne do režimu přijímání příkazů. Pomocí přepínačů nastavte binární číslo 00001111 na příkazové / datové sběrnici a krátce stiskněte tlačítko stroboskopu. Tento příkaz znamená: zapnout displej, zviditelnit kurzor a blikat, což se stane. Stejným způsobem vydáme příkaz 00110000, což znamená: přijímat data v 8bitovém formátu, vybrat první řádek a písmo 5 x 8 pixelů. Vizuálně se nic nestane, ale někde uvnitř kontroléru displeje budou provedeny potřebné přepínače. Můžete přenášet data. Posuneme posuvný spínač do polohy odpovídající logické jednotce, nyní je indikátorový modul připraven je přijmout. Nastavte ASCII kód písmene H, tj. 01001000, přepněte přepínače na sběrnici a stiskněte tlačítko stroboskopu. Na obrazovce se objeví odpovídající písmeno a kurzor se posune o jednu pozici doprava. Obdobně projdeme písmena E, L, L, O a vykřičník: 01000101, 01001100, 01001100, 01001111, 00100001. Pokud jste udělali to samé, nezáleží na stánku, který jste právě sestavili, nebo na simulátoru, uvidíte nápis HELLO ! Takhle:
Takto jste pochopili, kolik toho Arduino dělá, aby bylo možné zobrazit jen několik znaků. A existují týmy, které provádějí složitější akce, zvládly které, můžete získat zajímavé efekty, definovat nestandardní znaky ...
Vaše exkurze do „kuchyně“ knihovny Arduino LiquidCrystal teprve začíná a nechte se bavit!