• Připojení displeje Arduino. Připojení textové obrazovky k Arduinu

    Tento návod ukazuje, jak se připojit k Arduinu a používat LCD obrazovky na 16x2 a 20x4.

    Tyto displeje mají vestavěné LED podsvícení s nízkou spotřebou a fungují od +5 V. Pro připojení těchto LCD displejů potřebujete 6 pinů. Na svém Arduinu můžete použít jakékoli piny!

    Instrukce je napsána na základě Adafruit LCD obrazovek - blue&white 16x2, RGB 16x2 LCD, and blue&white 20x4, RGB 20x4. Pokud používáte LCD obrazovku jiného výrobce, není 100% záruka, že bude fungovat (i když v 99% případů bude fungovat).

    Charakter vs grafický LCD – Jaký je rozdíl?

    Existuje obrovské množství různých LCD obrazovek. V tomto článku se podíváme na znakové LCD. Podobné obrazovky- skvělá volba pro zobrazení textu. Můžete si také přizpůsobit zobrazení ikon, ale velikost těchto ikon by neměla přesáhnout 7 pixelů (velmi malé!).

    Níže uvedená fotografie ukazuje příklad 16znakového LCD monitoru se dvěma řádky:

    Pokud se podíváte pozorně, uvidíte malé obdélníky, kde jsou zobrazeny symboly. Každý obdélník je samostatná mřížka pixelů. Pro srovnání je níže zobrazen grafický LCD displej:

    Grafický displej z tekutých krystalů má jednu velkou mřížku pixelů (in tento příklad- 128x64). Dá se na něm zobrazit text, ale lepší je zobrazení obrázků. Grafické LCD jsou obvykle větší, mají více kolíků pro připojení a jejich použití je poněkud obtížnější než textové LCD.

    V tomto článku se budeme zabývat pouze textovými/znakovými obrazovkami!

    Různé modely LCD obrazovek

    Poté, co jsme omezili typ dotyčných obrazovek, pojďme se podívat, jaké to jsou.


    Přestože se používají pouze k zobrazení textu, existují různé modely a tvarové faktory: v levém horním rohu obrazovky LCD 20x4 s bílým textem na modrém pozadí, v pravém horním rohu - 16x4 s černým textem na zeleném pozadí, v levém dolním rohu - 16x2 s bílým textem na modrém pozadí a 16x1 s černým textem na šedém pozadí.

    Dobrou zprávou je, že všechny tyto obrazovky jsou vzájemně zaměnitelné. Pokud jste si jeden z nich upravili, můžete jej nahradit jiným modelem. Náčrt Arduina bude muset být mírně upraven, ale kabeláž je stejná!


    V této části používáme LCD obrazovky s jednou kolejnicí a 16 piny pro připojení (viz foto výše). K dispozici je také LCD se 2 lištami s 8 piny pro připojení (na obrázku níže).


    Připojení druhého modelu k nepájené desce plošných spojů je obtížnější.

    Připojení znakové LCD obrazovky k Arduinu

    Instalace kontaktních lišt


    Kromě LCD obrazovky budete potřebovat další páskování. Nejprve potenciometr 10 kΩ. Pomocí potenciometru nastavíme kontrast displeje. Každá LCD obrazovka má jiné nastavení kontrastu, takže se bez úpravy neobejdete. Navíc budete potřebovat 0,1" kolíkovou lištu.


    Pokud je kontaktní lišta příliš dlouhá, kontakty navíc módní prostě odříznout!

    Musíte připájet piny k LCD.

    Při pájení buďte extrémně opatrní, abyste nepoškodili váš Breadboard! Nejprve můžete „chytit“ prvních a 16 kontaktů a poté připájet zbytek.


    Napájení a podsvícení

    Připojte napájení a osvětlení

    Vysvětlivky


    Začínáme se dostávat do zajímavých věcí! Namontujte svůj LCD na prkénko.


    Napájíme prkénko z našeho Arduina. Připojte +5V k červené liště a Gnd k modré.


    Poté připojíme podsvícení naší LCD obrazovky. Připojte pin 16 k GND a pin 15 k +5V. Většina LCD obrazovek má odpory podsvícení.

    Pokud na vašem modulu nejsou žádné rezistory, budete muset přidat jeden mezi 5V a pin 15. Pro výpočet hodnoty rezistorů zkontrolujte maximální proud pro napájení podsvícení a přibližnou hodnotu úbytku napětí z datasheetu. Odečtěte úbytek napětí od 5V, poté vydělte maximálním proudem a zaokrouhlete nahoru na nejbližší vyšší standardní hodnotu odporu. Pokud je například úbytek napětí 3,5 V a proud 16 mA, hodnota odporu bude: (5 - 3,5)/0,016 = 93,75 ohmů nebo 100 ohmů zaokrouhlených na standardní hodnotu. Pokud nemůžete najít datový list, použijte odpor 220 ohmů. Pravda, v tomto případě může být podsvícení docela bledé.


    Připojte své Arduino k napájení. Podsvícení by se mělo rozsvítit.

    Mimochodem, některé levné LCD obrazovky nemají podsvícení!

    Schéma pro nastavení kontrastu

    Kontrastní obvod

    Vysvětlivky


    Nainstalujte potenciometr. Na fotografii je umístěn vpravo od kolíku 1.


    Připojte jednu stranu potenciometru na +5V a druhou stranu na Gnd. Připojte střední kolík potenciometru ke kolíku 3 na LCD.


    Nyní připojíme logiku naší obrazovky - toto je obvod oddělený od podsvícení! Pin 1 jde na Gnd a pin 2 jde na +5V.


    Zapněte své Arduino. Pokud je zapnuto Lcd monitor je tam podsvícení, mělo by se rozsvítit. Otočením knoflíku potenciometru uvidíte první obdélník pixelů na prvním řádku.

    Pokud vše fungovalo, gratuluji. To znamená, že logika, osvětlení a kontrast fungují! Pokud to nevyšlo, nepokračujte k dalším krokům instrukce, dokud nezjistíte, v čem je chyba!

    Konečné připojení

    D0 až D7, RS, EN a RW. D0-D7 jsou piny, které ukládají hodnoty odeslané na displej. Pin RS říká ovladači, zda budeme zobrazovat data (např. ASCII znak) nebo je to řídicí bajt (například změna polohy kurzoru). Pin EN je zkratka pro „enable“, tímto pinem říkáme LCD, kdy jsou data připravena ke čtení. Pin RW slouží k nastavení směru – chceme zobrazovat (obvykle) nebo číst (méně běžně používané) údaje z displeje.

    Ne všechny tyto piny musí být připojeny k Arduinu. Například RW není nutné používat, pokud data pouze zobrazujeme na obrazovce, takže jej stačí „přitáhnout“ na pin Gnd. Navíc je možné komunikovat s LCD obrazovkou pomocí 4 pinů místo 8. Pravděpodobně existuje a legitimní otázka, v jakých případech se používá 8 kontaktů? S největší pravděpodobností to ovlivňuje rychlost přenosu dat. To znamená, že pomocí 8 kontaktů místo 4 můžete zvýšit rychlost výměny informací dvakrát. V tento případ, rychlost není důležitá, takže pro připojení LCD k Arduinu používáme 4 piny.

    Potřebujeme tedy 6 pinů: RS, EN, D7, D6, D5 a D4.

    Pro práci s LCD obrazovkou využijeme knihovnu LiquidCrystal, která značně zjednodušuje proces nastavování pinů. Jednou z výhod této knihovny je, že pro připojení LCD pinů můžete použít jakékoli piny na Arduinu. Takže na konci této příručky můžete snadno změnit kolíky, pokud je to pro váš projekt kritické.

    Konečné připojení displeje

    Vysvětlivky


    Jak je uvedeno výše, nebudeme používat kolík RW, takže jej přitáhneme k zemi. Toto je pin 5.


    Poté, co připojíme RS - toto je pin # 4. Hnědý vodič používáme k připojení k digitálnímu kolíku #7 na Arduinu.


    Bílým vodičem propojte EN pin - pin # 6 s digitálním pinem # 8 na Arduinu.


    Na řadu přišly datové kontakty. DB7 je pin #14 na LCD. Připojuje se oranžovým vodičem ke kolíku #12 na Arduinu.


    Zbývají tři datové piny, DB6 (pin #13 žlutý), DB5 (pin #12 zelený) a DB4 (pin #11 modrý). Připojují se ke kolíkům #11, 10 a 9 na Arduinu.


    V důsledku připojení získáte něco podobného jako na fotografii vlevo.

    Použití znakového LCD

    Je čas nahrát skicu do Arduina pro ovládání LCD obrazovky. Knihovna LiquidCrystal je standardně nainstalována v Arduino IDE. Stačí si tedy stáhnout jeden z příkladů a trochu upravit podle pinů, které jsme použili k připojení.

    Otevřete skicu Soubor→Příklady→LiquidCrystal→HelloWorld.

    Aktualizace informací o pinech. Hledáte následující řádek:

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    A změňte to na:

    Nyní můžete zkompilovat a nahrát skicu do Arduina.


    V případě potřeby upravte kontrast.


    LCD displej samozřejmě můžete použít v jakékoli velikosti. Například níže uvedená fotografie ukazuje provoz LCD 20x4.


    Nebo černý text na zeleném pozadí:


    Jednou z výhod obrazovek s černým textem na zeleném pozadí je možnost vypnout podsvícení.


    Kolik řádků použijeme

    Podívejme se, jak LCD zvládá dlouhé zprávy a používá více řádků. Pokud například změníte následující řádek:

    lcd.print("ahoj, světe!");

    Pro další:

    lcd.print("ahoj světe! toto je dlouhá dlouhá zpráva");

    LCD displej 16x2 zkrátí vše za 16. znakem:


    Ale LCD displej 20x4 přenese nezobrazené znaky z prvního řádku na třetí (druhý řádek bude pokračovat na čtvrtém). Není to příliš pohodlné, ale v této fázi se s tím musíte smířit. Při zobrazování dlouhých řetězců tedy počítejte znaky tak, abyste nepřekročili povolenou délku.


    LCD s RGB podsvícením

    Tyto obrazovky fungují stejně jako normální obrazovky, ale mají tři LED diody (červená, zelená, modrá) pro podsvícení, takže můžete použít různé barvy podsvícení.

    Po připojení LCD a jeho kontrole podle výše uvedených pokynů připojte LED k analogovým pinům PWM vašeho Arduina, abyste doladili barvu. Pokud používáte Arduino Uno, měli by vám zůstat tři volné piny PWM. připojte červenou LED (pin 16 na LCD) k Digital 3, zelenou LED (pin 17) k Digital 5 a modrou LED (pin 18 na LCD) k digitálnímu 6. LCD modul již má rezistory, takže není nutné další nutné připojení.


    Nyní nahrajte skicu níže do Arduina.

    // zahrňte knihovny do náčrtu:

    #zahrnout

    #zahrnout

    #define REDLITE 3

    #define GREELITE 5

    #define BLUELITE 6

    // deklarujeme počet kontaktů, které používáme

    // pro přenos dat

    LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

    // jas lze změnit v rozsahu 0 -> 255

    int jas = 255;

    // nastavte počet sloupců a řádků na LCD:

    lcd.begin(16, 2);

    // zobrazení zprávy na LCD.

    lcd.print("Displej RGB 16x2");

    lcd.setCursor(0,1);

    lcd.print("Vícebarevný LCD");

    pinMode(REDLITE, OUTPUT);

    pinMode(GREENLITE, OUTPUT);

    pinMode(BLUELITE, VÝSTUP);

    jas = 100;

    for (int i = 0; i< 255; i++) {

    setBacklight(i, 0, 255-i);

    for (int i = 0; i< 255; i++) {

    setBacklight(255-i, i, 0);

    for (int i = 0; i< 255; i++) {

    setBacklight(0, 255-i, i);

    void setBacklight(uint8_t r, uint8_t g, uint8_t b) (

    // nastavte červenou LED - je jasnější než ostatní!

    r = mapa (r, 0, 255, 0, 100);

    g = mapa (g, 0, 255, 0, 150);

    r = mapa (r, 0, 255, 0, jas);

    g = mapa(g, 0, 255, 0, jas);

    b = mapa(b, 0, 255, 0, jas);

    // společná anoda, tak invertujte!

    r = mapa (r, 0, 255, 255, 0);

    g = mapa (g, 0, 255, 255, 0);

    b = mapa(b, 0, 255, 255, 0);

    Serial.print("R = "); Serial.print(r, DEC);

    Serial.print(" G = "); Serial.print(g, DEC);

    Serial.print(" B = "); Serial.println(b, DEC);

    analogWrite(REDLITE, r);

    analogWrite(GREENLITE, g);

    analogWrite(BLUELITE, b);

    Výsledek tohoto náčrtu je zobrazen na videu níže.

    příkaz createChar

    Pravděpodobně budete chtít použít Speciální symboly. Pokud například navrhujete projekt pomocí teplotního čidla (termočlánku), bude se vám hodit symbol (°).

    To lze provést pomocí příkazu createChar. Také můžete najít skvělou webovou stránku, která za vás udělá všechnu špinavou práci při vytváření nových symbolů!

    Zanechte své komentáře, dotazy a sdílejte osobní zkušenost níže. V diskuzi se často rodí nové nápady a projekty!

    Dnes se zkusíme pozastavit u výstupu na textový displej. Nejoblíbenější je čip HD44780 (nebo s ním kompatibilní KS0066). Uvádíme jejich klady a zápory:

    Klady:

    1. Nízká cena.
    2. Snadné programování, kód bude stejný pro jakýkoli model.
    3. Různé modely - nejběžnější: 8x1, 16x2, 20x4. Dají se najít i docela exotické modely 40x4, tzn. čtyři řádky po 40 znacích.
    4. Možnost připojení více displejů k jednomu Arduinu.
    5. Možnost nastavení vlastních symbolů.

    mínusy:

    1. Ne všechny displeje podporují ruské znaky. Další podrobnosti naleznete v popisu konkrétního displeje.
    2. Připojení bez použití I2C sběrnice vyžaduje použití 10-16 vodičů, což je velmi špatné. s I2C - 4 dráty.

    Na základě výše uvedeného budu uvažovat pouze o připojení displeje přes I2C.

    Zkusme to.

    Co potřebujeme.

    1. Arduino (vzal jsem model Nano)
    2. Displej na čipu HD44780 s nebo bez I2C modulu (pak potřebujete samostatnou LC1602 IIC desku) - v našem případě 16x2 bez I2C modulu
    3. 10K rezistor (v případě potřeby) ruční ovládání osvětlení).
    4. Potenciometr (Pokud potřebujete ruční ovládání podsvícení).
    5. Prkénko na krájení.
    6. Knihovna LiquidCrystal_I2C. http://www.ansealk.ru/files/LiquidCrystal_V1.2.1.zip

    Malá odbočka # 1: Jak rozlišit displej s I2C modulem?

    Ve skutečnosti je vše docela jednoduché. Pokud při otočení displeje uvidíme dlouhý blok konektorů (obvykle 16 kusů), pak na displeji není žádný modul I2C:

    A takto vypadá displej s již nainstalovaným modulem I2C:

    Pro připojení Arduina slouží piny SCL, SDA, VCC, GND. Dva kontakty vlevo - na obrázku jsou sepnuté propojkou - jsou potřeba pro fungování podsvícení.

    Pokud modul není připojen, budete to muset udělat sami. Hlavní věc, kterou je třeba věnovat pozornost, je připojení kontaktů správný příkaz. Zpravidla je označen první a 16 pinů. Někdy se stává, že kontakty 15-16, přes které je ovládáno podsvícení, mohou být umístěny před prvním (v tomto případě budou očíslovány). Na samotném modulu může být první pin také označen nikoli číslem, ale čtverečkem kolem samotného pinu.

    Systém:

    Pojďme si dát dohromady následující schéma:

    Upozorňuji vás na následující body:

    1. Pokud narazíte na displej s již připájeným I2C modulem, pak nebudou šedě označené vodiče potřeba. Ve zbytku - nic se nemění.
    2. Pokud nechceme měnit jas displeje, pak se schéma zjednoduší:

    jak jste si všimli, dva piny na I2C modulu označené LED jsou zodpovědné za podsvícení displeje. Pokud nechceme používat ovládání jasu, můžeme je jednoduše zavřít.

    Nyní rozebereme kód.

    Zde by nám mělo být známé téměř vše. V řádku 5 uvedeme adresu zařízení. Na řádcích 16 a 17 počet znaků na řádek a počet řádků. V řádcích 20-22 - Vytvoříme objekt pro práci s displejem a popíšeme parametr pro práci s ním.

    Malá odbočka č. 2: Jak zjistit adresu I2C zařízení?

    Z velké části lze adresu nalézt v datasheetu k čipu, na kterém je I2C zařízení postaveno. Pokud to není možné, zde je odkaz na archiv s náčrtem a schématy - http://www.ansealk.ru/files/Arduino_lcd_i2c.zip, který určuje adresy všech zařízení připojených přes I2C sběrnici. Stačí připojit zařízení k Arduinu, nahrát skicu, otevřít konzoli a zobrazit adresu.

    Zde vidíme funkci, která se ve skutečnosti bude zabývat výstupem na displej. Princip výstupu je něco takového:

    Nastavte počáteční pozici výstupu pomocí funkce setCursor().

    Tisk řetězce pomocí funkce print().

    Potom další funkce print() spustí výstup od další pozice, po které skončil předchozí vstup. Všimněte si také, že na rozdíl od výstupu do konzole se zde k dokončení výstupu a posunu řádku nepoužívá funkce println().

    Na obrazovce se tedy v prvním řádku objeví nápis „Test LCD1602“ a druhý řádek bude udávat rozlišení displeje a počítadlo ukazující, kolik cyklů naše skica fungovala.

    Pokud však potřebujeme na obrazovce zobrazit mnoho proměnných hodnot, tato metoda není příliš pohodlná. Faktem je, že procedura zobrazení displeje je energeticky velmi náročná a pomalá a výstup v této funkci uděláme až 7x. Bude mnohem snazší předem vytvořit řetězec a poté jej celý vytisknout. S tím nám pomůže funkce formátovaného vstupu sprintf().

    Vedlejší poznámka č. 3: Vstupní funkce ve formátu sprintf().

    Existuje několik velmi pohodlné funkce tisknout řetězce - říká se jim formátované výstupní funkce - printf (od slov print a format). V našem konkrétní případ nás zajímá funkce sprintf, která na obrazovce nic nezobrazuje, ale tvoří řetězec pro následný výstup. Vypadá to nějak takto:

    sprintf (str , "Řetězec %d na výstup", i );

    Funkce vygeneruje pomocí šablony (žlutá) řetězec (označený modře), do kterého se dosadí hodnoty proměnných (zeleně). Výsledek bude zapsán do řetězcové proměnné (červeně).

    Může existovat několik šablon a proměnných. V tomto případě jsou proměnné odděleny čárkami. Hlavně se ujistěte, že počet vzorů v řádku odpovídá počtu proměnných. Proměnné pro šablony se berou postupně, tzn. hodnota první proměnné se dosadí do první šablony, hodnota druhé proměnné se dosadí do druhé šablony atd.

    Co jsou šablony? Jakýkoli vzor začíná znakem "%" a končí jedním z deseti (v případě Arduina - sedmi) znaků typu. Mezi nimi může být poměrně hodně informací o tom, jak hodnotu zobrazit, nebo nemusí být vůbec nic.

    Podívejme se, co může být v šabloně. Obecně šablona vypadá takto:

    %[příznak ][šířka ][.přesnost ]typ

    Hranaté závorky označují, že prvek v nich uzavřený může být vynechán. Svislý pruh označuje, že v tomto poli musí být vybrána jedna ze zadaných hodnot (v našem případě jedno z písmen H, I nebo L).

    Pojďme se nejprve zabývat požadovaným prvkem šablony – typem. Určuje, jaký typ proměnné bude na výstupu, a může nabývat jedné z následujících hodnot:

    Symbol Význam
    C Jedna postava
    s Řetězec znaků
    d,i Desetinné celé číslo se znaménkem
    Ó Celé číslo
    u Celé číslo bez znaménka v desítkové soustavě
    x, x Celé číslo v šestnáctkové soustavě
    p Ukazatel (hexadecimální)
    F Zlomkové číslo v pevném formátu
    e, E Zlomkové číslo ve vědeckém formátu
    g, G Zlomkové číslo ve vědeckém nebo pevném formátu

    Šedě byly označeny ty typy, které nejsou použitelné při práci s Arduinem. Pro výstup řetězce tedy musíte zadat "%s" a pro výstup celého čísla - "%d".

    Dále zvažte pole šířky. Číslo v něm udává minimální šířku pole, ve kterém bude šablona zobrazena. Pokud je velikost hodnoty v proměnné menší - pole bude doplněno mezerami, pokud je více - záznam přesáhne pole. Vzor "%6d" pro číslo 385 tedy vytiskne 385 (všimněte si tří mezer před číslem).

    Specifikátor přesnosti vždy začíná tečkou a číslo následující za ní označuje různé akce v závislosti na typu hodnoty. U typů "d,o,u,x" bude udávat minimální počet znaků, které by se měly objevit během zpracování. Pro typ "f" - počet desetinných míst. Pro typ "s" maximální počet znaků řetězce, které mají být na výstupu. Například "% 6.1f" pro číslo 34.2345 zobrazí "34.1" (všimněte si, že tečka je také považována za znak a před číslem budou dvě mezery). Nebo vzor "%.3s" z řetězce "precision" zobrazí pouze první tři znaky - "tečku".

    Příznak umožňuje změnit zobrazení zobrazené hodnoty:

    Více o šablonách funkcí printf si můžete přečíst na internetu. Tady jsem dal krátká recenze nejčastěji používané funkce.

    Naše výstupní funkce, přepsaná tak, aby používala formátovaný výstup, tedy bude vypadat takto:

    Všimněte si, že na řádcích 33 a 37 generujeme celý řádek k výstupu a na řádcích 34 a 38 je tiskneme.

    Nakonec naše oblíbené nastavení a funkce smyčky.

    V řádku 47 nastavíme rozlišení displeje, v řádku 48 zapneme podsvícení (jehož jas lze regulovat potenciometrem). Na řádku 49 nastavte čítač smyčky na nulu. Během výstupu jej na 37. řádku zvýšíme o jedničku (pamatujete na konstrukci count++?). Nakonec na řádku 56 zavoláme funkci zobrazení, o které jsme hovořili dříve. Všechno.

    Co lze změnit nebo zlepšit?

    Například můžete udělat automatické ovládání osvětlení v závislosti na osvětlení pomocí fotorezistoru nebo světelného senzoru z meteostanice diskutované v několika článcích dříve. Například v silném světle - zvyšte jas podsvícení a v noci - snižte jej. Nebo přišroubujte pohybové čidlo a zapněte podsvícení, když se před displejem objeví nějaký předmět, nebo... Obecně si myslím, že jste již pochopili, že v případě potřeby výměnou jedné nebo více komponent a napsáním kusu kódu, můžete vážně zlepšit použitelnost displeje. K zobrazení na displeji můžeme použít i na míru navržené symboly.

    Všechny tyto otázky zde nezvažuji, protože jsou nad rámec recenze pro začátečníky.

    A pro dnešek mám všechno.

    Arduino. Připojení LCD displeje

    26 hodnocení, Průměrné hodnocení: 5 z 5

    V lekci si povíme něco o indikátorech z tekutých krystalů syntetizujících znaky, jejich připojení k desce Arduino a ovládání indikátorů pomocí knihoven LiquidCrystal a LiquidCrystalRus.

    LED sedmisegmentové indikátory, i když jsou nejlevnější možností indikace elektronická zařízení, ale jejich použití je omezeno dvěma významnými nedostatky.

    • K mikrokontroléru je prakticky obtížné připojit více než 8 bitů LED indikátory. Vyžaduje velký počet výstupů, významné indikační proudy, složité klávesy, nízká frekvence regeneraci atd.
    • Na sedmisegmentových displejích není možné zobrazovat informace o znacích.

    Pro výstup textové informace nebo čísla větší než 4 číslice, je mnohem praktičtější použít indikátory (displeje) syntetizující znaky z tekutých krystalů. Mezi jejich výhody patří:

    • rozhraní vhodné pro připojení k mikrokontrolérům;
    • malá spotřeba energie;
    • nízké napájecí napětí;
    • trvanlivost.

    Na trhu je široká škála displejů z tekutých krystalů (LCD). různých výrobců. Téměř všechny jsou podobné v parametrech, signálech rozhraní, řídicích příkazech. V tento moment zapnuté nejběžnější indikátory LCD ruský trh jsou zařízení vyráběná společností Winstar, Taiwan. Budu odkazovat na ukazatele této firmy. Ale informace jsou docela použitelné pro znakové LCD displeje jiných výrobců.

    Obecná informace.

    Znaménkové nebo symbolické indikátory zobrazují informace ve formě známosti určité bitové hloubky. Jeden znak představuje jeden znak. Počet obeznámenosti určuje bitovou hloubku indikátoru. Informace o indikátorech lze zobrazit na více řádcích, takže u indikátorů tohoto typu je vždy uveden počet znaků na řádek a počet řádků.

    Informace se zobrazují na matrici z tekutých krystalů s LED podsvícení. Podsvícení je k dispozici v různých barvách, což výrazně oživuje monochromatické textové informace.

    Chcete-li ovládat matici tekutých krystalů a organizovat rozhraní indikátoru, vestavěný ovladač HD44780 nebo jeho úplné analogy. Tento ovladač definuje signály rozhraní indikátoru a řídicí příkazy.

    HD44780 se stal de facto standardem pro displeje z tekutých krystalů (LCD). technická dokumentace pomocí ovladače HD44780 ve formátu PDF si můžete prohlédnout na tomto odkazu. Možná se někomu bude líbit dokumentace jednoho z analogů tohoto řadiče - SPLC780D. Odkaz na PDF - .

    Znakové LCD Indikátory Winstar.

    Znám následující možnosti LCD indikátorů této společnosti.

    typ indikátoru Formát zobrazení, znaků x řádků Rozměry, mm Rozměry viditelné plochy, mm Odkaz na dokumentaci, formát PDF
    WH0802A1 8x2 58x32 38x16
    WH1202A 12x2 55,7 x 32 46x14,5
    WH1601A 16x1 80x36 66x16
    WH1601B 16x1 85x28 66x16
    WH1601L 16x1 122x33 99x13
    WH1602A 16x2 84x44 66x16
    WH1602B 16x2 80x36 66x16
    WH1602C 16x2 80x36 66x16
    WH1602D 16x2 85x30 66x16
    WH1602J 16x2 80x36 66x16
    WH1602L1 16x2 122x44 99x24
    WH1602M 16x2 85 x 32,6 66x16
    WH1602O 16x2 85 x 25,2 66x16
    WH1602P 16x2 85 x 25,2 66x16
    WH1602S 16x2 59 x 29,3 52x15
    WH1602T 16x2 65,4 x 28,2 54,8 x 19
    WH1602W 16x2 80x36 66x16
    WH1602V2 16x2 66,7 x 23,3 61 x 15,9
    WH1604A 16x4 87x60 62x26
    WH1604B 16x4 70,6x60 60 x 32,6
    WH2002A 20x2 116x37 85x18,6
    WH2002D 20x2 89 x 21,5 75x15
    WH2002L 20x2 180x40 149x23
    WH2002M 20x2 146x43 123x23
    WH2004A 20x4 98x60 77 x 25,2
    WH2004B 20x4 98x60 77 x 25,2
    WH2004D 20x4 77x47 60x22
    WH2004G 20x4 87x58 74,4 x 24,8
    WH2004H 20x4 87x58 74,4 x 24,8
    WH2004L 20x4 146 x 62,5 123,5 x 43
    WH2402A 24x2 118x36 94,5 x 16
    WH4002A 40x2 182 x 33,5 154,4 x 16,5
    WH4004A 40x4 190x54 147 x 29,5

    LCD připojení indikátor do mikrokontroléru.

    Schémata zapojení, časová schémata, parametry signálů, ovládací příkazy, kódy znaků jsou podrobně popsány v dokumentaci k regulátoru HD44780. Uvedu jen nejnutnější údaje o připojení indikátorů k mikrokontrolérům.

    LCD indikátory mají zpravidla 16 pinů.

    Číslo výstupu Signál I - vstup O - výstup Přiřazení signálu
    1 Vss - Zem (společný vodič)
    2 vdd - Napájení + 5V
    3 Vo - Ovládání kontrastu displeje. Vstup pro připojení středního výstupu děliče napětí + 5 V. Můžete použít trimovací rezistor s odporem 10-20 kOhm.
    4 RS Výběr registru: 0 – registr příkazů; 1 - evidence dat. Nízká úroveň signál znamená, že na datové sběrnici byl vygenerován příkaz, vysoká úroveň– údaje o sběrnici.
    5 R/W Směr převodu:

    0 - záznam;

    1 - čtení.

    Mnoho aplikací nepoužívá funkci čtení, takže signál je často spojen se zemí.

    6 E Záblesk provozu sběrnice (na sestupné hraně).
    7 DB0 I/O Nízké bity osmibitového režimu. U čtyřbitového rozhraní se nepoužívají.
    8 DB1 I/O
    9 DB2 I/O
    10 DB3 I/O
    11 DB4 I/O Vysoké bity osmibitového režimu nebo datové bity čtyřbitového rozhraní.
    12 DB5 I/O
    13 DB6 I/O
    14 DB7 I/O
    15 A - Napájecí anoda podsvícení (+).
    16 K - Napájecí katoda podsvícení (-). Proud musí být omezen.

    Číslo PIN (první sloupec) je pro nejběžnější variantu. Pro lepší kontrolu si stáhněte dokumentaci pro váš typ indikátoru z tabulky v předchozí části.

    Znakové LCD displeje podporují dvě možnosti připojení k mikrokontroléru:

    • Použití 8bitové datové sběrnice. Všechny signály sběrnice DB0-DB7 jsou připojeny. V jednom cyklu výměny se přenese byte informací.
    • Použití 4bitové datové sběrnice. Jsou připojeny pouze 4 MSB DB4-DB7. Informace se přenášejí čtyři bity za cyklus sběrnice.

    První možnost poskytuje přenos dat na displej vyšší rychlostí. Druhý vyžaduje o 4 méně výstupů pro připojení indikátoru. Důležitější je bezesporu snížení počtu pinů pro připojení než navýšení kurzu. Kromě toho jsou LCD indikátory docela dobré pomalá zařízení s dobou regeneračního cyklu 10-20 ms.

    Připojení znakového LCD (LCD) displeje k desce Arduino.

    K desce připojím indikátor WH2004A (4 řádky po 20 znacích) v režimu čtyřbitové výměny Arduino UNO R3. Dokumentaci k LCD displeji WH2004 si můžete prohlédnout na tomto odkazu.

    Schéma vypadá takto.

    Rezistory R2 a R3 určují kontrast indikátoru. Můžete připojit ladicí odpor a nastavit požadovanou čistotu obrazu. Často používám indikátory WH2004 a ve svých obvodech volím takové hodnoty rezistorů.

    LED podsvícení indikátoru jsem připojil na 5V zdroj přes rezistor R1 (30 Ohm). Tímto jsem nastavil proud na cca 25 mA. Tlumené, ale zářící. Ve tmě vidíte dobře. I když indikátory WH2004 umožňují proud podsvícení až 580 mA.

    Knihovna pro ovládání LCD indikátorů v systému Arduino LiquidCrystal.

    K dispozici je standardní knihovna pro ovládání LCD indikátorů na bázi řadiče HD44780. Jeho metody podrobně popíšu.

    Tekutý krystal(…)

    Konstruktor třídy. Mohou mít jiné číslo argumenty.

    • LiquidCristal(rs, en, d4, d5, d6, d7) – čtyřbitové rozhraní, RW signál není použit (připojeno k zemi).
    • LiquidCristal(rs,rw, en, d4, d5, d6, d7) – čtyřbitové rozhraní, používá se RW signál.
    • LiquidCristal(rs, en, d0, d1, d2, d3, d4, d5, d6, d7) – osmibitové rozhraní, RW signál není použit (připojen k zemi).
    • LiquidCristal(rs, rw, en, d0, d1, d2, d3, d4, d5, d6, d7) – osmibitové rozhraní, používá se signál RW.

    Argumenty:

    • rs je číslo výstupu signálu RS;
    • rw – číslo výstupu signálu RW;
    • en je číslo výstupu signálu E;
    • d0, d1, d2, d3, d4, d5, d6, d7 jsou čísla pinů datové sběrnice.

    LiquidCrystal disp(6, 7, 2, 3, 4, 5);

    void begin (sloupce, řádky)

    Inicializuje rozhraní indikátoru. Nastavuje rozměr indikátoru. Před použitím jiných funkcí třídy musí být nejprve volána metoda.

    Argumenty:

    • cols - počet znaků v řetězci;
    • rows je počet řádků.

    disp.begin(20, 4); // použijte displej - 4 řádky po 20 znacích

    void clear()

    Vymazání obrazovky umístěním kurzoru do levého horního rohu.

    disp.clear(); // resetování displeje

    voidhome()

    Umístění kurzoru do levého horního rohu.

    disp.home(); // do horní části obrazovky

    void setCursor(sloupec, řádek)

    Nastaví kurzor na danou pozici.

    • col – souřadnice X, číslování od 0;
    • řádek – souřadnice Y, číslování od 0.

    setCursor(0,1); // kurzor na začátek druhého řádku

    byte zápis (data)

    Zobrazí znak na obrazovce. Vrátí počet přenesených bajtů.

    Následující skica zobrazuje data z sériový port. Data mohou být přenášena monitorem portů Arduino IDE.

    // výstup dat sériového portu na LCD indikátoru
    #zahrnout


    chardata;

    void setup()
    {
    Serial.begin(9600); // inicializovat sériový port
    disp.begin(20, 4); //
    }

    void loop()
    {
    if (Serial. available()) ( // pokud existují data
    data= Serial.read(); // přečtení znaku
    if((data != 0xd) && (data != 0xa)) ( // nový řádek
    disp.write(data); // zobrazit znak na obrazovce
    }
    }
    }

    Mám velký indikátor - 4 řádky po 20 znacích. Má dva řadiče HD44780. Proto postupně vysílané znaky vyplňují nejprve první řádek, poté třetí, poté druhý a čtvrtý. Tito. přes linku. Tato vlastnost musí být zohledněna u určitých typů ukazatelů. Dokumentace ke každému indikátoru LCD uvádí sekvenci adresovacích znaků.

    byte print (data)

    Zobrazí text na obrazovce. Vrátí počet přenesených bajtů.

    Argumenty:

    data - data k zobrazení na obrazovce. Může mít typy znaků, byte, int, long, string.

    Může existovat druhý, volitelný argument.

    byte print (data, base)

    • BASE - nastavuje číselnou soustavu:
    • BIN - binární;
    • DEC - desítkové;
    • OCT - osmičková:
    • HEX je hexadecimální.

    Příklad programu, který vytiskne textový řetězec na displej.

    // zobrazení textového řetězce na LCD indikátoru
    #zahrnout

    LiquidCrystal disp(6, 7, 2, 3, 4, 5); // vytvořit objekt

    void setup()
    {
    disp.begin(20, 4); // inicializovat displej 4 řádky po 20 znacích
    disp.print("Testovací řetězec");
    }

    void loop()
    { }

    void kurzor()

    Aktivuje režim zobrazení kurzoru. Pozice, kde se zobrazí další znak, je podtržena.

    disp.cursor(); // povolit zobrazení kurzoru

    void noCursor()

    Deaktivuje zobrazení kurzoru.

    disp.noCursor(); // deaktivovat zobrazení kurzoru

    void blink()

    Umožňuje režim blikajícího kurzoru. Používá se ve spojení s funkcí kurzor(). Výsledek závisí na konkrétní model indikátor.

    disp.blink(); // povolit blikající kurzor

    void noBlink()

    Deaktivuje režim blikajícího kurzoru.

    disp.noBlink(); // zakázat blikající kurzor

    void display()

    Zapne obrazovku poté, co byla vypnuta funkcí noDisplay(). Na obrazovce se zobrazí informace, které byly před vypnutím.

    display.display(); // zapněte displej

    void noDisplay()

    Vypne obrazovku. Informace se uloží do paměti a zobrazí se po zapnutí displeje.

    display.noDisplay(); // vypnout obrazovku

    void scrollDisplayLeft()

    Posune obsah displeje o jeden znak doleva.

    disp. scrollDisplayLeft(); // posunout vše doleva

    void scrollDisplayRight()

    Posune obsah displeje o jeden znak doprava.

    disp. scrollDisplayRight(); // vše přesunout doprava

    void autoscroll()

    Povolit automatické posouvání textu. S každým výstupem znaku se veškerý text na obrazovce posune o jeden znak. Jakým směrem se informace posune, je určeno funkcemi leftToRight() a rightToLeft().

    disp. automatické rolování()(); // zapněte autoscroll

    void noAutoscroll()

    Vypněte automatické posouvání textu.

    disp. noAutoscroll()(); // zakázat automatické rolování

    void leftToRight()

    Nastavuje režim testovacího výstupu zleva doprava. Nové symboly se objeví vpravo od předchozích.

    zleva do prava(); // režim zleva doprava

    void rightToLeft()

    Nastavuje režim testovacího výstupu zprava doleva. Nové postavy se objeví vlevo od předchozích.

    zprava doleva(); // režim zprava doleva

    void createChar(číslo, data)

    Metoda pro vytvoření vlastního symbolu. Ovladač umožňuje vytvoření až 8 znaků (0…7) o velikosti 5x8 pixelů. Obrázek znaku je dán polem 8 bajtů. Nejméně významných 5 bitů každého bajtu určuje stav pixelů řádku.

    Pro výstup vlastního znaku můžete použít funkci write() s číslem znaku.

    // vytvoření vlastního symbolu
    #zahrnout

    LiquidCrystal disp(6, 7, 2, 3, 4, 5); // vytvořit objekt

    byte úsměv =(
    B00000000,
    B00010001,
    B00000000,
    B00000000,
    B00010001,
    B00001110,
    B00000000,
    B00000000
    };

    void setup()
    {
    disp.createChar(0, úsměv); // vytvořit symbol
    disp.begin(20, 4); // inicializovat displej 4 řádky po 20 znacích
    disp.print("Úsměv");
    disp.write(byte(0)); // výstupní znak
    }

    void loop()
    { }

    Zde je příklad programu, který zobrazuje ruskou abecedu.

    // odvození ruské abecedy
    #zahrnout

    LiquidCrystalRus disp(6, 7, 2, 3, 4, 5); // vytvořit objekt

    void setup()
    {
    disp.begin(20, 4); // inicializovat displej 4 řádky po 20 znacích
    disp.print("abvgdejzijklmnoprst");
    disp.print("ABCDEJZYKLMNOPRST");
    disp.print("uhhhhhhhhhhhhhhhh");

    Kategorie: . Můžete vytvořit záložku.

    Návod

    Činnost ultrazvukového dálkoměru HC-SR04 je založena na principu echolokace. Vysílá zvukové impulsy do prostoru a přijímá signál odražený od překážky. Vzdálenost k objektu je určena dobou šíření zvukové vlny k překážce a zpět.
    Začátek zvukové vlny začíná kladným pulzem o délce nejméně 10 mikrosekund na rameni TRIG dálkoměru. Jakmile puls skončí, dálkoměr vyšle do prostoru před sebou salvu zvukových pulsů o frekvenci 40 kHz. Současně se spustí algoritmus pro určení doby zpoždění odraženého signálu a na noze ECHO dálkoměru se objeví logická jednotka. Jakmile snímač zachytí odražený signál, objeví se na pinu ECHO logická nula. Doba trvání tohoto signálu ("Echo Delay" na obrázku) určuje vzdálenost k objektu.
    Dosah měření vzdálenosti dálkoměru HC-SR04 je až 4 metry s rozlišením 0,3 cm.Úhel pozorování je 30 stupňů, efektivní úhel je 15 stupňů. Spotřeba proudu v pohotovostním režimu 2 mA, během provozu - 15 mA.

    Ultrazvukový dálkoměr je napájen +5 V. Další dva piny jsou připojeny k libovolným digitálním portům Arduino, připojíme k 11 a 12.

    Nyní napíšeme náčrt, který určí vzdálenost k překážce a vyšle ji na sériový port. Nejprve nastavíme čísla pinů TRIG a ECHO - jedná se o piny 12 a 11. Poté deklarujeme trigger jako výstup a echo jako vstup. Inicializujeme sériový port na 9600 baudů. V každé iteraci cyklu smyčka() odečteme vzdálenost a odešleme ji do portu.
    Funkce getEchoTiming() generuje startovací impuls. Vytvoří pouze 10 mikrosekundový impuls, který je spouštěčem pro to, aby dálkoměr začal vysílat zvukový balíček do vesmíru. Pak si pamatuje dobu od začátku přenosu zvukové vlny do příchodu ozvěny.
    Funkce getDistance() vypočítá vzdálenost k objektu. Ze školního kurzu fyziky si pamatujeme, že vzdálenost se rovná rychlosti krát čas: S = V * t. Rychlost zvuku ve vzduchu je 340 m/s, čas v mikrosekundách, který známe, je "duratuion". Vydělte 1 000 000, abyste získali čas v sekundách. Vzhledem k tomu, že zvuk urazí dvojnásobnou vzdálenost - k objektu a zpět - musíte vzdálenost rozdělit na polovinu. Ukazuje se tedy, že vzdálenost k objektu je S = 34000 cm/s * trvání / 1 000 000 s / 2 = 1,7 cm/s / 100, což je to, co jsme napsali do náčrtu. Mikrokontrolér provádí operaci násobení rychleji než dělení, takže jsem nahradil "/ 100" ekvivalentem "* 0,01".

    Také mnoho knihoven bylo napsáno pro práci s ultrazvukovým dálkoměrem. Například tento: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Knihovna se instaluje standardním způsobem: stáhnout, rozbalit do adresáře knihovny, který se nachází ve složce Arduino IDE. Poté lze knihovnu používat.
    Po instalaci knihovny napíšeme nový náčrt. Výsledek jeho práce je stejný – na monitoru sériového portu se zobrazuje vzdálenost k objektu v centimetrech. Pokud do náčrtu píšete float dist_cm = ultrazvuk.Ranging(INC);, vzdálenost se zobrazí v palcích.

    Takže jsme k Arduinu připojili ultrazvukový dálkoměr HC-SR04 a přijímali z něj data pomocí dvou různé způsoby: se speciální knihovnou a bez ní.
    Výhodou použití knihovny je, že se výrazně sníží množství kódu a zlepší se čitelnost programu, nemusíte se nořit do složitostí zařízení a můžete jej okamžitě používat. To je ale také nevýhoda: hůře rozumíte tomu, jak zařízení funguje a jaké procesy v něm probíhají. V každém případě je na vás, kterou metodu použijete.

    • Modul FC-113 je založen na čipu PCF8574T, což je 8bitový posuvný registr - I/O expandér pro sériovou sběrnici I2C. Na obrázku je mikroobvod označen DD1.
    • R1 - trimr pro úpravu kontrastu LCD displeje.
    • Jumper J1 slouží k zapnutí podsvícení displeje.
    • Piny 1…16 slouží k připojení modulu k pinům LCD displeje.
    • Kontaktní plošky A1 ... A3 jsou potřebné pro změnu I2C adresy zařízení. Připájením příslušných propojek můžete změnit adresu zařízení. Tabulka ukazuje shodu mezi adresami a propojkami: "0" odpovídá otevřenému obvodu, "1" - je nainstalována propojka. Ve výchozím nastavení jsou všechny 3 propojky otevřené a adresa zařízení 0x27.

    2 Schéma zapojení LCD displeje k Arduinu přes I2C protokol

    Modul je připojen k Arduinu standardně pro sběrnici I2C: výstup SDA modulu je připojen k analogový port A4, SCL pin - k analogovému portu A5 Arduina. Modul je napájen +5 V z Arduina. Samotný modul je připojen piny 1…16 k odpovídajícím pinům 1…16 na LCD displeji.


    3 Knihovna pro práci přes I2C protokol

    Nyní potřebujeme knihovnu pro práci s LCD přes rozhraní I2C. Můžete použít například tento (odkaz v řádku "Stáhnout ukázkový kód a knihovnu").

    Stažený archiv LiquidCrystal_I2Cv1-1.rar rozbalit do složky \knihovny\, který se nachází v adresáři Arduino IDE.

    Knihovna podporuje sadu standardních funkcí pro LCD obrazovky:

    FunkceÚčel
    Tekutý krystal() vytváří typ proměnné LiquidCrystal a přijímá parametry připojení displeje (čísla pinů);
    začít() inicializace LCD displeje, nastavení parametrů (počet řádků a symbolů);
    Průhledná() vymazání obrazovky a návrat kurzoru do původní polohy;
    Domov() návrat kurzoru do výchozí polohy;
    setCursor() nastavení kurzoru na danou pozici;
    napsat() zobrazí znak na LCD obrazovce;
    tisk() zobrazuje text na LCD obrazovce;
    kurzor() ukazuje kurzor, tzn. podtržení pod dalším znakem;
    noCursor() skryje kurzor;
    blikat() kurzor bliká;
    noBlink() zrušit blikání;
    noDisplay() vypnutí displeje při ukládání všech zobrazených informací;
    Zobrazit() zapnutí displeje při ukládání všech zobrazených informací;
    scrollDisplayLeft() posouvání obsahu displeje o 1 pozici doleva;
    scrollDisplayRight() posouvání obsahu displeje o 1 pozici doprava;
    automatické rolování() povolit automatické rolování;
    noAutoscroll() vypnout automatické rolování;
    zleva do prava() nastavuje směr textu zleva doprava;
    zprava doleva() směr textu zprava doleva;
    createChar() vytvoří vlastní symbol pro obrazovku LCD.

    4 Skica pro výstup textu na LCD obrazovku přes I2C sběrnici

    Otevřeme ukázku: Soubor Samples LiquidCrystal_I2C CustomChars a pojďme to trochu změnit. Zobrazme zprávu, na jejímž konci bude blikající znak. Všechny nuance náčrtu jsou komentovány v komentářích ke kódu.

    #zahrnout // zahrnout knihovnu Wire #include // připojení knihovny LCD #define printByte(args) write(args); // uint8_t srdce = (0x0,0xa,0x1f,0x1f,0xe,0x4,0x0); // bitová maska ​​symbolu "srdce" LiquidCrystal_I2C lcd(0x27, 16, 2); // Nastavení adresy 0x27 pro LCD displej 16x2 void setup()( lcd.init(); // inicializace LCD lcd.backlight(); // zapnutí podsvícení displeje lcd.createChar(3, srdce); // vytvoření symbolu srdce v paměťovém místě 3 lcd.home(); // umístěte kurzor doleva horní roh, na pozici (0,0) lcd.!"); // vytiskne řádek textu lcd.setCursor(0, 1); // přesune kurzor na řádek 2, znak 1 lcd.print(" i "); // vytiskne zprávu na řádku 2 lcd.printByte(3);//vytiskne znak srdce umístěný v buňce 3 lcd.print("Arduino"); } void loop() (// bliknutí posledního znaku lcd. setCursor(13, 1); // přesunutí kurzoru na řádek 2, znak 1 lcd.print("\t"); zpoždění(500); lcd.setCursor(13, 1); // přesunutí kurzoru na řádek 2, znak 1 lcd.print(" "); zpoždění(500); }

    Mimochodem, znaky napsané příkazem lcd.createChar(); zůstanou v paměti displeje i po vypnutí napájení. jsou zapsány do paměti ROM displeje 1602.

    5 Vytváření vlastních symbolů pro LCD displej

    Pojďme se blíže podívat na problematiku tvorby vlastních symbolů pro LCD obrazovky. Každý znak na obrazovce se skládá z 35 bodů: 5 širokých a 7 vysokých (+1 náhradní řádek pro podtržení). Na řádku 6 výše uvedeného náčrtu definujeme pole 7 čísel: (0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0). Převedeme hexadecimální čísla na binární: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . Tato čísla nejsou nic jiného než bitové masky pro každý ze 7 řádků znaku, kde „0“ označuje světlý bod a „1“ tmavý. Na obrazovce se například objeví symbol srdce daný jako bitová maska, jak je znázorněno na obrázku.

    6 LCD ovládání přes I2C sběrnici

    Nahrajte skicu do Arduina. Námi zadaný nápis se objeví na obrazovce s blikajícím kurzorem na konci.


    7 Co je pozadu I2C sběrnice

    Jako bonus zvažte časový diagram výstupu latinských znaků "A", "B" a "C" na LCD displeji. Tyto znaky jsou uloženy v paměti ROM displeje a zobrazí se na obrazovce pouhým předáním jejich adresy na displej. Schéma je převzato z výstupů RS, RW, E, D4, D5, D6 a D7 displeje, tzn. již po převodníku FC-113 "I2C paralelní sběrnice". Dá se říci, že se noříme trochu „hlouběji“ do „železa“.


    Časový diagram pro zobrazení latinských znaků "A", "B" a "C" na LCD displeji 1602

    Diagram ukazuje, že znaky, které jsou v paměti ROM displeje (viz strana 11 datového listu, odkaz níže) jsou přenášeny ve dvou kouscích, z nichž první určuje číslo sloupce tabulky a druhý určuje číslo řádku. V tomto případě jsou data "přichycena" podél okraje signálu na lince E(Povolit) a řádek RS(Výběr registru, výběr registru) je ve stavu logické jedničky, což znamená přenos dat. Nízký stav linky RS znamená přenos instrukcí, které vidíme před přenosem každého znaku. V tomto případě se přenese kód instrukce návratu vozíku na pozici (0, 0) LCD displeje, což lze také zjistit zkoumáním technický popis Zobrazit.

    A ještě jeden příklad. Tento časový diagram ukazuje zobrazení symbolu srdce na LCD.


    Opět první dva impulsy umožnit dodržovat pokyny Domov()(0000 0010 2) - návrat vozíku do polohy (0; 0), a druhé dva - výstup na LCD displej uložený v paměťové buňce 3 10 (0000 0011 2) symbol "Srdce" (instrukce lcd.createChar(3, srdce); skica).