Pripojenie texty obrazovky do Arduino. Symbol LCD a ARDUINO

Dnes sa pokúsime zostať na výstupe na textovom displeji. Najobľúbenejšie je hd44780 čip (alebo kompatibilný s IT KS0066). Uvádzame svoje výhody a nevýhody:

Pros:

  1. Nízka cena.
  2. Jednoduchosť programovania, kód bude rovnaký pre akýkoľvek model.
  3. Modelové rozdelenie je najčastejšie: 8x1, 16x2, 20x4. Môžete tiež nájsť skôr exotický model 40x4, t.j. Štyri riadky 40 znakov v každej.
  4. Možnosť pripojenia viacerých displejov na jeden ARDUINO.
  5. Schopnosť nastaviť si vlastné postavy.

Minusy:

  1. Nie všetky displeje podporujú ruské znaky. Musíme sa pozrieť viac v popise na konkrétny displej.
  2. Pripojenie bez použitia autobusu I2C vyžaduje použitie 10-16 drôtov, čo je veľmi zlé. S vodičmi I2C - 4.

Na základe vyššie uvedeného budem zvážiť iba zobrazenie displeja cez I2C.

Vyskúšajme.

Čo potrebujeme.

  1. Arduino (Vzal som model Nano)
  2. Displej na hd44780 čip s I2C alebo bez modulu (potom bude potrebná doska IIC LC1602) - v našom prípade, 16x2 bez modulu I2C
  3. 10kOL rezistor (ak potrebujete manuálne ovládanie podsvietenia).
  4. Potenciometer (ak je potrebné manuálne osvetlenie).
  5. Priebežná doska.
  6. Library CLICKRYSTAL_I2C. http://www.ansealk.ru/files/liquidcrystal_v1.2.zip.

Small Retreat Číslo 1: Ako odlíšiť displej s I2C modulom?

V skutočnosti je všetko pomerne jednoduché. Ak je vypnutie displeja, vidíme dlhý blok konektorov (spravidla 16 kusov) Modul I2C na displeji nie je:

Ale vyzerá to ako displej s už nainštalovaným modulom I2C:

SCL, SDA, VCC, Kontakty GND sa používajú na pripojenie ARDUINO. Dva kontakty na ľavej strane - v obraze, ktoré sú zatvorené s jumper - Je potrebné otvoriť podsvietenie.

Ak nie je modul pripojený - musíte to urobiť sami. Hlavnou vecou je venovať pozornosť - pripojiť kontakty v správnom poradí. Spravidla sú prvé a 16 pinov označené. Niekedy sa stáva, že 15-16 kontaktných kontaktov, cez ktoré sa vykonáva kontrola podsvietenia, môže byť umiestnená pred prvým (v tomto prípade budú očíslované). Na rovnakom module môže byť prvý kolík tiež označený nie je číslica, ale štvorec okolo samotného kolíka.

Systémy:

Zbierame nasledujúcu schému:

Upozorňujem na nasledujúce body:

  1. Ak máte displej s už spájkovaným I2C modulom, potom drôty označené sivou, nepotrebujú. Inak - Nič sa nezmení.
  2. Ak nechceme zmeniť jas displeja - potom systém zjednoduší:

ako je uvedené, sú za podsvietenie displeja zodpovedné dva kolíky na Module I2C s LED označením. Ak nechcete používať manažment jasu - jednoducho môžu byť zatvorené.

Pozrime sa teraz na kód.

Tu by sme mali byť všetci všetci z nás. V riadku 5 zadajte adresu zariadenia. V riadkoch 16 a 17 - počet znakov v reťazci a počet riadkov. V riadkoch 20-22 - Vytvorte objekt na prácu s displejom a opíšte parameter pracovného priestoru s ním.

Malý útočisko # 2: Ako zistiť adresu zariadenia I2C?

Väčšinu časť je možné adresu zobraziť v datahitíde k čipu, na ktorom je zariadenie I2C postavené. Ak nie je takáto možnosť. Tu je odkaz na archív s náčrtom a schémmi - http://www.ansealk.ru/files/arduino_lcd_i2c.zip, ktorý definuje adresy všetkých zariadení pripojených cez zbernicu I2C. Stačí pripojiť zariadenie na ARDUINO, sťahovať náčrt, otvorte konzolu a pozrite si adresu.

Tu vidíme funkciu, ktorá sa v skutočnosti zaoberá displejom. Princíp výstupu je približne: \\ t

Uvádzame pozíciu štartovacieho výstupu s funkciou SetCursor ()

Tlačíme reťazec pomocou funkcie Print ()

Potom sa nasledujúca tlačová funkcia () začne odobrať z nasledujúcej polohy, po ktorej predchádzajúci vstup skončil. Venujte pozornosť tomu, že na rozdiel od výstupu do konzoly sa funkcia PrintLN () () nepoužíva na dokončenie výstupu a prenosu reťazca.

Na obrazovke sa teda na obrazovke zobrazí "test LCD1602" na obrazovke v prvom riadku a zobrazí sa rozlíšenie displeja a počítadlo, čo ukazuje, koľko cyklov vypracoval náčrt.

Ale ak potrebujeme na obrazovke vydávať mnoho hodnôt premenných, táto metóda nie je úplne pohodlná. Faktom je, že výstupný postup na displeji je veľmi energeticky náročný a pomalý a výstup robíme v tejto funkcii až 7-krát. Bude oveľa jednoduchšie vytvoriť reťazec vopred vopred, a potom ju úplne priniesť. To nám pomôže formátovaný sprintf () vstup ().

Malý útočisko # 3: Formátovaná funkcia Sprintf ().

V jazyku C, existuje niekoľko veľmi vhodných funkcií pre výstupné reťazce - nazývajú sa formátované výstupné funkcie - Printf (zo slov Tlač a formát). V našom konkrétnom prípade máme záujem o funkciu SPRINTF, ktorá sa nezobrazuje nič na obrazovke a vytvára reťazec pre následný výstup. Vyzerá to takto:

sprintf (str, "reťazec% d pre výstup", i);

Funkcia vytvára reťazec (označený modrý) pomocou šablóny (žltej), ktorá je substituovaná premennými (zelenými). Výsledok bude zaznamenaný v premennej reťazci (červená).

Šablóny a premenné môžu byť niekoľko. V tomto prípade sa premenné zaznamenávajú čiarkou. Hlavnou vecou je zabezpečiť, aby počet šablón v reťazci zodpovedal počtu premenných. Premenné pre šablóny sa prijímajú postupne, t.j. Prvý vzor je nahradený hodnotou prvej premennej, v druhej - druhej premennej atď.

Aké sú šablóny? Akákoľvek šablóna začína symbolom "%" a končí jedným z desiatich (v prípade Arduino sedem) symbolov typu. Tam môže byť dosť informácií o tom, ako vydávať hodnotu a nemusí byť indikovaný a nič.

Zaujímalo by ma, čo môže byť v šablóne. Všeobecne platí, že šablóna má tento druh:

% [vlajka] [šírka] [. presnosť]

Najmodernejšie zátvorky ukazujú, že prvok väzňa v nich môže chýbať. Vertikálna funkcia hovorí, že v tejto oblasti by sa mala vybrať jedna zo špecifikovaných hodnôt (v našom prípade jeden z písmen h, i alebo l).

Poďme sa zaoberať povinným prvkom typu šablóny. Označuje, ktorý typ premennej sa zobrazí a môže užívať jednu z nasledujúcich hodnôt:

Symbol Hodnota
c. Jeden znak
s. String symboly
d, I. Celé desatinné s označením
o. Celé oktám
u. Celé desatinné miesto
x, X. Celok Sneceman
p. \\ t Ukazovateľ (v hexadecimálnom)
f. Pevné frakčné číslo
e, E. Frakčné číslo vo vedeckom formáte
g, G. Frakčné číslo vo vedeckom alebo fixnom formáte

Typy, ktoré neplatia pri práci s ARDUINO, sú označené sivou farbou. Preto pre výstup linky musíte zadať "% s", a pre výstup celého čísla - "% D".

Ďalej zvážte pole šírky. Číslo v IT označuje minimálnu šírku poľa, v ktorej sa zobrazí šablóna. Ak je veľkosť hodnoty v premennej nižšia - pole bude navrhnuté medzerami, ak je viac - vstup presahuje pole. Tak, "% 6D" vzor pre číslo 385 vydá 385 (venovať pozornosť tromi priestorom pred číslom).

Presný špecifikátor sa vždy začína od bodu a čísla po indikuje rôzne akcie v závislosti od typu hodnoty. Pre typy "D, O, U, X", ukáže minimálny počet znakov, ktoré by sa mali zobraziť počas spracovania. Pre typ "F" - počet bodkočiariek. Pre typ "S" - maximálny počet znakov, ktoré budú odvodené. Napríklad, "% 6.1F" pre číslo 34.2345 sa stiahne "34.1" (venujte pozornosť, že bod je tiež považovaný za znamenie a budú existovať dva medzery pred číslom). Alebo "% .3s" šablóny z reťazca "presnosť" zobrazí iba prvé tri znaky - "Corp".

Vlajka vám umožňuje zmeniť zobrazenie výstupnej hodnoty:

Podrobnejšie informácie o šablónach funkcie Printf môžete prečítať internet. Tu som dal stručný prehľad najčastejšie používaných funkcií.

Tak, naša výstupná funkcia, prepísaná, s prihliadnutím na použitie formátovaného výstupu, bude vyzerať takto:

Všimnite si, že v riadkoch 33 a 37 tvoria celý reťazec pre výstup a v riadkoch 34 a 38 - berieme ich.

Nakoniec, naše obľúbené funkcie nastavenia a slučky.

V rade 47, nastavujeme rozlíšenie displeja, v riadku 48 - zapnite podsvietenie (ktorých jas môže byť nastavený potenciometrom). V súlade 49 nastavte počítadlo cyklu v nule. Aby sme ho zvýšili, budeme na jednotku v 37. riadku vo výstupu (zapamätajte si gril ++ dizajn?). Nakoniec, v riadku 56, nazývame zváženú funkciu včasnej funkcie. Všetko.

Čo možno zmeniť alebo zlepšiť?

Napríklad môžete vykonať automatické ovládanie podsvietenia v závislosti od osvetlenia, pomocou fotoreresistory alebo svetelného senzora z meteorologických staníc, ktoré sa posudzuje niekoľkými článkami. Predpokladajme, že so silným osvetlením - zvýšiť jas podsvietenia a v noci - na zníženie. Alebo upevniť snímač pohybu a rozsvietiť podsvietenie, keď sa objekt objaví pred displejom, alebo ... Vo všeobecnosti si myslím, že ste už pochopili, že ak si želáte, nahradenie jednej alebo viacerých komponentov a písanie kusu kódu môže byť celkom vážne zlepšili pohodlie práce s displejom. Môžeme ho použiť aj na zobrazenie osobne vyvinutých symbolov.

Nepovažujem všetky tieto otázky, pretože idú nad rámec rozsahu pre začiatočníkov.

A dnes mám všetko.

Arduino. Pripojte displej LCD

26 hodnotení, Priemerné hodnotenie: 5 z 5

LCD ARDUINO displej umožňuje vizuálne zobraziť dáta z senzorov. Povieme vám, ako pripojiť LCD monitor ARDUINO VIA I2C a zvážte základné príkazy inicializácie a manažmentu LCD 1602. Zoberieme aj rôzne funkcie v programovacom jazyku C ++, na zobrazenie textových informácií na displeji, ktorý je Často sa vyžaduje, aby sa používali na projektoch na Arduino.

Video. ARDUINO LCD displej I2C 1602

LCD 1602 I2C Pripojenie k ARDUINO

I2C je sekvenčná dvojvodičová zbernica na komunikáciu integrovaných obvodov vo vnútri elektronických zariadení, známych ako I²c alebo IIC (angličtina. Inter-integrovaný obvod). I²C bol vyvinutý spoločnosťou Philips na začiatku 80-tych rokov, ako jednoduchý 8-bitový autobus na internú komunikáciu medzi schémami v kontrolnej elektronike (napríklad v počítačoch na základných doskách, mobilných telefónov atď.).

V jednoduchom systéme I²C môže byť niekoľko otrokov a jedno hlavné zariadenie, ktoré iniciuje prenos dát a synchronizuje signál. SDA a SCL (Synchronizačné linky) môžu byť pripojené k viacerým otrokovým zariadeniam. Často je popredným zariadením Arduino regulátor a poháňané zariadenia: hodiny v reálnom čase alebo LCD displej.

Ako pripojiť LCD 1602 do Arduino cez I2C

Displej s tekutými kryštálmi 1602 s modulom I2C je pripojený k doske Arduino s iba 4 vodičmi - 2 dátovými vodičmi a 2 podávacími vodičmi. Zobrazenie pripojenia 1602 sa vykonáva štandard pre pneumatiku I2C: výstup SDA Pripojuje k portu A4, výstup SCL. - do prístavu A5. LCD displeje sú napájané portom + 5V na Arduino. Ďalšie podrobnosti Pripojenie LCD monitora 1602 na fotografii nižšie.

Pre triedy potrebujeme tieto údaje:

  • aRDUINO UNO / ARDUINO NANO / ARDUINO MEGA Poplatok;
  • LCD monitor 1602;
  • 4 drôty "DAD-MOM".

Po pripojení LCD monitora na ARDUINO VIA I2C budete musieť nainštalovať knižnicu Likvidlcrystal_i2c.h. Pracovať s displejom LCD cez rozhranie I2C a knižnicu Drôt.h. (Existuje štandardný program ARDUINO IDE). Pracovná knižnica LiquidCrystal_i2c.h môžete prevziať pre LCD 1602 s modulom I2C na stránke knižnice pre ARDUINO na našich webových stránkach pre priamy odkaz z Drive Google.

Náčrt pre zobrazenie 1602 s I2C

#Include. // i2c zariadenia na správu zariadení #Include. // Pripojte knižnicu pre LCD 1602 LIKVETYSTALSTAL_I2C LCD (0x27,20,2); // Priraďte názov LCD na displeji 20x2 POTREBNÝ POUŽÍVAŤ POTREBU () // Nastavenie (LCD.Init (); // inicializácia LCD LCD.BAPPORT (); // zapnutie podsvietenia displeja LCD.SETCURSOR (0,0); // Dajte kurzor na symbol prvého riadku LCD.Print ("I Love"); // Vytlačte správu na prvý riadok LCD.SETCURSOR (0,1); // Dajte kurzor na 1 symbol druhého riadku LCD.Print ("Arduino"); // vytlačiť správu na druhom riadku ) Void Loop () // Loop Postup ( / * Toto je multi-line komentáre. // Spočiatku, LCD.NOPPLAY () sa nepoužíva procedúra LCD.NOPPLAY () v náčrte. // Vypnite oneskorenie displeja LCD (500); // Dajte pauzu LCD.display (); // Zapnite oneskorenie zobrazenia podsvietenia LCD (500); // Dajte pauzu * / }

Vysvetlenie kódu:

  1. libraryCrystal_i2c.h Knižnica obsahuje viac príkazov na ovládanie LCD displeja cez autobus I²c a umožňuje výrazne zjednodušiť náčrt;
  2. skatch obsahuje viac-line komentár / * ... * /, ktorý vám umožní komentovať niekoľko riadkov v programe naraz.
  3. pred zobrazením informácií na displeji musíte zadať polohu kurzora s príkazom SetCursor (0,1), kde 0 je číslo znaku v reťazci, 1 - číslo riadku.

V lekcii poďme hovoriť o signálnych indikátoroch tekutých kryštálov, o ich pripojenie k arduino doske a kontrolné indikátory s použitím likvidných knižníc a kvapalínkrystalrus.

LED sedem indikátorov, aj keď sú najlacnejšie možnosti displeja pre elektronické zariadenia, ale ich použitie je obmedzené na dve významné nevýhody.

  • Je prakticky ťažké pripojiť sa k mikrokontrolérnemu viac ako 8 číslici LED indikátorov. Vyžaduje sa veľký počet záverov, významné ukazovatelné prúdy, komplexné kľúče, nízku frekvenciu regenerácie atď.
  • Nie je možné zobraziť symbolické informácie o siedmich indikátoroch.

Ak chcete zobraziť textové informácie alebo čísla, viac ako 4 vypúšťanie je oveľa praktickejšie na používanie syntetizujúcich indikátorov tekutých kryštálov (displejov). Tieto výhody by sa mali pripísať:

  • pohodlné pripojenie k rozhraniu mikrokontrolérov;
  • malá spotreba energie;
  • nízke napájacie napätie;
  • trvanlivosť.

Existuje veľké množstvo rôznych ukazovateľov tekutých kryštálov (LCD) rôznych výrobcov na trhu. Takmer všetky z nich sú podobné parametrom, signálmi rozhrania, príkazov ovládania. V súčasnosti sú najbežnejšie ukazovatele LCD na ruskom trhu zariadenia, ktoré vyrába Winstar, Taiwan. Budem odkazovať na ukazovatele tejto spoločnosti. Ale informácie sú tiež použiteľné pre symbolické LCD displejy iných výrobcov.

Všeobecne.

Sign-syntetizujúce alebo symbolické indikátory zobrazujú informácie ako známym určitým bitom. Jedna zoznámenie sa zobrazí jeden znak. Počet známych určuje vypúšťanie indikátora. Informácie o indikátoroch môžu byť zobrazené na niekoľkých riadkoch, takže počet znakov v reťazci a počet riadkov vždy označujú indikátory tohto typu.

Zobrazenie informácií sa vyskytuje na matrici kvapalného kryštálu s LED podsvietením. Podsvietenie je z rôznych farieb, ktoré výrazne oživuje monochromatické textové informácie.

Na ovládanie matrice s tekutými kryštálmi a organizáciu rozhrania indikátora sa používa vstavaný regulátor HD44780 alebo jeho kompletné náprotivky. Tento regulátor určuje signály indikátora a príkazy kontroly.

HD44780 sa stal de facto štandard pre symbolické displejky tekutých kryštálov (LCD). Technická dokumentácia pre regulátor HD44780 vo formáte PDF je možné zobraziť na tomto odkaze. Možno niekto bude mať rád dokumentáciu jedného z analógov tohto regulátora - Splc780D. Odkaz vo formáte PDF -.

Winstar symbolické LCD indikátory.

Poznám nasledujúce možnosti pre LCD indikátory tejto spoločnosti.

Typ indikátora Formát zobrazenia, symboly X reťazce Gabarity, mm. Rozmery viditeľnej oblasti, mm Odkaz na dokumentáciu, formát PDF
WH0802A1 8 x 2. 58 x 32. 38 x 16.
WH1202A. 12 x 2. 55,7 x 32. 46 x 14,5
WH1601A. 16 x 1. 80 x 36. 66 x 16.
WH1601B. 16 x 1. 85 x 28. 66 x 16.
WH1601L 16 x 1. 122 x 33. 99 x 13.
WH1602A. 16 x 2. 84 x 44. 66 x 16.
WH1602B. 16 x 2. 80 x 36. 66 x 16.
WH1602C. 16 x 2. 80 x 36. 66 x 16.
WH1602D. 16 x 2. 85 x 30. 66 x 16.
WH1602J. 16 x 2. 80 x 36. 66 x 16.
WH1602L1. 16 x 2. 122 x 44. 99 x 24.
WH1602m. 16 x 2. 85 x 32,6. 66 x 16.
WH1602O. 16 x 2. 85 x 25,2. 66 x 16.
WH1602P. 16 x 2. 85 x 25,2. 66 x 16.
WH1602s. 16 x 2. 59 x 29.3. 52 x 15.
WH1602T. 16 x 2. 65,4 x 28.2. 54,8 x 19.
WH1602W. 16 x 2. 80 x 36. 66 x 16.
WH1602v2. 16 x 2. 66,7 x 23,3. 61 x 15.9
WH1604A. 16 x 4. 87 x 60. 62 x 26.
WH1604B. 16 x 4. 70,6 x 60. 60 x 32,6.
WHO2002A. 20 x 2. 116 x 37. 85 x 18,6.
WHO2002D. 20 x 2. 89 x 21,5 75 x 15.
WHO2002L 20 x 2. 180 x 40. 149 x 23.
WHO2002M. 20 x 2. 146 x 43. 123 x 23.
WhOb.2004A. 20 x 4. 98 x 60. 77 x 25,2.
WHO2004B. 20 x 4. 98 x 60. 77 x 25,2.
WhOb.2004d. 20 x 4. 77 x 47. 60 x 22.
WHO2004G. 20 x 4. 87 x 58. 74,4 x 24.8.
WHO2004H 20 x 4. 87 x 58. 74,4 x 24.8.
WHO2004L 20 x 4. 146 x 62.5 123,5 x 43.
WH2402A. 24 x 2. 118 x 36. 94,5 x 16.
WH4002A. 40 x 2. 182 x 33,5 154,4 x 16,5
WH4004A. 40 x 4. 190 x 54. 147 x 29,5.

Pripojenie indikátora LCD k mikrokontroléru.

Schémy pripojenia, dočasné grafy, nastavenia signálu, riadiace príkazy, znakové kódy sú podrobne opísané v dokumentácii pre regulátor HD44780. Uverejujem len tie najbezpečnejšie údaje o pripojení indikátorov na mikrokontroléry.

Ukazovatele LCD spravidla majú 16 záverov.

Číslo výstupu Signál I - Vstup O - EXIT Priradenie signálu
1 Vss. - Zem (zdieľaný drôt)
2 VDD. - FOOD + 5 V
3 VO. - Zobrazenie správy kontrastu. Vstup pre pripojenie priemerného výstupu rozdeľovača napätia + 5 V. Môžete použiť časový rezistor s odporom 10-20 com.
4 Rs. I. Registrácia Výber: 0 - Príkazový register; 1 - Register dát. Nízka úroveň signálu znamená, že na dátovom zbernici je vytvorený príkaz, vysoká úroveň na dátovom zbernici.
5 R / w. I. Smer prenosu dát:

0 - nahrávanie;

1 - čítanie.

V mnohých aplikáciách sa funkcia čítania nepoužíva, takže signál je často pripojený k zemi.

6 E. I. Operácie pneumatiky Strobe (na negatívnom prednej strane).
7 Db0. I / O. Mladšie bity osem bitového režimu. So štyrmi bitovými rozhraním sa nepoužívajú.
8 Db1 I / O.
9 DB2. I / O.
10 DB3. I / O.
11 DB4. I / O. Staršie bity ôsmich bitového režimu alebo dátových bitov štyroch bitových rozhraní.
12 Db5 I / O.
13 DB6. I / O.
14 DB7 I / O.
15 A. - ANODE POWER SIBLOSTI (+).
16 K. - Katóda podsvietenia (-). Súčasný musí byť obmedzený.

Výstupné číslo (prvý stĺpec) je uvedený na najbežnejšiu možnosť. Lepšie Skontrolujte prevzatím dokumentácie pre váš typ indikátora z tabuľky predchádzajúcej časti.

Symbolické LCD displeji podporujú dva možnosti pripojenia mikrokontroléra:

  • Pomocou 8-bitovej dátovej zbernice. Všetky signály pneumatiky DB0-DB7 sú pripojené. Informácie Byte sa prenášajú v jednom výmennom cykle.
  • Pomocou 4-bitovej dátovej zbernice. Sú pripojené iba 4 senior DB4-DB7. Informácie sa prenášajú štyri bity na takt.

Prvá možnosť poskytuje prenos dát na displej s vyššou rýchlosťou. Druhá je potrebná na pripojenie indikátora pre 4 výstupy menej. Nepochybne je dôležitejšie znížiť počet záverov na pripojenie, než aby sa zvýšil výmenný kurz. Okrem toho ukazovatele LCD sú pomerne pomalé zariadenia s časom regenerácie 10-20 ms.

Pripojenie symbolického zobrazenia LCD (LCD) na dosku ARDUINO.

Budem pripojiť indikátor WH2004A (4 riadky 20 znakov) v štyroch bitovom výmennom režime na dosku ARDUINO UNO R3. LCD DOKUMENTÁCIA WHO2004 Displej môžete zobraziť na tomto odkaze.

Schéma vyzerá takto.

Resistory R2 a R3 definujú kontrast indikátora. Môžete pripojiť rezistor orezania a nastaviť potrebnú čistotu obrazu. Často používam indikátory WHO2004 a vo vašich schémach som si vybral takéto sadzby odporov.

Indikátor osvetlenia LED I pripojený k zdroju napájania 5 V cez odpor R1 (30 ohmov). Toto som sa spýtal prúdu asi 25 mA. Dull, ale svieti. Tmavé ukazuje dobre. Hoci indikátory WH2004 umožňujú podsvietenie prúdu až 580 mA.

Indikátory riadiacej knižnice LCD v systéme ARDUINO SYSTEM LIKVETYSTULOSTI.

K dispozícii je štandardná knižnica na ovládanie indikátorov LCD na základe regulátora HD44780. Podrobne popíšem svoje metódy.

Likvidizácia (...)

Class Designer. Môže mať iný počet argumentov.

  • Likvidná (Rs, EN, D4, D5, D6, D7) - štvor-bitové rozhranie, RW signál sa nepoužíva (pripojený k Zemi).
  • Likvidná (Rs, RW, EN, D4, D5, D6, D7) - ŠTVROČNÚ BIT Rozhranie, RW Signal sa používa.
  • Likvidná (RS, EN, D0, D1, D2, D3, D4, D0, D1, D7) - Osem bitové rozhranie, RW signál sa nepoužíva (pripojený k Zemi).
  • Likvidná (Rs, RW, EN, D0, D1, D2, D3, D4, D5, D6, D7) - Osem bitové rozhranie, RW signál sa používa.

ARGUMENTY:

  • Číslo výstupu RS - RS;
  • rW - RW Výstupné číslo signálu;
  • - číslo výstupu signálu E;
  • d0, D1, D2, D3, D4, D5, D6, D7 - DATA BOZPEČNOSTI.

Likvidný DISP (6, 7, 2, 3, 4, 5);

začiatok (Cols, ROLS)

Inicializuje rozhrania indikátora. Určuje rozmer indikátora. Metóda sa musí najprv požadovať, aby sa používali iné funkcie triedy.

ARGUMENTY:

  • cols - počet znakov v reťazci;
  • riadky - počet riadkov.

disp.begin (20, 4); // použite displej - 4 riadky 20 znakov

prázdne jasné ()

Čistenie obrazovky, inštalácia kurzora do ľavého rohu.

disp.clear (); // Zobrazí sa

domov ()

Inštalácia kurzora do ľavého rohu.

disp.home (); // Späť na začiatok obrazovky

void Setcursor (Col, Row)

Nastaví kurzor na zadanú pozíciu.

  • cOL - X súradnicu, číslovanie s 0;
  • riadok - y koordinácia, číslovanie od 0.

setcursor (0,1); // kurzora na začiatok druhého riadku

byte Write (dáta)

Zobrazí symbol na obrazovke. Vracia počet prechádzajúcich bajtov.

Nasledujúce kúzlo zobrazuje údaje zo sériového portu. Údaje môžu byť prevedené monitorom ARDUINO IDE.

// záver údajov sériového portu na LCD indikátor
#Include.


charové údaje;

void Setup ()
{
Serial.begin (9600); // inicializácia sekvenčného portu
Disp.begin (20, 4); //
}

vOID LOOP ()
{
ak (serial.available ()) (// ak existujú údaje
DATA \u003d SERIAL.READ (); // Prečítajte si symbol
Ak (((údaje! \u003d 0xd) && (dáta! \u003d 0xa)) (// Prenos riadkov
Disp.write (dáta); // zobrazte symbol na obrazovke
}
}
}

Mám veľký indikátor - 4 riadky 20 znakov. Má nainštalovaný dva regulátory HD44780. Preto sú konzistentne prenášané znaky naplnené prvé prvé línie, potom tretí, potom druhá a štvrtá. Tí. Cez reťazec. Je potrebné zohľadniť túto vlastnosť pre určité typy ukazovateľov. V dokumentácii pre každú LCD displeji indikátor označuje sekvenciu oslovovacích znakov.

bajt Print (dáta)

Zobrazí text text. Vracia počet prechádzajúcich bajtov.

ARGUMENTY:

Údaje - údaje na zobrazenie na obrazovke. Starostlivosť o char, Bajt, Int, dlhý, reťazec.

Možno druhý voliteľný argument.

bajt Print (dáta, základňa)

  • Základňa - Určuje systém počítača:
  • Bin - binárne;
  • Dec-desatinné;
  • OCT-OCTAL:
  • Hex - hexadecimálny.

Príklad programu Program na textovom reťazci displeja.

// textový reťazec na LCD indikátor
#Include.

Likvidný DISP (6, 7, 2, 3, 4, 5); // Vytvorte objekt

void Setup ()
{
Disp.begin (20, 4); // inicializujte zobrazenie 4 riadky pre 20 znakov
Disp.Print ("testovací reťazec");
}

vOID LOOP ()
{ }

neplatný kurzor ()

Obsahuje režim zobrazenia kurzora. Pozícia, ak sa zobrazí nasledujúci znak.

disp.cursor (); // umožnite mapovanie kurzora

void Nocursor ()

Zakazuje zobrazenie kurzora.

disp.crocursor (); // zakázať mapovanie kurzora

neplatné blikanie ()

Zahŕňa režim blikajúceho kurzora. V spojení s funkciou kurzora (). Výsledok závisí od konkrétneho modelu indikátora.

dPH.BLINK (); // povoliť blikajúci kurzor

void NobLink ()

Zakáže režim blikajúceho kurzora.

disp.nObLink (); // zakázať blikajúci kurzor

displej ()

Obsahuje obrazovku po tom, čo bola vypnutá funkcia NODISPLAY (). Obrazovka zobrazuje informácie, ktoré boli vypnuté.

dPH.DISPLAY (); // zapnite displej

vIDY NODISPLAY ()

Vypne obrazovku. Informácie sa ukladajú do pamäte a zobrazí sa, keď je displej zapnutý.

disp.Nodisplay (); // vypnutie displeja

void ScrollDisplayleft ()

Posúva obsah displeja na jednom symbolu doľava.

dISP. Scrolldisplayleft (); // posunume všetko, čo zostalo

void ScrollDisplayright ()

Posúva obsah displeja na jeden znak doprava.

dISP. Scrolldisplayright (); // zaplatenie všetkého vpravo

void Autoscroll ()

Povoliť automatické posúvanie textu. Pri zobrazení každého znaku sa všetok text na obrazovke presunie na jeden znak. V ktorom smere sa informácie posunujú, definujú funkcie ľavostranného () a pravostreného ().

dISP. Automatické posúvanie () (); // zapnite automatickú zmluvu

vOUND NOAUTOSCROLL ()

Vypnutie automatického posúvania textu.

dISP. noutoscroll () (); // zakázať auto-zmluvu

void REASTRIGHT ()

Určuje skúšobný režim zľava doprava. Nové znaky sa zobrazia vpravo od predchádzajúcich.

zľava doprava (); // režim zľava doprava

vOID RIGHTTROLEFT ()

Určuje skúšobný režim testu vľavo. Nové znaky sa zobrazia vľavo od predchádzajúcich.

zprava doľava (); // režim vpravo

void CreateChar (NUM, DATA)

Metóda vytvárania symbolu používateľa. Regulátor vám umožňuje vytvoriť až 8 znakov (0 ... 7) 5x8 pixelov. Obraz symbolu je nastavený rozmerom poľa 8 bajtov. 5 mladších bitov každého bajtu určujú stav pixelového reťazca.

Ak chcete zobraziť znak používateľa, môžete použiť funkciu zápisu () s číslom znaku.

// vytvorenie vlastného symbolu
#Include.

Likvidný DISP (6, 7, 2, 3, 4, 5); // Vytvorte objekt

byte Smile \u003d (
B00000000,
B00010001,
B00000000,
B00000000,
B00010001,
B00001110,
B00000000,
B00000000.
};

void Setup ()
{
Disp.createAchar (0, úsmev); // Vytvorte symbol
Disp.begin (20, 4); // inicializujte zobrazenie 4 riadky pre 20 znakov
Disp.Print ("úsmev");
Disp.write (bajt (0)); // symbol zobrazenia
}

vOID LOOP ()
{ }

Tu je príklad programu, ktorý zobrazuje ruskú abecedu.

// stiahnutie ruskej abecedy
#Include.

Likvidné DISP (6, 7, 2, 3, 4, 5); // Vytvorte objekt

void Setup ()
{
Disp.begin (20, 4); // inicializujte zobrazenie 4 riadky pre 20 znakov
DEPP.PRINT ("ABVGDEZHZIYLMNOPRST");
DEPP.PRINT ("ABVGDEZHZIYLMNOPRST");
Disp.Print ("Ufhazchchsyyuyuya");

RUBRIC :. Môžete pridať do záložiek.

LCD 1602 displeje vytvorené na základe regulátora HD44780, v týchto dňoch stále zostávajú medzi najprístupnejšie, jednoduché a dopytom na rozvoj akýchkoľvek elektronických zariadení. Nie je prekvapujúce, že ich možno vidieť v jednoduchom, zhromaždení doslovne na kolenom agregátov a závažnejších priemyselných, ako sú stroje na výrobu kávy. Je to u takýmto displejom, že najobľúbenejšie moduly a štíty sú zostavené ARDUINO, ako je napríklad Modul LCD I2C a štít LCD klávesnice.

Tento článok podrobne popisuje s obrázkami, ako pripojiť LCD na ARDUINO a zobrazovať informácie.

Zobrazí 1602 dve rôzne verzie:

Žlté podsvietenie s čiernymi písmenami
- Buď (to sa stane oveľa viac) modré osvetlenie s bielym.

Rozmer displeja na regulátore HD44780 je najviac odlišný a sú kontrolované rovnako. Najbežnejšie rozmery - 16 až 02 (to znamená 16 znakov v dvoch riadkoch) alebo 20 až 04. Znaky sami majú rozlíšenie 5 na 8 bodov.

Väčšina displejov nepodporuje Cyrillic (s výnimkou displejov CTK-značenie). Takýto problém je však čiastočne vyriešený, a potom článok to podrobne rozpráva, ako to urobiť.

Displej má 16-pinový konektor na pripojenie. Závery majú označenie na zadnej strane dosky, je to nasledovné:

1 (vss) - poháňaný mínus pre regulátor.
2 (VDD) - napájaný plus pre regulátor.
3 (VO) - Nastavenia kontrastu.
4 (RS) - výber pre register.
5 (R / W) - Čítanie a nahrávanie, najmä nahrávanie pri pripojení k Zemi.
6 (e) - Aktivácia (ENABE).
7-10 (DB0-DB3) - mladšie bity z osem-bitového rozhrania.
11-14 (DB4-DB7) - Senior Bity z rozhrania
15 (a) - pozitívna anóda na výkon podsvietenia.
16 (K) - negatívna katóda na výkon podsvietenia.

Krok 2: Pripojte displej LCD

Pred pripojením displeja a prenášame informácie, stojí za to skontrolovať jeho výkon. Najprv aplikujte napätie do VSS a ovládača VDD, napíšte podsvietenie (A, K), potom nastavte kontrast. Pre takéto nastavenia nie je potenciometer s 10 com, jeho forma nie je dôležitá. Je naplnený + 5V a GND na extrémne nohy, a noha v strede je pripojená k výstupu.

Keď je napájanie dodávané do schémy, musíte dosiahnuť požadovaný kontrast, ak je nakonfigurovaný nesprávne, potom obraz na obrazovke nebude viditeľný. Ak chcete prispôsobiť kontrast, potrebujete "hrať" s potenciometrom. Keď sa schéma zhromažďuje správne a kontrast je správne nakonfigurovaný, horný riadok na obrazovke by mal byť naplnený obdĺžnikmi.

Aby sa na displeji mohli pracovať, je v Arduino IDE postavená špeciálna knižnica Liquidcrystal.h, ktorý píšem. Môže pôsobiť v 8-bitovom a 4-bitovom režime. V prvej verzii sa používajú iba mladšie a staršie bity (BB0-DB7), v druhom mladšom (BB4-DB7).

Použitie 8-bitového režimu v tomto displeji je však nesprávny roztok, je takmer žiadna výhoda v rýchlosti, pretože frekvencia aktualizácie je vždy kratšia ako 10-krát za sekundu. Ak chcete zobraziť text, musíte pripojiť závery DB7, DB6, DB5, DB4, E a RS do výstupov regulátora. Pripojte ich prípustné na akékoľvek Arduino Pins, hlavná vec je určiť správnu sekvenciu v kóde.

Ak požadovaný symbol ešte nie je v pamäti regulátora, môžete ho určiť manuálne (len až sedem znakov). Bunka v posudzovanej displeji má predĺženie piatich až osem bodov. Úlohou vytvárania symbolu je napísať bitovú masku a umiestniť jeden na miestach, kde by mali byť body, a Zoliki - kde by nemali.

Vyššie uvedená schéma pripojenia nie je vždy dobrá, pretože ARDUINO má minimálne šesť digitálnych výstupov.

Krok 3: Bypass

Študujeme možnosť, ako sa dostať okolo seba a robiť len dve. Potrebujete rozšírený modul-konvertor pre LCD v IIC / I2C. Ako sa valí na displej a pripojí Arduino, môžete vidieť na obrázkoch nižšie.

Ale toto spojenie je platné len so špeciálnou knižnicou Liquidcrystal_i2C1602v1, ktorá je však jednoduchá nájsť v sieti a nainštalovať, potom, čo je možné ho používať bez problémov.

Krok 4: LiquidCrystal.h knižnica

LibraryCrystal.h knižnica si môžete stiahnuť z oficiálneho zdroja. Môžete tiež prevziať odkazy nižšie:

Skica

Potom, čo ste si stiahli archív, vymeňte likvidný priečinok v priečinku s knižnicami vášho inštalačného adresára ARDUINO.

Môžete vidieť príkladný náčrt Súbor -\u003e Príklady -\u003e Likvidizácia -\u003e HelloWorld_sPI (Súbor -\u003e príklady -\u003e likvidnécrystal -\u003e helloworld_sPI).

Na tejto stránke je dokončená naša ďalšia lekcia. Prajeme Vám vysoko kvalitné projekty!

Ako vytvoriť priateľov Arduino Board so symbolickým displejom? Pekne len! Nižšie a podrobnosťami.

Ak existuje túžba prijímať informácie z ARDUINO bez pripojenia k počítaču a výstupu na sériový port, môžete použiť zobrazenie symbolu. Nie je tak ťažké. Výsledné pohodlie komunikácie je neoceniteľné.
Ak chcete pracovať, som použil symbol LCD displej J204A na základe čipu HD44780, na eBay sa často vyskytuje ako LCD2004. 4 Riadky 20 znakov prevrátených. Zakúpené s partiou iných na eBay, pre spevák Penny, od 60 do 100 rubľov na kus. Ruský jazyk nie je štandardne podporovaný, ale toto je vyriešený problém, o tom nejako nabudúce. A stále konektory v diagrame nie sú vysadené, budete musieť pracovať ako spájkovacia žehlička.
Knižnica sa používa na prácu s displejmi Likvidystal.h. V predvolenom mieste Arduino IDE.

Ale nenašiel som Datashitis na displeji LCD2004, ale je plný plných tabuliek na internete. Ale prakticky sa nelíšia od seba. Kontrola a pripojená je úplne identická. Rozdiel len v počte riadkov / znakov na displeji. Ale to nebude mať vplyv na to, ak máte 1602.

Tabuľka definuje všetky kontakty. Ak sa zobrazí displej a otočíte sa k sebe, kontakty budú umiestnené doľava doprava, resp. Toska ide na zvýšenie čísla. V stĺpci, kontakty v zátvorkách označujú označenie v liste.

# Kontakty Pre to, čo sa používa Poznámka
1 Vss (vss) GND. Pôda. Zobrazenie mikrokontroléra. 0V.
2 VDD (VCC) Napájanie pre displej mikrokontrolérov. + 5V.
3 V0 (vee) Kontrastné znaky na displeji. Zlepšite sa lepšie cez potenciometer. od 0V do + 5V
4 Rs (Rs) Vyberte register.
5 RW (R / W) Prepínanie režimu čítania / zápisu. Berieme na zem, potrebujeme prenášať informácie na displeji. 0 Record + 5V čítanie
6 E. Cestovný lístok
7 D0 (DB0) Dáta
8 D1 (DB1) Prenos dát. (Nepoužívajte) Dáta
9 D2 (DB2) Prenos dát. (Nepoužívajte) Dáta
10 D3 (DB3) Prenos dát. (Nepoužívajte) Dáta
11 D4 (DB4) Dáta
12 D5 (DB5) Prenos dát. (Aktivované) Dáta
13 D6 (DB6) Prenos dát. (Aktivované) Dáta
14 D7 (DB7) Prenos dát. (Aktivované) Dáta
15 A (LED +) + 5V Napätie, podsvietenie displeja cez potenciometer môžete nastaviť jas displeja. + 5V.
16 K (LED-) GND Zem, Displej podsvietenia 0V.

v.

Prenos dát na displeji je možný v dvoch verziách: 8 a 4 bity na takt. Pretože ARDUINO má niekoľko kontaktov, budeme používať 4 - to je viac ako dosť na aktualizáciu informácií na displeji s rýchlosťou prebiehateľnou rýchlosťou.

Takto je to so mnou spojené všetku túto vec. Možno sa zdá, že je to chaos, ale je tu systém. Môžete zvýrazniť červené, zelené, žlté a oranžové drôty. Reds vždy prejdite na + 5V, zelené - GND a žlté a oranžové sú vodiče na pripojenie k Arduino, pre ktoré údaje ide.

Najdôležitejšou časťou je fyzické zobrazenie displeja. Kliknite na tlačidlo Otvorí sa vo veľkom rozlíšení, kde je všetko jasne viditeľné.
R1 - rezistor 200m. Odolnosť obmedzuje prúdenie prúdu cez podsvietenie displeja.
R2 je potenciometer s odporom až 10kom. Katim Rukoväť, vyberte kontrastné znaky.


A extrémne jednoduchý náčrt, na zobrazenie párov reťazcov.

H\u003e // Pripojte knižnicu na prácu s displejom. / * Príkaz LIKVETYSTAL LCD (RS, POVOLENIE, D4, D5, D6, D7); Vytvorte premennú typu kvapaliny a určiť, prostredníctvom ktorého kontakty ARDUINO pracuje s displejom. Viac o tomto tíme tu http://arduino.cc/en/Reference/liquidcrystalconstructor * / likvidlcrystal LCD (6, 7, 8, 9, 10, 11); Void Setup () (LCD.BEGIN (20, 4); // Určite charakteristiky displeja (20 znakov v reťazci, 4 riadkoch) // Pre zobrazenie 1602, musíte zadať LCD.begin (16, 2); LCD.SetCursor (1, 1); // Uveďte, z ktorej pozície spustíte zobrazenie textu. Riadky a symboly začínajú s 0 !!! // 1 už presuniete vozík na jednu divíziu od začiatku obrazovky a posuňte text na jeden riadok pod LCD.Print ("combblog.Vlukyanov"); // Zobrazenie textu zo zadanej polohy. LCD.SetCursor (7, 2); // Displej z 8. znaku na obrazovke v treťom riadku. LCD. Tlač (". COM"); // Text pre výstup.) Void Loop () (// v cykle, už nie je všetko, čo už bolo vykonané počas inicializácie dosky.)

Výsledok. Ak viete, ako to všetko pripája a ako napísať kód, potom všetka práca je 5 minút.

Displej môže tiež vykonať niektoré funkcie nezávisle a existuje aj schopnosť nastaviť niektoré parametre.

Napríklad:

  • Písať text;
  • Blikajúca poloha kurzora;
  • Zapnite / vypnite.

A teraz bonus!
Podsvietenie displeja trávi energiu, ktorá, keď napríklad výživa z batérie, chcela by som ušetriť. Urobil som túto možnosť pre seba - keď stlačíte tlačidlo, podsvietenie displeja sa zapne na 5 sekúnd.

H\u003e // Pripojte knižnicu na prácu s displejom. Int gombík \u003d 0; // Interuct číslo, ktoré sa nazýva. Int screenled \u003d 4; // číslo Pina, na ktoré je obrazovka pripojená. + 5V prchavé dlhé x \u003d 5000; // premenlivá pre skladovanie času Likvidizáciou LCD (6, 7, 8, 9, 10, 11); Nastavenie nepoužitého () (pritiahneTetrupt, padajúce, // lcd.begin Prerušenie nastavení (20, 4); pinmode (screenled, výstup); LCD.Print ("Spustiť test screenon!");) // funkcia, ktorá sa vykoná, keď stlačíte tlačidlo. Nepoužiteľné screenon () (x \u003d Millis () + 5000; // Zabudnite čas, keď potrebujete vypnúť podsvietenie. Aktuálny čas prevádzky je +5 sekúnd. podsvietenie displeja.) Void Loop () (LCD.SetCursor (0, 2); // Prejdite na tretí riadok LCD.Print (X); // a zobrazí čas, keď sa displej zobrazí LCD.SetCursor (0, 3); // prejdite na štvrtý linka LCD.Print (MILLIS ()); // Tlač aktuálnej operácie, ak (x< millis()) // если время работы выключения наступило > (Digitalwrite (scledované, nízke); // potom displej GAENIM))

A výsledok: