LCD WH1602B iš Winstar. LCD I2C modulio prijungimas prie Arduino 1602 lcd jungties

Visi jau seniai įpratę, kad kiekvienas elektroninis įrenginys turi ekraną, kurio pagalba suteikia žmogui įvairiausios naudingos informacijos. MP3 grotuvas rodo grojamo takelio pavadinimą, keturkoperio nuotolinio valdymo pultas rodo skrydžio telemetriją, net skalbimo mašina rodo laiką iki skalbimo pabaigos, o išmaniajame telefone paprastai telpa visas asmeninio kompiuterio darbalaukis! Greičiausiai jūsų kitame įrenginyje taip pat gali būti naudojamas mažas ekranas :) Pabandykime padaryti paprastą elektroninį laikrodį! O kaip rezultatų suvestinę naudojame įprastą ir pigų skystųjų kristalų ekraną 1602. Štai kaip paveikslėlyje: Be 16x2, 20x4 simbolių ekranas (keturios eilutės po 20 simbolių), taip pat grafinis ekranas kurių skiriamoji geba yra 128x64 pikselių, yra laikomi gana populiariais. Štai jie nuotraukose:

1. Simbolių LCD ekrano 1602 prijungimas

1602 ekrane yra 16 kontaktų. Paprastai jie yra sunumeruoti iš kairės į dešinę, jei žiūrite taip, kaip paveikslėlyje. Kartais kaiščiai yra pasirašyti, pavyzdžiui: DB0, DB1, EN ir kt. Ir kartais jie tiesiog nurodo išvesties numerį. Bet kokiu atveju kaiščių sąrašas visada yra tas pats: 1 - „GND“, įžeminimas (atėmus galią); 2 - „Vcc“, +5 V maitinimo šaltinis; 3 - „VEE“, kontrastas; 4 - „RS“, registro pasirinkimas;5 - „R/W“, duomenų perdavimo kryptis (rašymas/skaitymas);6 – „EN“, sinchronizavimas;7-14 - „DB0“, „DB1“, .., „DB7“ – duomenų magistralė; 15 - foninio apšvietimo anodas (+5V); 16 — foninio apšvietimo katodas (žeminimas). VEE, RS linijos ir keturios duomenų linijos DB4, DB5, DB6, DB7 yra prijungtos prie valdiklio skaitmeninių išėjimų. „R/W“ liniją prijungsime prie valdiklio „žemės“ (nes mums reikia tik įrašymo į ekrano atmintį funkcijos). Foninio apšvietimo kol kas nejungsime, manau nesunkiai tai išsiaiškinsite patys :) Scheminė ekrano prijungimo prie Arduino Uno
Išdėstymo išvaizda
Tik tuo atveju, taip pat ženklo pavidalu:
LCD ekranas 1602 1 2 4 6 11 12 13 14 15 16
Arduino Uno GND +5V 4 5 6 7 8 9 +5V GND

2. Programavimas „Labas, pasauli!

Norėdami dirbti su įvairių dydžių ir tipų LCD ekranais, Arduino IDE redaktorius turi specialią biblioteką Skystieji kristalai. Norėdami įtraukti biblioteką, pirmoje programos eilutėje įrašome šią išraišką: #include Toliau turėsime nurodyti, kuriuos Arduino kaiščius naudojome ekranui prijungti. Šią informaciją nurodysime inicijuodami modulį: LiquidCrystal lcd(4, 5, 6, 7, 8, 9); Čia pirmieji du argumentai yra RS ir EN kontaktai, o likę keturi yra DB4-DB7 duomenų magistralė. linijos. Toliau mes nurodome ekrano dydį naudodami komandą "begin": lcd.begin(16, 2); Leiskite jums priminti, kad mūsų ekrane yra dvi eilutės, po 16 simbolių. Galiausiai, norint išvesti tekstą, mums reikia paprastos „spausdinimo“ funkcijos. Šios gerai žinomos frazės išvestis naudojant šią funkciją atrodys taip: lcd.print("Sveikas, pasauli!"); Visa programa atrodys taip: #include LiquidCrystal lcd(4, 5, 6, 7, 8, 9); void setup())( lcd.begin(16, 2); lcd.print("Sveikas, pasauli!"); ) void loop())( ) Įkelkite jį į Arduino Uno ir pažiūrėkite, kas vyksta ekrane. Gali būti trys pagrindinės situacijos 🙂 1) Ekrane bus rodoma „Sveikas, pasauli!“. Tai reiškia, kad viską sujungėte teisingai, o kontrastas kažkaip stebuklingai iš pradžių buvo nustatytas teisingai. Džiaugiamės ir pereiname prie kito skyriaus. 2) Ekrane bus rodoma juodų stačiakampių serija – reikia reguliuoti kontrastą! Štai kodėl į grandinę įtraukėme potenciometrą su rankenėle. Sukame jį nuo vieno krašto iki kito, kol ekrane pasirodys aiškus užrašas. 3) Dvi eilės juodų stačiakampių. Labiausiai tikėtina, kad prisijungdami padarėte klaidą. Tris kartus patikrinkite visus laidus. Jei neradote klaidos, paprašykite katės patikrinti!

3. Laikrodžio programavimas

Dabar, kai ekranas veikia tinkamai, pabandykime savo paprastą įrenginį paversti tikru elektroniniu laikrodžiu. Dėmesio! Kad būtų rodomas laikas, mums reikia laiko bibliotekos. Jei jis dar neįdiegtas, galite atsisiųsti archyvą iš nuorodos. Sujunkime: #include Tada mes nustatome dabartinę datą ir laiką naudodami funkciją „setTime“: setTime(23, 59, 59, 12, 31, 2015); Čia viskas aišku: valandos, minutės, sekundės, mėnuo, diena, metai. Norėdami parodyti datą, naudojame daugybę funkcijų:
  • metai() - grąžins mums metus;
  • mėnuo() - mėnuo;
  • day() - diena;
  • valanda() - valanda;
  • minutė() – grąžina minutę;
  • antras() - antras.
Dabar atkreipkime dėmesį į šį faktą. Jei suskaičiuotume simbolių skaičių tipiškame datos įraše: „12/31/2015 23:59:59“, gautume 19. O mes turime tik 16! Tačiau jis netelpa į vieną eilutę. Problemą galite išspręsti naudodami kitą naudingą funkciją - „setCursor“. Ši funkcija nustato žymeklį į norimą padėtį. Pavyzdžiui: lcd.setCursor(0,1); Perkelia žymeklį antrosios eilutės pradžioje. Žymeklis yra simbolio vieta, nuo kurios teksto išvestis prasidės kita komanda „spausdinti“. Naudokime šią funkciją, kad pirmoje eilutėje būtų rodoma data, o antroje – laikas. Dabar viskas aišku, kai rodoma data ir laikas. Lieka įprasti dalykai. Pavyzdžiui, po kiekvieno ekrano užpildymo mes jį išvalysime naudodami funkciją "clear()": lcd.clear(); Taip pat nėra prasmės rodyti duomenis dažniau nei kartą per sekundę, todėl tarp dviejų iteracijų pristabdysime 1000 milisekundžių. Taigi, viską sudėjus, gauname tokią programą: #include #įtraukti LiquidCrystal lcd(4, 5, 6, 7, 8, 9); void setup())( lcd.begin(16, 2); setTime(7,0,0,1,10,2015); // 7 val., 2015 m. sausio dešimtoji) void loop())( lcd.clear( ); lcd.print(day()); lcd.print("."); lcd.print(month()); lcd.print("."); lcd.print(year()); lcd.setCursor (0 , 1); lcd.print(valanda()); lcd.print(":"); lcd.print(minute()); lcd.print(":"); lcd.print(second()) ; delsimas (1000); ) Įkelkite eskizą į „Arduino Uno“ ir stebėkite laikrodžio eigą! 🙂 Siekiant įtvirtinti įgytas žinias, rekomenduoju mūsų laikrodį atnaujinti į visavertį žadintuvą. Viskas, ką jums reikia padaryti, tai pridėti keletą mygtukų ir garsinį signalą :)

1602 dydžių LCD ekranai, sukurti remiantis HD44780 valdikliu, šiandien vis dar išlieka vieni iš labiausiai prieinamų, paprastų ir paklausiausių kuriant bet kokius elektroninius prietaisus. Nenuostabu, kad juos galima pamatyti ir paprastuose, tiesiogine prasme ant kelio surinktuose įrenginiuose, ir rimtesniuose pramoniniuose, pavyzdžiui, kavos aparatuose. Būtent su šiuo ekranu surenkami populiariausi su Arduino susiję moduliai ir ekranai, pavyzdžiui, LCD I2C modulis ir LCD klaviatūros skydas.

Šiame straipsnyje su vaizdais išsamiai paaiškinama, kaip prijungti LCD prie Arduino ir rodyti informaciją.

1 veiksmas: 1602 LCD ekranas, skirtas Arduino

Turi 1602 ekranus dvi skirtingos versijos:

Geltonas apšvietimas su juodomis raidėmis
- arba (tai nutinka daug dažniau) mėlynas foninis apšvietimas su baltais.

HD44780 valdiklio ekranų dydis labai skiriasi, tačiau jie valdomi vienodai. Dažniausiai pasitaikantys matmenys yra 16 x 02 (ty 16 simbolių dviejose eilutėse) arba 20 x 04. Pačių simbolių skiriamoji geba yra 5 x 8 pikseliai.

Dauguma ekranų nepalaiko kirilicos (išskyrus CTK pažymėtus ekranus). Tačiau ši problema iš dalies išsprendžiama, o straipsnyje išsamiai aprašoma, kaip tai padaryti.

Ekrane yra 16 PIN jungtis prijungimui. Išvados turi ženklai lentos gale, tai yra taip:

1 (VSS) – neigiamas valdiklio maitinimo šaltinis.
2 (VDD) – teigiamas valdiklio maitinimo šaltinis.
3 (VO) – kontrasto valdymo nustatymai.
4 (RS) – registro pasirinkimas.
5 (R/W) – skaitymas ir rašymas, ypač rašymas, kai prijungtas prie žemės.
6 (E) – aktyvinimas (įjungti).
7–10 (DB0-DB3) – žemos eilės bitai iš aštuonių bitų sąsajos.
11–14 (DB4-DB7) – svarbiausi sąsajos bitai
15 (A) – teigiamas foninio apšvietimo maitinimo anodas.
16 (K) – neigiamas foninio apšvietimo maitinimo šaltinio katodas.

2 veiksmas: prijunkite LCD ekraną

Prieš prijungdami ekraną ir perkeldami į jį informaciją, verta patikrinti jo funkcionalumą. Pirmiausia įjunkite įtampą VSS ir VDD valdikliui, įjunkite foninį apšvietimą (A, K), tada sureguliuokite kontrastą. Tokiems parametrams tinka 10 kOhm potenciometras, jo forma nėra svarbi. +5V ir GND tiekiami į išorines kojeles, o centre esanti kojelė prijungta prie VO kaiščio.

Kai į grandinę tiekiama maitinimas, reikia pasiekti reikiamą kontrastą; jei jis sureguliuotas neteisingai, vaizdas ekrane nebus matomas. Norėdami sureguliuoti kontrastą, turite „žaisti“ su potenciometru. Teisingai surinkus grandinę ir teisingai sureguliavus kontrastą, viršutinė ekrano eilutė turi būti užpildyta stačiakampiais.

Kad ekranas veiktų, naudojama speciali biblioteka LiquidCrystal.h, integruota į Arduino IDE, apie kurią parašysiu žemiau. Jis gali veikti 8 bitų ir 4 bitų režimais. Pirmajame variante naudojami tik mažiausiai reikšmingi ir reikšmingiausi bitai (BB0-DB7), antrajame - tik mažiausiai reikšmingi (BB4-DB7).

Tačiau 8 bitų režimo naudojimas šiame ekrane yra neteisingas sprendimas; greičio pranašumo beveik nėra, nes jo atnaujinimo dažnis visada yra mažesnis nei 10 kartų per sekundę. Norėdami rodyti tekstą, prie valdiklio kaiščių turite prijungti kaiščius DB7, DB6, DB5, DB4, E ir RS. Juos galima prijungti prie bet kokių Arduino kaiščių, svarbiausia yra nustatyti teisingą seką kode.

Jei reikiamo simbolio dar nėra valdiklio atmintyje, galite jį nustatyti rankiniu būdu (iš viso iki septynių simbolių). Nagrinėjamų ekranų langelis turi penkių x aštuonių pikselių išplėtimą. Simbolio kūrimo užduotis yra parašyti kaukę bituku ir įdėti vienetus tose vietose, kur taškai turėtų šviesti, o nulius ten, kur jie neturėtų.

Aukščiau aptarta prijungimo schema ne visada yra gera, nes „Arduino“ naudojami mažiausiai šeši skaitmeniniai išėjimai.

3 veiksmas: sprendimas

Išnagrinėkime galimybę tai apeiti ir išsiversti tik dviem. Mums reikia papildomo keitiklio modulio, skirto LCD į IIC/I2C. Kaip jis yra lituojamas prie ekrano ir prijungtas prie Arduino, galite pamatyti toliau pateiktuose vaizduose.

Tačiau ši ryšio parinktis veikia tik su specialia biblioteka „LiquidCrystal_I2C1602V1“, kurią lengva rasti internete ir įdiegti, o po to galėsite ja naudotis be jokių problemų.

4 veiksmas: LiquidCrystal.h biblioteka

LiquidCrystal.h biblioteką galima atsisiųsti iš oficialaus šaltinio -. Taip pat galite atsisiųsti iš toliau pateiktų nuorodų:

Eskizas

Atsisiuntę archyvą, pakeiskite „LiquidCrystal“ aplanką „Arduino“ diegimo katalogo bibliotekų aplanke.

Galite pamatyti pavyzdinį eskizą Failas -> Pavyzdžiai -> LiquidCrystal -> HelloWorld_SPI(Failas -> Pavyzdžiai -> LiquidCrystal -> HelloWorld_SPI).

Tai baigia kitą mūsų pamoką. Linkime kokybiškų projektų!

Skystųjų kristalų ekranas (LCD), sutrumpintai vadinamas LCD, yra pagrįstas skystųjų kristalų technologija. Kuriant elektroninius įrenginius mums reikia nebrangaus įrenginio informacijai rodyti, o antrasis ne mažiau svarbus veiksnys yra paruoštų Arduino bibliotekų prieinamumas. Iš visų rinkoje esančių LCD ekranų dažniausiai naudojamas LCD 1602A, kuris gali rodyti ASCII simbolius 2 eilutėse (16 simbolių 1 eilutėje), kiekvieną simbolį 5x7 pikselių matricoje. Šiame straipsnyje apžvelgsime ekrano prijungimo prie Arduino pagrindus.

Techninės specifikacijos

Maitinimo įtampa: 5V
Ekrano dydis: 2,6 colio
Ekrano tipas: 2 eilutės x 16 simbolių
Foninio apšvietimo spalva: mėlyna
Charakterio spalva: balta
Matmenys: 80mm x 35mm x 11mm

Ekrano aprašymas

LCD 1602A yra elektroninis modulis, pagrįstas HD44780 tvarkykle iš Hitachi. LCD1602 turi 16 kontaktų ir gali veikti 4 bitų režimu (naudojant tik 4 duomenų linijas) arba 8 bitų režimu (naudojant visas 8 duomenų linijas), arba galima naudoti I2C sąsają. Šiame straipsnyje kalbėsiu apie prisijungimą 4 bitų režimu.

Kontaktinė užduotis:
VSS: „-“ modulio maitinimo šaltinis
VDD: „+“ modulio maitinimo šaltinis
BALSAS: kontrasto valdymo kaištis
RS: Registruotis Pasirinkite
RW: pasirinkite rašymo arba skaitymo režimą (kai prijungtas prie žemės, nustatykite rašymo režimą)
E: Kritimo vartai
DB0-DB3: sąsajos bitai
DB4-DB7: sąsajos bitai
A: „+“ foninio apšvietimo galia
K: "-" foninio apšvietimo galia

Modulio priekyje yra LCD ekranas ir kontaktų grupė.

Modulio gale yra du „lašelio“ dizaino lustai (ST7066U ir ST7065S) ir elektros instaliacija, nematau prasmės braižyti grandinės schemą, tik papasakosiu apie rezistorių R8 (100 Ohm), kuris tarnauja kaip ribojantis LED foninio apšvietimo rezistorius, todėl galite tiesiogiai prijungti 5 V prie A kaiščio. Šiek tiek vėliau parašysiu straipsnį, kuriame papasakosiu, kaip pakeisti LCD ekrano apšvietimą naudojant PWB ir tranzistorius.

LCD 1602A prijungimas prie Arduino (4 bitų režimas)

Reikalingos dalys:
Arduino UNO R3 x 1 vnt.
LCD ekranas 1602A (2×16, 5V, Mėlyna) x 1 vnt.
„DuPont“ viela, 2,54 mm, 20 cm, F-F (Moteris - Moteris) x 1 vnt.
Potenciometras 10 kOhm x 1 vnt.
PLS-16 jungtis x 1 vnt.
Vystymo lenta MB-102 x 1 vnt.
USB 2.0 A-B laidas x 1 vnt.

Ryšys:
Norėdami prisijungti, naudosime kūrimo plokštę; LCD1602a prijungimo prie Arduino 4 bitų režimu diagramą ir lentelę galite pamatyti toliau pateiktame paveikslėlyje.

Ekrano prijungimas prie duonos lentos bus atliekamas per PLS-16 kaiščius (juos reikia prilituoti prie ekrano). Įdiekite ekrano modulį į duonos plokštės plokštę ir prijunkite maitinimo VDD (2-asis kaištis) prie 5 V (Arduino) ir VSS (1-asis kaištis) prie GND (Arduino), tada prijunkite RS (4-asis kaištis) prie skaitmeninio 8 (Arduino) kaiščio. Įžeminkite RW (5-asis kaištis) prijungdami jį prie GND (Arduino), tada prijunkite E kaištį prie 8 kaiščio (Arduino). 4 bitų ryšiui reikalingi keturi kaiščiai (nuo DB4 iki DB7). Prijunkite kaiščius DB4 (11-asis kaištis), DB5 (12-asis kaištis), DB6 (13-asis kaištis) ir DB7 (14-asis kaištis) prie Arduino skaitmeninių kaiščių 4, 5, 6 ir 7. 10K potenciometras naudojamas ekrano kontrastui reguliuoti, prijungimo schema 1602a LCD ekranas parodytas žemiau

Biblioteka jau įtraukta į Arduino IDE ir jos diegti nereikia. Nukopijuokite ir įklijuokite šį pavyzdinį kodą į Arduino IDE programos langą ir įkelkite jį į valdiklį.

/* Testavimas atliktas naudojant Arduino IDE 1.6.11 Testavimo data 2016-09-20. */ #įtraukti LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() ( lcd.begin(16, 2); // Inicijuoja LCD 16x2 ) void loop() ( lcd.setCursor(0,0); // Nustatykite žymeklį į pirmąją eilutę lcd.print("Sveiki, world" ); // Spausdinkite tekstą lcd.setCursor(0,1); // Nustatykite žymeklį į antrą eilutę lcd.print("www.robotchip.ru"); // Spausdinkite tekstą )

Atsisiųsti programą

Šiek tiek apie programą.
Siekiant palengvinti ryšį tarp Arduino ir LCD ekrano, naudojama Arduino IDE integruota biblioteka. LiquidCrystal.h « - kuris skirtas LCD ekranams naudojant HD44780 („Hitachi“) mikroschemų rinkinys (arba suderinami lustai). Ši biblioteka gali valdyti ir 4 bitų režimą, ir 8 bitų režimo LCD ryšį.

Nuorodos
LCD1602A dokumentacija

Pirkite Aliexpress
Arduino UNO R3 valdiklis

  • FC-113 modulis yra pagrįstas PCF8574T lustu, kuris yra 8 bitų poslinkio registras - I2C nuosekliosios magistralės įvesties-išvesties „plėtimas“. Paveiksle mikroschema pažymėta DD1.
  • R1 yra apdailos rezistorius, skirtas reguliuoti LCD ekrano kontrastą.
  • Jungiklis J1 naudojamas ekrano apšvietimui įjungti.
  • 1…16 kaiščiai naudojami moduliui prijungti prie LCD ekrano kaiščių.
  • Norint pakeisti įrenginio I2C adresą, reikalingos kontaktinės plokštės A1...A3. Lituodami atitinkamus trumpiklius, galite pakeisti įrenginio adresą. Lentelėje parodytas adresų ir trumpiklių atitikimas: „0“ reiškia atvirą grandinę, „1“ – įdiegtą trumpiklį. Pagal numatytuosius nustatymus visi 3 trumpikliai yra atidaryti ir įrenginio adresas 0x27.

2 LCD ekrano prijungimo schema prie Arduino per I2C protokolą

Modulis yra prijungtas prie Arduino standartiniu būdu I2C magistralei: modulio SDA kaištis yra prijungtas prie analoginio prievado A4, SCL kontaktas yra prijungtas prie analoginio Arduino prievado A5. Modulis maitinamas +5 V iš Arduino. Pats modulis 1…16 kaiščiais yra prijungtas prie atitinkamų 1…16 kaiščių LCD ekrane.


3 Biblioteka darbui per I2C protokolą

Dabar mums reikia bibliotekos, kad galėtume dirbti su LCD per I2C sąsają. Galite naudoti, pavyzdžiui, šį (nuoroda eilutėje „Atsisiųsti pavyzdinį kodą ir biblioteką“).

Atsisiųstas archyvas LiquidCrystal_I2Cv1-1.rar išpakuokite į aplanką \bibliotekos\, kuris yra Arduino IDE kataloge.

Biblioteka palaiko standartinių LCD ekranų funkcijų rinkinį:

FunkcijaTikslas
Skystieji kristalai () sukuria LiquidCrystal tipo kintamąjį ir priima ekrano ryšio parametrus (pin numerius);
pradėti () LCD ekrano inicijavimas, parametrų nustatymas (eilučių ir simbolių skaičius);
aišku () ekrano išvalymas ir žymeklio grąžinimas į pradinę padėtį;
namai() grąžinkite žymeklį į pradinę padėtį;
setCursor() žymeklio nustatymas į nurodytą padėtį;
rašyti () LCD ekrane rodomas simbolis;
spausdinti () rodo tekstą LCD ekrane;
žymeklis () rodo žymeklį, t.y. pabraukimas po kito simbolio vieta;
noCursor() slepia žymeklį;
mirksėti () mirksi žymeklis;
noBlink () Atšaukti mirksėjimą;
noDisplay() ekrano išjungimas išsaugant visą rodomą informaciją;
ekranas () ekrano įjungimas išsaugant visą rodomą informaciją;
scrollDisplayLeft() slinkite ekrano turinį 1 pozicija į kairę;
scrollDisplayRight() slinkite ekrano turinį 1 padėtimi į dešinę;
autoscroll () įjungti automatinį slinktį;
noAutoscroll () išjungti automatinį slinktį;
iš kairės į dešinę() nustato teksto kryptį iš kairės į dešinę;
iš dešinės į kairę() teksto kryptis iš dešinės į kairę;
CreateChar() sukuria pasirinktinį LCD ekrano simbolį.

4 Teksto išvesties eskizasį LCD ekraną per I2C magistralę

Atidarykime pavyzdį: Failų pavyzdžiai LiquidCrystal_I2C CustomChars ir mes tai šiek tiek pakeisime. Parodysime pranešimą, kurio pabaigoje bus mirksintis simbolis. Kodo komentaruose komentuojami visi eskizo niuansai.

#įtraukti // įtraukti Wire biblioteką #include // prijungti LCD biblioteką #define printByte(args) write(args); // uint8_t širdis = (0x0,0xa,0x1f,0x1f,0xe,0x4,0x0); // simbolio „širdis“ bitų kaukė LiquidCrystal_I2C lcd(0x27, 16, 2); // Nustatykite adresą 0x27 16x2 LCD ekranui negaliojantis nustatymas () ( lcd.init(); // LCD ekrano inicijavimas lcd.backlight(); // įjungti ekrano apšvietimą lcd.createChar(3, heart); // sukurti „širdies“ simbolį atminties langelyje 3 lcd.home(); // perkelkite žymeklį viršutiniame kairiajame kampe, padėtyje (0,0) lcd.!"); // atspausdinkite teksto eilutę lcd.setCursor(0, 1); // perkelkite žymeklį į 2 eilutę, simbolį 1 lcd.print( " i "); // atspausdinti pranešimą 2 eilutėje lcd.printByte(3); // atspausdinti "širdies" simbolį, esantį 3 langelyje lcd.print(" Arduino "); } void loop() (// mirksi paskutinis simbolis lcd.setCursor(13, 1); // perkelkite žymeklį į 2 eilutę, 1 simbolį lcd.print("\t"); delsimas (500); lcd.setCursor(13, 1); // perkelkite žymeklį į 2 eilutę, 1 simbolį lcd.print(" "); delsimas (500); }

Beje, simboliai parašyti komanda lcd.createChar();, lieka ekrano atmintyje net ir išjungus maitinimą, nes parašyta, kad būtų rodomas ROM 1602.

5 Sukurkite savo simbolius skirtas LCD ekranui

Pažvelkime atidžiau į savo LCD ekranų simbolių kūrimo klausimą. Kiekvienas simbolis ekrane susideda iš 35 taškų: 5 pločio ir 7 aukščio (+1 rezervinė eilutė pabraukimui). Aukščiau pateikto eskizo 6 eilutėje apibrėžiame 7 skaičių masyvą: (0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0). Konvertuoti šešioliktainius skaičius į dvejetainius: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . Šie skaičiai yra ne kas kita, kaip bitų kaukės kiekvienai iš 7 simbolio eilučių, kur „0“ reiškia šviesų tašką, o „1“ – tamsų tašką. Pavyzdžiui, širdies simbolis, nurodytas kaip bitų kaukė, pasirodys ekrane, kaip parodyta paveikslėlyje.

6 LCD ekrano valdymas per I2C magistralę

Įkelkime eskizą į Arduino. Ekrane pasirodys užrašas, kurį nurodėme su mirksinčiu žymekliu pabaigoje.


7 Kas už I2C autobusas

Kaip premiją, pažvelkime į lotyniškų simbolių „A“, „B“ ir „C“ atvaizdavimo LCD ekrane laiko schemą. Šie simboliai yra saugomi ekrano ROM ir rodomi ekrane tiesiog perduodant jų adresus į ekraną. Diagrama paimta iš ekrano RS, RW, E, D4, D5, D6 ir D7 kaiščių, t.y. jau po FC-113 „I2C lygiagrečios magistralės“ keitiklio. Galime sakyti, kad gilinamės į techninę įrangą.


Lotyniškų simbolių „A“, „B“ ir „C“ išvesties LCD ekrane laiko schema 1602

Diagrama rodo, kad simboliai, esantys ekrano ROM (žr. duomenų lapo 11 p., nuoroda žemiau) yra perduodami dviem nibbles, kurių pirmasis nustato lentelės stulpelio numerį, o antrasis - eilutės numerį. Tokiu atveju duomenys „užfiksuojami“ signalo pakraštyje linijos E(Įgalinti) ir eilutę R.S.(Registrų pasirinkimas) yra loginės vienos būsenos, o tai reiškia, kad duomenys perduodami. Žema būsena RS eilutėje reiškia, kad siunčiamos instrukcijos, kurias matome prieš perduodant kiekvieną simbolį. Tokiu atveju perduodamas LCD ekrano vežimėlio grįžimo į padėtį (0, 0) instrukcijos kodas, kurį taip pat galima sužinoti išstudijavus techninį ekrano aprašymą.

Ir dar vienas pavyzdys. Ši laiko diagrama rodo širdies simbolio išvestį LCD ekrane.


Vėlgi, pirmieji du impulsai Įgalinti laikytis instrukcijų Namai()(0000 0010 2) - grąžinkite vežimėlį į padėtį (0; 0), o antrieji du - išveskite į LCD ekraną, saugomą atminties langelyje 3 10 (0000 0011 2) simbolis „širdis“ (instrukcija). lcd.createChar(3, širdis); eskizas).

Skystųjų kristalų ekranas (LCD), sutrumpintai vadinamas LCD, yra pagrįstas skystųjų kristalų technologija. Kuriant elektroninius įrenginius mums reikia nebrangaus įrenginio informacijai rodyti, o antrasis ne mažiau svarbus veiksnys yra paruoštų Arduino bibliotekų prieinamumas. Iš visų rinkoje esančių LCD ekranų dažniausiai naudojamas LCD 1602A, kuris gali rodyti ASCII simbolius 2 eilutėse (16 simbolių 1 eilutėje), kiekvieną simbolį 5x7 pikselių matricoje. Šiame straipsnyje apžvelgsime ekrano prijungimo prie Arduino pagrindus.

Techninės specifikacijos

Maitinimo įtampa: 5V
Ekrano dydis: 2,6 colio
Ekrano tipas: 2 eilutės x 16 simbolių
Foninio apšvietimo spalva: mėlyna
Charakterio spalva: balta
Matmenys: 80mm x 35mm x 11mm

Ekrano aprašymas

LCD 1602A yra elektroninis modulis, pagrįstas HD44780 tvarkykle iš Hitachi. LCD1602 turi 16 kontaktų ir gali veikti 4 bitų režimu (naudojant tik 4 duomenų linijas) arba 8 bitų režimu (naudojant visas 8 duomenų linijas), jis taip pat gali būti naudojamas. Šiame straipsnyje kalbėsiu apie prisijungimą 4 bitų režimu.

Kontaktinė užduotis:
VSS: „-“ modulio maitinimo šaltinis
VDD: „+“ modulio maitinimo šaltinis
BALSAS: kontrasto valdymo kaištis
RS: Registruotis Pasirinkite
RW: pasirinkite rašymo arba skaitymo režimą (kai prijungtas prie žemės, nustatykite rašymo režimą)
E: Kritimo vartai
DB0-DB3: sąsajos bitai
DB4-DB7: sąsajos bitai
A: „+“ foninio apšvietimo galia
K: "-" foninio apšvietimo galia

Modulio priekyje yra LCD ekranas ir kontaktų grupė.

Modulio gale yra du „lašelio“ dizaino lustai (ST7066U ir ST7065S) ir elektros instaliacija, nematau prasmės braižyti grandinės schemą, tik papasakosiu apie rezistorių R8 (100 Ohm), kuris tarnauja kaip ribojantis LED foninio apšvietimo rezistorius, todėl galite tiesiogiai prijungti 5 V prie A kaiščio. Šiek tiek vėliau parašysiu straipsnį, kuriame papasakosiu, kaip pakeisti LCD ekrano apšvietimą naudojant PWB ir tranzistorius.

LCD 1602A prijungimas prie Arduino (4 bitų režimas)

Reikalingos dalys:
Arduino UNO R3 x 1 vnt.
LCD ekranas 1602A (2×16, 5V, Mėlyna) x 1 vnt.
„DuPont“ viela, 2,54 mm, 20 cm, F-F (Moteris - Moteris) x 1 vnt.
Potenciometras 10 kOhm x 1 vnt.
PLS-16 jungtis x 1 vnt.
Vystymo lenta MB-102 x 1 vnt.
USB 2.0 A-B laidas x 1 vnt.

Ryšys:
Norėdami prisijungti, naudosime kūrimo plokštę; LCD1602a prijungimo prie Arduino 4 bitų režimu diagramą ir lentelę galite pamatyti toliau pateiktame paveikslėlyje.

Ekrano prijungimas prie duonos lentos bus atliekamas per PLS-16 kaiščius (juos reikia prilituoti prie ekrano). Įdiekite ekrano modulį į duonos plokštės plokštę ir prijunkite maitinimo VDD (2-asis kaištis) prie 5 V (Arduino) ir VSS (1-asis kaištis) prie GND (Arduino), tada prijunkite RS (4-asis kaištis) prie skaitmeninio 8 (Arduino) kaiščio. Įžeminkite RW (5-asis kaištis) prijungdami jį prie GND (Arduino), tada prijunkite E kaištį prie 8 kaiščio (Arduino). 4 bitų ryšiui reikalingi keturi kaiščiai (nuo DB4 iki DB7). Prijunkite kaiščius DB4 (11-asis kaištis), DB5 (12-asis kaištis), DB6 (13-asis kaištis) ir DB7 (14-asis kaištis) prie Arduino skaitmeninių kaiščių 4, 5, 6 ir 7. 10K potenciometras naudojamas ekrano kontrastui reguliuoti, prijungimo schema 1602a LCD ekranas parodytas žemiau

Biblioteka jau įtraukta į Arduino IDE ir jos diegti nereikia. Nukopijuokite ir įklijuokite šį pavyzdinį kodą į Arduino IDE programos langą ir įkelkite jį į valdiklį.

/* Testavimas atliktas naudojant Arduino IDE 1.6.11 Testavimo data 2016-09-20. */ #įtraukti LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() ( lcd.begin(16, 2); // Inicijuoja LCD 16x2 ) void loop() ( lcd.setCursor(0,0); // Nustatykite žymeklį į pirmąją eilutę lcd.print("Sveiki, world" ); // Spausdinkite tekstą lcd.setCursor(0,1); // Nustatykite žymeklį į antrą eilutę lcd.print("www.site"); // Spausdinkite tekstą )

Šiek tiek apie programą.
Siekiant palengvinti ryšį tarp Arduino ir LCD ekrano, naudojama Arduino IDE integruota biblioteka. LiquidCrystal.h « - kuris skirtas LCD ekranams naudojant HD44780 („Hitachi“) mikroschemų rinkinys (arba suderinami lustai). Ši biblioteka gali valdyti ir 4 bitų režimą, ir 8 bitų režimo LCD ryšį.

Pirkite Aliexpress
Arduino UNO R3 valdiklis