Každý rádioamatér po jednoduchej kutilskej práci 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ú prediskutované v tomto článku.
LCD 1602
Z množstva možností medzi displejmi by som rád vyzdvihol displej LCD1602 založený na ovládač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ú 16x 2, teda 2 riadky po 16 znakov. Ale existuje aj 20 x 4, kde sú 4 riadky po 20 znakov. Rozmery a farba nehrajú pri pripájaní lcd 1602 displeja k Arduno žiadnu rolu, 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. Pri práci používa 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. 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-bit, pretože sa pridajú ďalšie 4 kontakty na pripojenie, č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 fotografii je znázornené pripojenie displeja k Arduino Uno:
Príklad kódu:
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); // Nastavenie rozmeru obrazovky lcd.setCursor(0, 0); // Nastavíme 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("fb.ru"); // Výstupný text } void loop(){
Na čo slúži kód? V prvom rade sa pripája knižnica pre prácu s displejom. Ako už bolo spomenuté 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 I2C a prečo je potrebné?
Ako je uvedené vyššie, pripojenie displeja vyžaduje veľa kolíkov. 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 samostatne, kde si ho musíte prispájkovať sami, aj už prispájkovanýLCD displej 1602.
Pripojenie s modulom I2C
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 bolo potrebné na prácu s displejom bez modulu použiť iba jednu knižnicu, na prácu s modulom sú potrebné dve knižnice. 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.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Nastaví kurzor na druhý riadok a nulový znak. lcd.setCursor(0, 1); // Vypíše počet sekúnd od spustenia arduina lcd.print(millis()/1000);
Ako vidíte, kód je takmer rovnaký.
Ako pridám svoj vlastný symbol?
Problém s týmito displejmi je, že neexistujú žiadnepodpora cyriliky a symbolov. 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. Prezentujte tabuľku:
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 – je to tieňovaná oblasť. Vo vyššie uvedenom príklade môžete vidieť vytvorenie postavy „usmievajúceho sa smajlíka“. Pomocou vzorového programu v Arduine by to vyzeralo takto:
include include // Zahrnúť požadovanú knižnicu // Smile symbol bitmask byte smile[8]={ 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 rozmeru obrazovky lcd.createChar(1, smile); // Vytvorenie znaku číslo 1 lcd.setCursor(0, 0); // Nastavíme kurzor na začiatok riadku 1 lcd.print("\1"); // Zobrazenie smajlíka (číslo znaku 1) - "\1" } void loop(){
Ako môžete vidieť, bol vytvorenýbitová maska je rovnaká 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, potom 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 výrobcov je veľa a môžu si nastaviť inú adresu, treba 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 adresa I2C). 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 chybný.
LCD 1602 výhody a nevýhody
Pozrime sa na výhody a nevýhody LCD 1602.
Pros
- 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 s modulom I2C.
- Jednoduché pripojenie. V dnešnej dobe asi nikto nepripojí LCD 1602 bez I2C. A s týmto modulom spojenie trvá len 4 piny, nebudú tu ž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 potrebujete pridať svoju postavu, zaberie to len pár minút.
Nevýhody
Počas používania tisíckami rádioamatérov sa nezistili žiadne veľké mínusy, existujú iba prípady kúpy manželstva, keďže sa používajú najmä čínske možnosti zobrazenia
Tento článok diskutoval o tom, ako pripojiť displej LCD 1602 k Arduinu, a tiež predstavil vzorové programy na prácu s týmto displejom. Je skutočne jedným z najlepších vo svojej kategórii, nejde len o to, že si ho pre svoje projekty vyberajú tisíce rádioamatérov!