Výcvikový kurz. Pripojenie lcd k mikrokontroléru. Získanie prvých výsledkov. Charakter LCD a Arduino

  • 01.09.2019

1602 LCD displeje, založené na ovládači HD44780, sú jedným z najjednoduchších, najdostupnejších a najobľúbenejších displejov pre vývoj rôznych elektronických zariadení. Nachádza sa ako v zariadeniach namontovaných na kolenách, tak aj v priemyselných zariadeniach, ako sú napríklad kávovary. Na základe tohto displeja sú najobľúbenejšie moduly a štíty s tematikou Arduina, ako sú a.

V tomto článku vám povieme, ako ho pripojiť k Arduinu a zobraziť informácie.

Použité komponenty (kúpiť z Číny):

. riadiace panel

. Spojovacie vodiče

Tieto displeje sú dostupné v dvoch verziách: žlté podsvietenie s čiernymi písmenami alebo bežnejšie modré podsvietenie s bielymi písmenami.

Rozmery displejov na ovládači HD44780 môžu byť rôzne, ovládať sa budú rovnako. Najbežnejšie rozmery sú 16x02 (t.j. 16 znakov v dvoch riadkoch) alebo 20x04. Rozlíšenie samotných postáv je 5x8 pixelov.

Väčšina displejov nemá podporu azbuky, majú ju len displeje s označením CTK. Tento problém sa však môže pokúsiť čiastočne vyriešiť (pokračovanie v článku).

Zobrazovacie kolíky:

Displej má na pripojenie 16pinový konektor. Kolíky sú označené na zadnej strane dosky.

1 (VSS) - Napájanie ovládača (-)
2 (VDD) - Napájanie ovládača (+)
3 (VO) - Výstup kontroly kontrastu
4 (RS) - Výber registra
5 (R/W) - Čítanie/Zápis (režim zápisu pri pripojení k zemi)
6 (E) - Povoliť (klesajúci blesk)
7-10 (DB0-DB3) - LSB 8-bitového rozhrania
11-14 (DB4-DB7) - Vysoké bity rozhrania
15 (A) - Anódový (+) výkon podsvietenia
16 (K) - Výkon podsvietenia katódy (-).

Režim autotestu:

Pred pokusom o pripojenie a výstup informácií by bolo dobré vedieť, či displej funguje alebo nie. Aby ste to dosiahli, musíte na samotný ovládač priviesť napätie ( VSS a VDD), zapnite podsvietenie ( A a K) a upravte kontrast.

Na nastavenie kontrastu použite potenciometer 10 kΩ. Čo to bude vo forme - na tom nezáleží. Na krajné nohy sa privádza +5V a GND, centrálna noha je pripojená k výstupu VO

Po privedení napájania do obvodu je potrebné dosiahnuť správny kontrast, ak nie je správne nastavený, tak sa na obrazovke nič nezobrazí. Ak chcete nastaviť kontrast, mali by ste sa pohrať s potenciometrom.

Pri správnom zostavení obvodu a správnom nastavení kontrastu by mal byť horný riadok na obrazovke vyplnený obdĺžnikmi.

Výstup informácií:

Displej využíva knižnicu LiquidCrystal.h zabudovanú do prostredia Arduino IDE.

Funkcionalita knižnice

//Práca s kurzorom lcd.setCursor(0, 0); // Nastavte kurzor (číslo bunky, riadok) lcd.home(); // Nastaviť kurzor na nulu (0, 0) lcd.cursor(); // Povoliť viditeľnosť kurzora (podčiarknuté) lcd.noCursor(); // Odstránenie viditeľnosti kurzora (podčiarknutie) lcd.blink(); // Povoliť blikanie kurzora (kurzor 5x8) lcd.noBlink(); // Vypnutie blikania kurzora (kurzor 5x8) //Výstup informácií lcd.print("stránka"); // Výstup informácií lcd.clear(); // Vymazať displej, (vymazať všetky údaje) nastaviť kurzor na nulu lcd.rightToLeft(); // Zápis sa vykonáva sprava doľava lcd.leftToRight(); // Zápis sa vykonáva zľava doprava lcd.scrollDisplayRight(); // Posunie všetko na displeji o jeden znak doprava lcd.scrollDisplayLeft(); // Posunie všetko na displeji o jeden znak doľava //Informácie užitočné pre špiónov :) lcd.noDisplay(); // Informácie na displeji sa stanú neviditeľnými, údaje sa nevymažú // ak v momente, keď je táto funkcia aktívna, nič nezobrazovať, tak displej LCD(); // Pri volaní funkcie display() displej obnoví všetky informácie, ktoré boli

Samotný displej môže pracovať v dvoch režimoch:

8-bitový režim – na tento účel sa používajú nízke aj vysoké bity (BB0-DB7)

4-bitový režim – na tento účel sa používajú iba najmenej významné bity (BB4-DB7)

Používanie 8-bitového režimu na tomto displeji nie je praktické. Na prácu sú potrebné ďalšie 4 nohy a rýchlosť sa prakticky nezvýši. obnovovacia frekvencia tohto displeja je obmedzená< 10раз в секунду.

Pre výstup textu je potrebné pripojiť výstupy RS, E, DB4, DB5, DB6, DB7 k výstupom regulátora. Môžu byť pripojené k akýmkoľvek pinom Arduino, hlavné je nastaviť správnu sekvenciu v kóde.

Príklad kódu programu:

//Testované na Arduino IDE 1.0.5#include // Pridáme potrebnú knižnicu LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) neplatné nastaviť()( lcd.begin (16, 2); // Nastavenie rozmeru obrazovky lcd.setCursor(0, 0); // Nastavte kurzor na začiatok riadku 1 lcd.print("Ahoj, svet!"); // Zobrazenie textu lcd. setCursor (0, 1); // Nastavte kurzor na začiatok riadku 2 lcd.print("stránka"); // Zobraziť text ) void slučka (){ }

Vytváranie vlastných symbolov

Na textový výstup sme prišli, písmená anglickej abecedy sú všité do pamäte ovládača vo vnútri displeja a nie sú s nimi žiadne problémy. Čo však robiť, ak sa požadovaný znak nenachádza v pamäti ovládača?

Tento návod ukazuje, ako sa pripojiť k Arduinu a používať LCD obrazovky na 16x2 a 20x4.

Tieto displeje majú zabudované LED podsvietenie s nízkou spotrebou a fungujú od +5 V. Na pripojenie týchto LCD displejov potrebujete 6 pinov. Na svojom Arduine môžete použiť akékoľvek piny!

Návod je napísaný na základe Adafruit LCD obrazoviek - modro-biely 16x2, RGB 16x2 LCD, a modro-biely 20x4, RGB 20x4. Ak používate LCD obrazovku od iného výrobcu, neexistuje 100% záruka, že bude fungovať (hoci v 99% prípadov bude fungovať).

Charakter vs grafický LCD – Aký je rozdiel?

Existuje obrovské množstvo rôznych LCD obrazoviek. V tomto článku sa pozrieme na znakové LCD. Takéto obrazovky sú skvelou voľbou na zobrazovanie textu. Môžete si tiež prispôsobiť zobrazenie ikon, ale veľkosť týchto ikon by nemala presiahnuť 7 pixelov (veľmi malé!).

Nižšie uvedená fotografia zobrazuje príklad 16-znakového LCD monitora s dvoma riadkami:

Ak sa pozriete pozorne, uvidíte malé obdĺžniky, kde sú zobrazené symboly. Každý obdĺžnik je samostatná mriežka pixelov. Pre porovnanie je nižšie zobrazená grafická obrazovka LCD:

Grafický displej z tekutých kryštálov má jednu veľkú mriežku pixelov (v tomto príklade 128 x 64). Dá sa na ňom zobraziť text, ale lepšie je zobraziť obrázky. Grafické LCD sú zvyčajne väčšie, majú viac kolíkov na pripojenie a ich použitie je o niečo ťažšie ako textové LCD.

V tomto článku sa budeme venovať iba obrazovkám textu/znakov!

Rôzne modely LCD obrazoviek

Potom, čo sme obmedzili typ dotknutých obrazoviek, pozrime sa, aké to sú.


Hoci sa používajú iba na zobrazenie textu, existujú rôzne modely a tvarové faktory: v ľavom hornom rohu je LCD 20x4 s bielym textom na modrom pozadí, v pravom hornom rohu je 16x4 s čiernym textom na zelenom pozadí, v vľavo dole je 16x2 s bielym textom na modrom pozadí a 16x1 s čiernym textom na sivom pozadí.

Dobrou správou je, že všetky tieto obrazovky sú vzájomne zameniteľné. Ak ste si jeden z nich upravili, môžete ho nahradiť iným modelom. Náčrt Arduina bude musieť byť mierne upravený, ale zapojenie je rovnaké!


V tejto časti používame LCD obrazovky s jednou koľajnicou a 16 pinmi na pripojenie (viď foto vyššie). K dispozícii je tiež LCD s 2 koľajnicami s 8 pinmi na pripojenie (na obrázku nižšie).


Pripojenie druhého modelu k nespájkovanej doske plošných spojov je náročnejšie.

Pripojenie znakovej LCD obrazovky k Arduinu

Inštalácia kontaktných koľajníc


Okrem LCD obrazovky budete potrebovať ďalšie páskovanie. Najprv potenciometer 10 kΩ. Pomocou potenciometra nastavíme kontrast displeja. Každá LCD obrazovka má iné nastavenie kontrastu, takže bez úpravy sa nezaobídete. Okrem toho budete potrebovať 0,1" kolíkovú lištu.


Ak je koľajnička s kontaktmi príliš dlhá, je módne nadbytočné kontakty jednoducho odrezať!

Musíte prispájkovať kolíky na LCD.

Pri spájkovaní buďte mimoriadne opatrní, aby ste nepoškodili váš Breadboard! Najprv môžete "chytiť" prvý a 16 kontaktov a potom spájkovať zvyšok.


Napájanie a podsvietenie

Pripojte napájanie a osvetlenie

Vysvetlenia


Začíname sa dostávať k zaujímavým veciam! Namontujte svoj LCD na dosku.


Pájkovú dosku napájame z nášho Arduina. Pripojte +5V na červenú koľajnicu a Gnd na modrú.


Potom pripojíme podsvietenie našej LCD obrazovky. Pripojte pin 16 na GND a pin 15 na +5V. Väčšina LCD obrazoviek má odpory podsvietenia.

Ak na vašom module nie sú žiadne odpory, budete musieť pridať jeden medzi 5V a pin 15. Pre výpočet hodnoty odporov skontrolujte maximálny prúd na napájanie podsvietenia a približnú hodnotu poklesu napätia z údajového listu. Odpočítajte pokles napätia od 5 V, potom ho vydeľte maximálnym prúdom a zaokrúhlite nahor na najbližšiu vyššiu štandardnú hodnotu odporu. Napríklad, ak je pokles napätia 3,5 V a prúd 16 mA, hodnota odporu by bola: (5 - 3,5)/0,016 = 93,75 ohmov alebo 100 ohmov zaokrúhlených na štandardnú hodnotu. Ak nemôžete nájsť údajový list, použite 220 ohmový odpor. Je pravda, že v tomto prípade môže byť podsvietenie dosť bledé.


Pripojte svoje Arduino k napájaniu. Podsvietenie by sa malo rozsvietiť.

Mimochodom, niektoré lacné LCD obrazovky nemajú podsvietenie!

Schéma na nastavenie kontrastu

Kontrastný obvod

Vysvetlenia


Nainštalujte potenciometer. Na fotografii sa nachádza napravo od kolíka 1.


Pripojte jednu stranu potenciometra na +5V a druhú stranu na Gnd. Pripojte stredný kolík potenciometra ku kolíku 3 na LCD.


Teraz pripájame logiku našej obrazovky - toto je obvod oddelený od podsvietenia! Pin 1 ide na Gnd a pin 2 ide na +5V.


Zapnite svoje Arduino. Ak má LCD monitor podsvietenie, malo by sa rozsvietiť. Otočením gombíka potenciometra uvidíte prvý obdĺžnik pixelov v prvom rade.

Ak všetko fungovalo, gratulujem. To znamená, že logika, osvetlenie a kontrast fungujú! Ak to nevyšlo, nepokračujte v ďalších krokoch návodu, kým nezistíte, v čom je chyba!

Konečné pripojenie

D0 až D7, RS, EN a RW. D0-D7 sú kolíky, ktoré ukladajú hodnoty odoslané na displej. Pin RS hovorí ovládaču, či budeme zobrazovať údaje (napríklad znak ASCII) alebo či ide o riadiaci bajt (napríklad zmena polohy kurzora). Pin EN je skratka pre „enable“, týmto pinom informujeme LCD, kedy sú dáta pripravené na čítanie. Pin RW slúži na nastavenie smeru – chceme zobrazovať (zvyčajne) alebo čítať (menej používané) údaje z displeja.

Nie všetky tieto piny musia byť pripojené k Arduinu. Napríklad RW nie je potrebné používať, ak na obrazovke zobrazujeme iba údaje, takže ho stačí „natiahnuť“ na pin Gnd. Okrem toho je možné komunikovať s LCD obrazovkou pomocou 4 pinov namiesto 8. Zrejme vyvstáva prirodzená otázka, v akých prípadoch sa používa 8 pinov? S najväčšou pravdepodobnosťou to ovplyvňuje rýchlosť prenosu údajov. To znamená, že pomocou 8 kontaktov namiesto 4 môžete zvýšiť rýchlosť výmeny informácií 2-krát. V tomto prípade nie je dôležitá rýchlosť, preto na pripojenie LCD k Arduinu použijeme 4 piny.

Potrebujeme teda 6 kolíkov: RS, EN, D7, D6, D5 a D4.

Na prácu s LCD obrazovkou využijeme knižnicu LiquidCrystal, ktorá značne zjednodušuje proces nastavovania pinov. Jednou z výhod tejto knižnice je, že na pripojenie LCD pinov môžete použiť akékoľvek kolíky na Arduine. Takže na konci tejto príručky môžete jednoducho zmeniť kolíky, ak je to pre váš projekt dôležité.

Konečné pripojenie displeja

Vysvetlenia


Ako je uvedené vyššie, nebudeme používať kolík RW, takže ho pritiahneme k zemi. Toto je pin 5.


Po pripojení RS - toto je kolík # 4. Na pripojenie k digitálnemu kolíku #7 na Arduine používame hnedý vodič.


Pomocou bieleho drôtu pripojte EN pin - pin # 6 k digitálnemu pinu # 8 na Arduine.


Na rad prišli dátové kontakty. DB7 je kolík č. 14 na LCD. Pripojí sa oranžovým vodičom ku kolíku #12 na Arduine.


Zostávajú tri dátové kolíky, DB6 (pin #13 žltý), DB5 (pin #12 zelený) a DB4 (pin #11 modrý). Pripájajú sa ku kolíkom #11, 10 a 9 na Arduine.


V dôsledku spojenia získate niečo podobné ako na fotografii vľavo.

Používanie znakového LCD

Je čas nahrať skicu do Arduina na ovládanie LCD obrazovky. Knižnica LiquidCrystal je štandardne nainštalovaná v Arduino IDE. Stačí si teda stiahnuť jeden z príkladov a trochu upraviť podľa pinov, ktoré sme použili na pripojenie.

Otvorte skicu Súbor → Príklady → LiquidCrystal → HelloWorld.

Aktualizujú sa informácie o pinoch. Hľadá sa nasledujúci riadok:

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

A zmeňte to na:

Teraz môžete skompilovať a nahrať skicu do Arduina.


V prípade potreby upravte kontrast.


Prirodzene, LCD displej môžete použiť v akejkoľvek veľkosti. Napríklad fotografia nižšie zobrazuje fungovanie LCD 20x4.


Alebo čierny text na zelenom pozadí:


Jednou z výhod obrazoviek s čiernym textom na zelenom pozadí je možnosť vypnúť podsvietenie.


Koľko riadkov použijeme

Pozrime sa, ako LCD zvláda dlhé správy a používa viacero riadkov. Napríklad, ak zmeníte nasledujúci riadok:

lcd.print("ahoj, svet!");

Pre ďalšiu:

lcd.print("ahoj, svet! toto je dlhá správa");

LCD 16x2 skráti všetko po 16. znaku:


Ale LCD displej 20x4 prenesie nezobrazené znaky z prvého riadku do tretieho (druhý riadok bude pokračovať na štvrtom). Nie je to veľmi pohodlné, ale v tejto fáze sa s tým musíte vyrovnať. Pri zobrazovaní dlhých reťazcov teda počítajte znaky, aby ste neprekročili povolenú dĺžku.


LCD s RGB podsvietením

Tieto obrazovky fungujú rovnako ako bežné obrazovky, ale majú tri LED diódy (červená, zelená, modrá) na podsvietenie, takže môžete použiť rôzne farby podsvietenia.

Po pripojení LCD a jeho kontrole podľa vyššie uvedených pokynov pripojte LED diódy k analógovým pinom PWM vášho Arduina, aby ste doladili farbu. Ak používate Arduino Uno, mali by vám zostať tri voľné piny PWM. pripojte červenú LED (pin 16 na LCD) k Digital 3, zelenú LED (pin 17) k Digital 5 a modrú LED (pin 18 na LCD) k digital 6. LCD modul už má rezistory, takže nie je potrebné ďalšie pripojenie.


Teraz nahrajte náčrt nižšie do Arduina.

// zahrňte knižnice do náčrtu:

#include

#include

#define REDLITE 3

#define GREELITE 5

#define BLUELITE 6

// deklarujeme počet kontaktov, ktoré používame

// na prenos dát

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

// jas je možné zmeniť v rozsahu 0 -> 255

int jas = 255;

// nastavte počet stĺpcov a riadkov na LCD:

lcd.begin(16, 2);

// zobrazenie správy na LCD.

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

lcd.setCursor(0,1);

lcd.print("Viacfarebný LCD");

pinMode(REDLITE, OUTPUT);

pinMode(GREENLITE, OUTPUT);

pinMode(BLUELITE, VÝSTUP);

jas = 100;

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

setBacklight(i, 0, 255-i);

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

setBacklight(255-i, i, 0);

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

setBacklight(0, 255-i, i);

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

// nastavte červenú LED - je jasnejšia ako 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);

// spoločná anóda, 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ýsledok tohto náčrtu je uvedený vo videu nižšie.

príkaz createChar

Pravdepodobne budete chcieť použiť špeciálne znaky. Ak napríklad navrhujete projekt s použitím teplotného snímača (termočlánku), bude sa vám hodiť symbol (°).

To je možné vykonať pomocou príkazu createChar. Môžete tiež nájsť skvelú webovú stránku, ktorá robí všetku špinavú prácu pri vytváraní nových symbolov za vás!

Zanechajte svoje pripomienky, otázky a podeľte sa o svoje osobné skúsenosti nižšie. V diskusii sa často rodia nové nápady a projekty!

Každý rádioamatér po určitom množstve jednoduchého DIY dospeje k cieľu postaviť niečo veľkolepé pomocou senzorov a tlačidiel. Oveľa zaujímavejšie je totiž zobrazenie údajov na displeji ako na monitore portu. Potom však vyvstáva otázka: aký displej si vybrať? A vo všeobecnosti, ako ho pripojiť, čo je potrebné na pripojenie? Odpovede na tieto otázky budú diskutované v tomto článku.

LCD 1602

Medzi mnohými možnosťami medzi displejmi by som chcel osobitne poznamenať displej LCD1602 založený na radiči HD4478. Tento displej je v dvoch farbách: biele písmená na modrom pozadí, čierne písmená na žltom pozadí. Pripojenie LCD 1602 k Arduinu tiež nespôsobí žiadne problémy, pretože je tu vstavaná knižnica a nemusíte sťahovať nič navyše. Displeje sa líšia nielen cenou, ale aj veľkosťou. Rádioamatéri často používajú 16 x 2, to znamená 2 riadky po 16 znakoch. Ale existuje aj 20 x 4, kde sú 4 riadky po 20 znakov. Rozmery a farba nehrajú žiadnu rolu pri pripájaní lcd 1602 displeja k Arduno, zapájajú sa rovnakým spôsobom. Pozorovací uhol je 35 stupňov, doba odozvy displeja je 250 ms. Môže pracovať pri teplotách od -20 do 70 stupňov Celzia. Počas prevádzky spotrebuje 4 mA pre obrazovku a 120 mA pre podsvietenie.

Kde sa používa?

Tento displej má svoju obľubu nielen medzi rádioamatérmi, ale aj medzi veľkými výrobcami. Napríklad tlačiarne, kávovary používajú aj LCD1602. Je to kvôli nízkej cene, tento displej stojí na čínskych stránkach 200-300 rubľov. Oplatí sa tam kúpiť, keďže v našich predajniach sú marže na tento displej veľmi vysoké.

Pripojenie k Arduinu

Pripojenie LCD 1602 k Arduino Nano a Uno nie je iné. S displejom môžete pracovať v dvoch režimoch: 4 bitový a 8-bitový. Pri práci s 8-bitovým displejom sa využívajú spodné aj vyššie bity a pri 4-bitovom len nižšie. Nemá zmysel pracovať s 8-bitmi, pretože na pripojenie sa pridajú ďalšie 4 kontakty, čo sa neodporúča, pretože rýchlosť nebude vyššia, limit aktualizácie displeja je 10-krát za sekundu. Vo všeobecnosti sa na pripojenie lcd 1602 k Arduinu používa veľa drôtov, čo spôsobuje určité nepríjemnosti, ale existujú špeciálne štíty, ale o tom neskôr. Na obrázku je pripojenie displeja k Arduino Uno:

Príklad kódu programu:

#include // Pridajte požadovanú knižnicu LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup()( lcd.begin(16, 2); // Nastaviť rozmer obrazovky lcd.setCursor(0, 0); // Nastaviť kurzor na začiatok 1 riadky lcd.print("Ahoj, svet!"); // Zobraziť text lcd.setCursor(0, 1); // Nastaviť kurzor na začiatok riadku 2 lcd.print("site"); // Zobraziť text ) prázdna slučka ()( )

Čo robí kód? V prvom rade je pripojená knižnica pre prácu s displejom. Ako je uvedené vyššie, táto knižnica je už súčasťou Arduino IDE a nemusíte ju dodatočne sťahovať a inštalovať. Ďalej sú definované kontakty, ktoré sú pripojené na kolíky: RS, E, DB4, DB5, DB6, DB7, resp. Potom sa nastaví veľkosť obrazovky. Keďže pracujeme s verziou so 16 znakmi a 2 riadkami, zapisujeme takéto hodnoty. Kurzor nastavíme na začiatok prvého riadku a zobrazíme náš prvý text Hello World. Potom umiestnite kurzor na druhý riadok a zobrazte názov stránky. To je všetko! Zvažovalo sa pripojenie lcd 1602 k Arduino Uno.

Čo je to I2C a prečo je to potrebné?

Ako už bolo spomenuté vyššie, pripojenie displeja vyžaduje veľa pinov. Napríklad pri práci s viacerými snímačmi a LCD displejom 1602 kontaktov jednoducho nemusí stačiť. Často rádioamatéri používajú verzie Uno alebo Nano, kde nie je veľa kontaktov. Potom ľudia prišli so špeciálnymi štítmi. Napríklad I2C. Umožňuje vám pripojiť displej iba pomocou 4 pinov. To je dvakrát menej. I2C modul sa predáva ako samostatne, kde si ho musíte sami prispájkovať, tak aj prispájkovaný na LCD 1602 displej.

Pripojenie pomocou I2C modulu

Pripojenie LCD 1602 k Arduino Nano s I2C zaberá málo miesta, iba 4 piny: zem, napájanie a 2 dátové výstupy. Napájanie a zem pripojíme na 5V a GND na Arduino, resp. Zvyšné dva kontakty: SCL a SDA sú pripojené k ľubovoľným analógovým kolíkom. Na fotografii môžete vidieť príklad pripojenia lcd 1602 k arduinu s modulom I2C:

Programový kód

Ak na prácu s displejom bez modulu bolo potrebné použiť iba jednu knižnicu, potom na prácu s modulom sú potrebné knižnice dve. Jeden z nich je už v Arduino IDE - Wire. Ďalšiu knižnicu, LiquidCrystal I2C, je potrebné stiahnuť samostatne a nainštalovať. Ak chcete nainštalovať knižnicu v Arduine, obsah stiahnutého archívu sa musí nahrať do koreňového priečinka Libraries. Príklad kódu pomocou I2C:

#include #include LiquidCrystal_I2C lcd(0x27,16,2); // Nastavenie zobrazenia void setup() ( lcd.init(); lcd.backlight();// Zapnutie podsvietenia displeja lcd..setCursor(8, 1); lcd.print("LCD 1602"); ) void loop ( ) ( // Nastavte kurzor na druhý riadok a nulový znak. lcd. setCursor(0, 1); // Zobrazenie počtu sekúnd od spustenia arduina lcd. print(millis()/1000); )

Ako vidíte, kód je takmer rovnaký.

Ako pridať svoj symbol?

Problémom týchto displejov je, že neexistuje podpora pre azbuku a symboly. Napríklad je potrebné načítať nejaký znak do displeja, aby ho mohol odrážať. K tomu vám displej umožňuje vytvoriť až 7 vašich postáv. Predstavte si stôl:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Ak 0 - nič tam nie je, ak 1 - toto je zatienená oblasť. Vo vyššie uvedenom príklade môžete vidieť vytvorenie symbolu „usmievajúceho sa smajlíka“. Pomocou vzorového programu v Arduine by to vyzeralo takto:

#include #include // Pridajte požadovanú knižnicu // Smile symbol bitmask byte smile = ( B00010, B00001, B11001, B00001, B11001, B00001, B00010, ); LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup()( lcd.begin(16, 2); // Nastavenie veľkosti obrazovky lcd.createChar(1, úsmev); // Vytvorenie znaku 1 lcd. setCursor(0, 0); // Nastavte kurzor na začiatok riadku 1 lcd.print("\1"); // Zobrazenie smajlíka (číslo znaku 1) - "\1" ) void loop()( )

Ako vidíte, bitová maska ​​bola vytvorená rovnako ako tabuľka. Po vytvorení sa môže zobraziť ako premenná na displeji. Pamätajte, že do pamäte je možné uložiť iba 7 znakov. V zásade to stačí. Napríklad, ak chcete zobraziť symbol stupňa.

Problémy, pri ktorých nemusí fungovať displej

Sú chvíle, keď displej nefunguje. Napríklad sa zapne, ale nezobrazuje znaky. Alebo sa nezapne vôbec. Najprv skontrolujte, či ste kontakty pripojili správne. Ak ste zvykli pripájať lcd 1202 k Arduinu bez I2C, je veľmi ľahké sa zamotať do drôtov, čo môže spôsobiť nesprávne fungovanie displeja. Mali by ste sa tiež uistiť, že je zvýšený kontrast displeja, pretože pri minimálnom kontraste ani nie je vidieť, či je LCD 1602 zapnutý alebo nie. Ak to nepomôže, problém môže spočívať v spájkovaní kontaktov, je to pri použití modulu I2C. Častým dôvodom, prečo nemusí displej fungovať, je tiež nesprávne nastavenie I2C adresy. Faktom je, že existuje veľa výrobcov a môžu nastaviť inú adresu, musíte to opraviť tu:

LiquidCrystal_I2C lcd(0x27,16,2);

V zátvorkách môžete vidieť dve hodnoty, 0x27 a 16.2 (16, 2 je veľkosť displeja a 0x27 je len I2C adresa). Namiesto týchto hodnôt môžete skúsiť zadať 0x37 alebo 0x3F. Ďalším dôvodom je jednoducho chybný LCD 1602. Vzhľadom na to, že takmer všetko pre Arduino je vyrobené v Číne, nemôžete si byť 100% istý, že zakúpený produkt nie je manželstvom.

Výhody a nevýhody LCD 1602

Zvážte výhody a nevýhody displeja LCD 1602.

  • Cena. Tento modul je možné zakúpiť za veľmi prijateľnú cenu v čínskych obchodoch. Cena je 200-300 rubľov. Niekedy sa dokonca predáva spolu s I2C modulom.
  • Jednoduché pripojenie. V dnešnej dobe asi nikto nepripojí LCD 1602 bez I2C. A s týmto modulom spojenie trvá iba 4 kolíky, nebudú žiadne "pavučiny" drôtov.
  • Programovanie. Vďaka hotovým knižniciam je práca s týmto modulom jednoduchá, všetky funkcie sú už zaregistrované. A ak je to potrebné, pridanie vašej postavy trvá len pár minút.
  • Počas používania tisíckami rádioamatérov neboli identifikované žiadne veľké mínusy, existujú iba prípady nákupu manželstva, pretože sa používajú hlavne čínske možnosti zobrazenia.

Tento článok sa zaoberal tým, ako pripojiť 1602 k Arduinu, a tiež poskytol vzorové programy pre prácu s týmto displejom. Vo svojej kategórii skutočne patrí k tomu najlepšiemu, nie nadarmo si ho pre svoje projekty vyberajú tisíce rádioamatérov!

Displeje LCD 1602 založené na ovládači HD44780 sú stále jedným z najdostupnejších, najjednoduchších a najžiadanejších displejov na vývoj akéhokoľvek druhu elektronických zariadení v súčasnosti. Nie je prekvapujúce, že ich možno vidieť ako v jednoduchých jednotkách zostavených doslova na kolene, tak aj vo vážnejších priemyselných, ako sú kávovary. Práve s takýmto displejom sú zostavené najobľúbenejšie moduly a štíty s tematikou Arduino, napríklad modul LCD I2C a štít LCD klávesnice.

Tento článok podrobne vysvetľuje pomocou obrázkov, ako pripojiť LCD k Arduinu a zobraziť informácie.

Má 1602 displejov dve rôzne verzie:

Žlté podsvietenie s čiernymi písmenami
- alebo (toto sa stáva oveľa častejšie) modré podsvietenie s bielym.

Rozmery displejov na ovládači HD44780 sú veľmi rozdielne, no ovládajú sa rovnako. Najbežnejšie z rozmerov sú 16 x 02 (teda 16 znakov v dvoch riadkoch) alebo 20 x 04. Samotné znaky majú rozlíšenie 5 x 8 pixelov.

Väčšina displejov nepodporuje cyriliku (s výnimkou displejov s označením CTK). Ale takýto problém je čiastočne riešiteľný a potom článok podrobne popisuje, ako to urobiť.

Displej má na pripojenie 16-PIN konektor. Závery majú označenie na zadnej strane dosky, je to takto:

1 (VSS) - výkon do mínusu pre regulátor.
2 (VDD) - kladné napájanie regulátora.
3 (VO) - nastavenie ovládania kontrastu.
4 (RS) – výber pre registr.
5 (R/W) - čítanie a zápis, najmä zápis pri pripojení k zemi.
6 (E) – aktivácia (povoliť).
7-10 (DB0-DB3) - nízke bity z osembitového rozhrania.
11-14 (DB4-DB7) - najdôležitejšie bity z rozhrania
15 (A) - kladná anóda na napájanie podsvietenia.
16 (K) - negatívna katóda na napájanie podsvietenia.

Krok 2: Pripojenie LCD

Pred pripojením displeja a prenosom informácií naň sa oplatí skontrolovať jeho výkon. Najprv pripojte napätie na ovládač VSS a VDD, zapnite podsvietenie (A, K) a potom upravte kontrast. Pre takéto nastavenia je vhodný potenciometer 10 kΩ, jeho tvar nie je dôležitý. +5V a GND sú aplikované na krajné nohy a noha v strede je pripojená k výstupu VO.

Pri privedení napájania do obvodu je potrebné dosiahnuť potrebný kontrast, ak je nesprávne nastavený, obraz na obrazovke nebude viditeľný. Na nastavenie kontrastu sa treba „pohrať“ s potenciometrom. Keď je obvod správne zostavený a kontrast je správne nastavený, horný riadok na obrazovke by mal byť vyplnený obdĺžnikmi.

Na fungovanie displeja slúži špeciálna knižnica LiquidCrystal.h zabudovaná v Arduino IDE, o ktorej budem písať nižšie. Môže pracovať v 8-bitovom a 4-bitovom režime. V prvom variante sa používajú iba nízke a vysoké bity (BB0-DB7), v druhom iba nízke bity (BB4-DB7).

Použitie 8-bitového režimu v tomto zobrazení je však nesprávne rozhodnutie, rýchlosť nemá takmer žiadnu výhodu, pretože jeho obnovovacia frekvencia je vždy nižšia ako 10-krát za sekundu. Na zobrazenie textu je potrebné pripojiť kolíky DB7, DB6, DB5, DB4, E a RS ku kolíkom ovládača. Môžete ich pripojiť k ľubovoľným pinom Arduino, hlavné je nastaviť správnu postupnosť v kóde.

Ak požadovaný znak ešte nie je v pamäti ovládača, je možné ho určiť manuálne (spolu až sedem znakov). Bunka v uvažovaných displejoch má rozšírenie päť na osem bodov. Úlohou vytvorenia symbolu je napísať bitovú masku a umiestniť jednotky na miesta, kde majú bodky horieť, a nuly tam, kde nemajú.

Schéma zapojenia diskutovaná vyššie nie je vždy dobrá, pretože Arduino používa najmenej šesť digitálnych výstupov.

Krok 3: Schéma obídenia

Poďme preskúmať spôsob, ako to obísť a vystačiť si len s dvoma. Je potrebný ďalší modul prevodníka LCD na IIC/I2C. Ako je prispájkovaný k displeju a pripevnený k Arduinu je možné vidieť na obrázkoch nižšie.

Ale táto možnosť pripojenia funguje len so špeciálnou knižnicou LiquidCrystal_I2C1602V1, ktorú však možno ľahko nájsť na webe a nainštalovať, po čom ju môžete bez problémov používať.

Krok 4: Knižnica LiquidCrystal.h

Knižnicu LiquidCrystal.h si môžete stiahnuť z oficiálneho zdroja - . Môžete si tiež stiahnuť z nižšie uvedených odkazov:

Skica

Po stiahnutí archívu nahraďte priečinok LiquidCrystal v priečinku libraries inštalačného adresára Arduino.

Príklad náčrtu môžete vidieť v Súbor -> Príklady -> LiquidCrystal -> HelloWorld_SPI(Súbor -> Príklady -> LiquidCrystal -> HelloWorld_SPI).

Týmto sa naša ďalšia lekcia končí. Prajeme vám kvalitné projekty!

Arduino LCD displej umožňuje vizuálne zobrazovať dáta zo senzorov. Prezradíme vám, ako správne pripojiť LCD monitor k Arduinu cez I2C a pozrieme sa na základné príkazy pre inicializáciu a ovládanie LCD 1602. Pozrieme sa aj na rôzne funkcie v programovacom jazyku C ++ na zobrazenie textových informácií na displeji , ktorý sa často vyžaduje na použitie v projektoch Arduino.

Video. Arduino LCD displej I2C 1602

LCD 1602 I2C pripojenie k Arduinu

I2C je sériová dvojvodičová zbernica na pripojenie integrovaných obvodov vo vnútri elektronických zariadení, známych ako I²C alebo IIC (anglicky Inter-Integrated Circuit). I²C vyvinula spoločnosť Philips na začiatku osemdesiatych rokov minulého storočia ako jednoduchú 8-bitovú zbernicu na internú komunikáciu medzi obvodmi v riadiacej elektronike (ako sú počítače na základnej doske, mobilné telefóny atď.).

V jednoduchom I²C systéme môže byť viacero podriadených zariadení a jedno hlavné zariadenie, ktoré iniciuje prenos dát a nastavuje signál. K linkám SDA (dátová linka) a SCL (hodinová linka) je možné pripojiť niekoľko podriadených zariadení. Hlavným zariadením je často ovládač Arduino a podriadenými zariadeniami sú hodiny reálneho času alebo LCD displej.

Ako pripojiť LCD 1602 k Arduinu cez I2C

LCD displej 1602 s modulom I2C je pripojený k doske Arduino iba 4 vodičmi - 2 dátové vodiče a 2 napájacie vodiče. Displej 1602 je štandardne pripojený pre zbernicu I2C: výstup SDA pripája sa k portu A4, výstup SCL– do portu A5. LCD displej je napájaný z +5V portu na Arduine. Ďalšie podrobnosti nájdete v schéme pripojenia monitora LCD 1602 na fotografii nižšie.

Pre lekciu potrebujeme nasledujúce podrobnosti:

  • doska Arduino Uno / Arduino Nano / Arduino Mega;
  • LCD monitor 1602;
  • 4 drôty "otec-matka".

Po pripojení LCD monitora k Arduinu cez I2C budete musieť nainštalovať knižnicu LiquidCrystal_I2C.h pracovať s LCD displejom cez I2C rozhranie a knižnicu Wire.h(dostupné v štandardnom programe Arduino IDE). Pracovnú knižnicu LiquidCrystal_I2C.h pre LCD 1602 s modulom I2C si môžete stiahnuť na stránke Arduino Libraries na našom webe prostredníctvom priameho odkazu z Google Drive.

Náčrt pre displej 1602 s I2C

#include // knižnica na ovládanie zariadení cez I2C#include // pripojte knižnicu pre LCD 1602 LiquidCrystal_I2C lcd(0x27,20,2); // priraďte názov lcd displeju 20x2 void setup() // nastavenie procedúry( lcd.init(); // inicializácia LCD displeja lcd.backlight(); // zapnutie podsvietenia displeja lcd.setCursor(0,0); // umiestni kurzor na 1 znak prvého riadku lcd.print("MILUJEM"); // vypíše správu na prvý riadok lcd.setCursor(0,1); // umiestni kurzor na 1 znak druhého riadku lcd.print("ARDUINO"); // vypíše správu na druhý riadok) neplatná slučka () // slučka procedúr ( /* toto je viacriadkový komentár // spočiatku sa v náčrte lcd.noDisplay() nepoužíva procedúra void loop(); // vypnutie oneskorenia podsvietenia LCD (500); // pozastavenie lcd display(); // zapnutie oneskorenia podsvietenia LCD (500); // pauza */ }

Vysvetlenia pre kód:

  1. knižnica LiquidCrystal_I2C.h obsahuje mnoho príkazov na ovládanie LCD displeja cez zbernicu I²C a umožňuje výrazne zjednodušiť skicu;
  2. skica obsahuje viacriadkový komentár /* ... */ , ktorý umožňuje zakomentovať niekoľko riadkov v programe naraz.
  3. pred zobrazením informácií na displeji je potrebné nastaviť polohu kurzora príkazom setCursor(0,1), kde 0 je číslo znaku v riadku, 1 je číslo riadku.