Iga raadioamatöör jõuab pärast lihtsat isetegemist eesmärgini luua andurite ja nuppude abil midagi suurejoonelist. Ekraanil on ju andmeid palju huvitavam kuvada kui pordimonitoril. Siis aga tekib küsimus: millist ekraani valida? Ja üldiselt, kuidas seda ühendada, mida on vaja ühendamiseks? Vastuseid nendele küsimustele käsitletakse selles artiklis.
LCD 1602
Ekraanivalikute hulgast tahaksin esile tõsta HD4478 kontrolleril põhineva LCD1602 ekraani. See ekraan on kahes värvitoonis: valged tähed sinisel taustal, mustad tähed kollasel taustal. Ka LCD 1602 ühendamine Arduinoga ei tekita probleeme, kuna seal on sisseehitatud teek ja te ei pea midagi täiendavat alla laadima. Näidikud erinevad mitte ainult hinna, vaid ka suuruse poolest. Sageli kasutavad raadioamatöörid 16x 2, st 2 rida 16 tähemärgiga. Kuid on ka 20 x 4, kus on 4 rida 20 tähemärgiga. Mõõtmed ja värv ei mängi lcd 1602 ekraani ühendamisel Ardunoga mingit rolli, need on ühendatud samamoodi. Vaatenurk on 35 kraadi, ekraani reaktsiooniaeg on 250 ms. Võib töötada temperatuuril -20 kuni 70 kraadi Celsiuse järgi. Töötades kasutab see ekraani jaoks 4 mA ja taustvalgustuse jaoks 120 mA.
Kus seda kasutatakse?
See ekraan pole populaarne mitte ainult raadioamatööride, vaid ka suurte tootjate seas. Näiteks printerid, kohvimasinad kasutavad ka LCD1602. Selle põhjuseks on madal hind, see ekraan maksab Hiina saitidel 200-300 rubla. Se alt tasub osta, kuna meie kauplustes on selle väljapaneku marginaalid väga kõrged.
Ühenda Arduinoga
LCD 1602 ühendamine Arduino Nano ja Unoga pole erinev. Ekraaniga saab töötada kahes režiimis: 4-bitine ja 8. 8-bitise ekraaniga töötades kasutatakse nii madalamaid kui ka kõrgemaid bitte ning 4-bitise puhul ainult madalamaid. 8-bitisega pole erilist mõtet töötada, kuna ühendamiseks lisatakse veel 4 kontakti, mis pole soovitatav, kuna kiirus pole suurem, kuvari värskenduslimiit on 10 korda sekundis. Üldiselt kasutatakse lcd 1602 ühendamiseks Arduinoga palju juhtmeid, mis tekitab mõningaid ebamugavusi, kuid on olemas spetsiaalsed varjendid, aga sellest hiljem. Foto näitab ekraani ühendamist Arduino Unoga:
Koodi näide:
kaasa //Lisage vajalik teek LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Ekraani mõõtme määramine lcd.setCursor(0, 0); // Seadke kursor 1. rea algusesse lcd.print("Tere, maailm!"); // Kuva teksti lcd setCursor(0, 1); // Seadke kursor 2. rea algusesse lcd.print("fb.ru"); // Väljundtekst } void loop(){ }
Mida kood teeb? Esiteks ühendatakse kuvariga töötamise raamatukogu. Nagu eespool mainitud, on see teek juba Arduino IDE-s ja te ei pea seda täiendav alt alla laadima ja installima. Järgmisena määratletakse kontaktid, mis on kontaktidega ühendatud: vastav alt RS, E, DB4, DB5, DB6, DB7. Seejärel määratakse ekraani suurus. Kuna töötame 16 tähemärgi ja 2 reaga versiooniga, kirjutame sellised väärtused. Seadsime kursori esimese rea algusesse ja kuvame oma esimese teksti Hello World. Seejärel asetage kursor teisele reale ja kuvage saidi nimi. See on kõik! Kaaluti lcd 1602 ühendamist Arduino Unoga.
Mis on I2C ja miks seda vaja on?
Nagu eespool mainitud, kulub ekraani ühendamiseks palju kontakte. Näiteks mitme anduri ja LCD-ekraaniga töötamisel ei pruugi 1602 kontaktidest lihts alt piisata. Sageli kasutavad raadioamatöörid Uno või Nano versioone, kus pole palju kontakte. Siis mõtlesid inimesed välja spetsiaalsed kaitsekilbid. Näiteks I2C. See võimaldab ühendada ekraani vaid 4 kontaktiga. Seda on kaks korda vähem. I2C moodulit müüakse nii eraldi, kuhu tuleb ise jootma, kui ka juba joodetunaLCD-ekraan 1602.
Ühendus I2C mooduliga
LCD 1602 ühendamine Arduino Nanoga I2C-ga võtab vähe ruumi, ainult 4 kontakti: maandus, toide ja 2 andmeväljundit. Ühendame Arduino toite ja maanduse vastav alt 5 V ja GND-ga. Ülejäänud kaks kontakti: SCL ja SDA on ühendatud mis tahes analoogkontaktidega. Fotol näete näidet lcd 1602 ühendamisest arduinoga I2C mooduliga:
Programmi kood
Kui ilma moodulita kuvariga töötamiseks oli vaja kasutada ainult ühte teeki, siis mooduliga töötamiseks on vaja kahte teeki. Üks neist on juba Arduino IDE-s - Wire. Teine teek, LiquidCrystal I2C, tuleb eraldi alla laadida ja installida. Teegi installimiseks Arduinosse tuleb allalaaditud arhiivi sisu üles laadida raamatukogude juurkausta. Koodi näide kasutades I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Kuva seadistamine void setup() { lcd.init(); lcd.backlight();// Lülitage ekraani taustvalgustus sisse lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Seadke kursor teisele reale ja nullmärgile. lcd.setCursor(0, 1); // Arduino käivitamisest möödunud sekundite väljatrükk lcd.print(millis()/1000); }
Nagu näete, on kood peaaegu sama.
Kuidas lisada oma sümbolit?
Nende kuvarite probleem seisneb selles, et puudubkirillitsa ja sümbolite tugi. Näiteks peate ekraanile laadima mõne märgi, et see seda kajastaks. Selleks võimaldab ekraan luua kuni 7 tegelast. Esitage tabel:
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 |
Kui 0 – seal pole midagi, kui 1 – see on varjutatud ala. Ül altoodud näites näete "naeratava naeratuse" tegelaskuju loomist. Arduino näidisprogrammi kasutades näeks see välja järgmine:
include include // Kaasake vajalik teek // Naeratuse sümbol bitmaski baidi naeratus[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); // Ekraani mõõtme määramine lcd.createChar(1, smile); // Loo märgi number 1 lcd.setCursor(0, 0); // Seadke kursor 1. rea algusesse lcd.print("\1"); // Kuva emotikon (märk number 1) - "\1" } void loop(){ }
Nagu näete, loodibitmask on sama, mis tabel. Kui see on loodud, saab selle muutujana kuvarile väljastada. Pidage meeles, et mällu saab salvestada ainult 7 tähemärki. Põhimõtteliselt sellest piisab. Näiteks kui soovite näidata kraadi sümbolit.
Probleemid, mille puhul ekraan ei pruugi töötada
Mõnikord ekraan ei tööta. Näiteks lülitub see sisse, kuid ei näita märke. Või ei lülitu üldse sisse. Esiteks kontrollige, kas olete kontaktid õigesti ühendanud. Kui varem ühendasid lcd 1202 Arduinoga ilma I2Cta, siis on väga lihtne juhtmetesse sassi minna, mistõttu ekraan ei tööta korralikult. Samuti peaksite veenduma, et ekraani kontrastsus on suurenenud, kuna minimaalse kontrasti korral pole isegi näha, kas LCD 1602 on sisse lülitatud või mitte. Kui see ei aita, võib probleem peituda kontaktide jootmises, seda I2C mooduli kasutamisel. Samuti on levinud põhjus, miks ekraan ei pruugi töötada, I2C aadressi vale seadistus. Fakt on see, et tootjaid on palju ja nad saavad määrata erineva aadressi, peate selle siin parandama:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Sulgudes näete kahte väärtust, 0x27 ja 16, 2 (16, 2 on kuva suurus ja 0x27 on lihts alt I2C-aadress). Nende väärtuste asemel võite proovida panna 0x37 või 0x3F. Noh, teine põhjus on lihts alt vigane LCD 1602. Arvestades, et peaaegu kõik Arduino jaoks on valmistatud Hiinas, ei saa olla 100% kindel, et ostetudtoode ei ole defektne.
LCD 1602 plussid ja miinused
Vaatame LCD 1602 plusse ja miinuseid.
Profid
- Hind. Seda moodulit saab osta väga soodsa hinnaga Hiina kauplustest. Hind on 200-300 rubla. Mõnikord müüakse isegi koos I2C mooduliga.
- Lihtne ühendada. Ilmselt ei ühenda tänapäeval keegi LCD 1602 ilma I2C-ta. Ja selle mooduliga võtab ühendus vaid 4 kontakti, juhtmete "võrke" ei teki.
- Programmeerimine. Tänu valmis raamatukogudele on selle mooduliga töötamine lihtne, kõik funktsioonid on juba registreeritud. Ja kui teil on vaja oma tegelast lisada, kulub selleks vaid paar minutit.
Miinused
Tuhandete raadioamatööride kasutuse ajal pole suuri miinuseid tuvastatud, on ainult abielu ostmise juhtumeid, kuna peamiselt kasutatakse Hiina kuvavalikuid
Selles artiklis käsitleti LCD 1602 ekraani ühendamist Arduinoga ning esitati ka näidisprogrammid selle kuvariga töötamiseks. See on tõesti üks oma kategooria parimaid, asi pole mitte ainult selles, et tuhanded raadioamatöörid valivad selle oma projektide jaoks!