Svaki radioamater nakon određenog broja jednostavnih klica postiže cilj izgradnje nečeg grandioznog u korištenju senzora i gumba. Mnogo je zanimljivije prikazati podatke od porta monitora. Ali onda se postavlja pitanje: koji prikaz odabrati? I općenito, kako ga spojiti, što je potrebno za povezivanje? Odgovori na ova pitanja bit će obrađeni u ovom članku.
LCD 1602
Gdje se koristi? Ovaj prikaz ima svoju popularnost ne samo u radioamaterima, već iu velikim proizvođačima. Na primjer, pisači, aparati za kavu također upotrebljavaju LCD1602. To je zbog njegove niske razinecijena vrijedi ovaj prikaz na kineskim dvorištima 200-300 rubalja. Kupnja je upravo tu, kao u našim trgovinama, oznake na ovom zaslonu su vrlo visoke.
Povezivanje s Arduinom
# uključi //Dodaj potrebnu knjižnicu
LiquidCrystal lcd (765 432); //(RS, E, DB4 DB5 DB6 DB7)
void setup () {
lcd. Počinje (16 2); //Postavite veličinu zaslona
lcd.setCursor (0 0); //Postavite pokazivač na početak prvog retka
lcd.print ("Hello, world!"); //Izlazni tekst
lcd.setCursor (0 1); //Instalirajte kursor na početak retka 2
lcd.print ("fb.ru"); //Izlazni tekst
}
void loop () {
}
Što čini kod? Prvi zadatak je povezivanje knjižnice za rad s zaslonom. Kao što je već spomenuto, ova knjižnica je već dio Arduino IDE-a i više je ne morate preuzimati i instalirati. Odredite kontakte koji su spojeni na sljedeće: RS, E, DB4 DB5 DB6 DB7. Nakon toga se određuje veličina zaslona. Budući da radimo na verziji sa 16 znakova i 2 retka, pišemo takovrijednost. Postavili smo pokazivač na početak prvog retka i zaključili prvi tekst Hello World. Zatim postavite pokazivač na drugi redak i prikažite naziv stranice. To je sve! Razmotrena je povezanost lcd 1602 s Arduinom Unoom.
& lt; script type = "text /javascript" & gt;
može blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings2.statId = 70350;
Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ovaj, ovaj.dokument," yandexContextAsyncCallbacks ");
Što je I2C i zašto je potrebno?
Kao što je već spomenuto, veza na zaslonu ima mnogo kontakata. Na primjer, kada radite s višestrukim senzorima i LCD zaslonima 1602 kontakti jednostavno ne mogu biti dovoljni. Često radioamateri koriste verzije Uno ili Nano, gdje nema mnogo kontakata. Tada su ljudi došli s posebnom šildom. Na primjer, I2C. Omogućuje vam povezivanje zaslona sa samo 4 kontakta. To je dva puta manje. I2C modul se prodaje zasebno, gdje je potrebno lemiti ga, i već zalemljen na LCD zaslon 1602.
Povezivanje preko I2C modula
Spajanje LCD 1602 na Arduino Nano s I2C zauzima malo prostora, samo 4 kontakta: uzemljenje, napajanje i 2 izlaza za prijenos podataka. Snaga i masa su spojeni na 5V i GND na Arduino. Preostala su dva kontakta: SCL i SDA povezani su s bilo kojim analognim pinovima. Na slici možete vidjeti primjer spajanja lcd 1602 na arduino s I2C modulom:
Programski kod
Ako radi s zaslonom bez modulabilo je potrebno koristiti samo jednu knjižnicu, a za rad s modulom potrebne su dvije knjižnice. Jedan od njih je već u Arduino IDE-Wire. Druga knjižnica, LiquidCrystal I2C, mora se zasebno preuzeti i instalirati. Za instaliranje Arduino knjižnice, sadržaj preuzete arhive mora se preuzeti u korijenski direktorij knjižnica. Primjer koda pomoću I2C:
& lt; script type = "text /javascript" & gt;
može blockSettings3 = {blockId: "R-A-271049-6", renderTo: "yandex_rtb_R-A-70350-44", async: 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings3.statId = 70350;
Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ovaj, ovaj.dokument," yandexContextAsyncCallbacks ");
# uključiti
# uključiti
LiquidCrystal_I2C lcd (0x27162); //Instalirajte prikaz
void setup ()
{
lcd.init ();
lcd.backlight (); //Uključivanje pozadinskog osvjetljenja zaslona
lcd.print ("FB.ru");
lcd.setCursor (8 1);
lcd.print ("LCD 1602");
}
void loop ()
{
//Postavite kursor na drugi redak i nulti znak.
lcd.setCursor (0 1);
//Prikazujemo broj sekundi od početka arudui
lcd.print (millis () /1000);
}
Kao što možete vidjeti, kod je gotovo isti.
Kako dodati svoj lik?
Problem s ovim zaslonima je u tome što nema podrške za ćirilične znakove i simbole. Na primjer, potreban vam je znak za preuzimanje zaslona tako da ga možete prikazati. Za to vam zaslon omogućuje stvaranje do 7 znakova. Zamislite tablicu:
0 | 0 | 0 | 1 | |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | |
Ako 0 - nema ničega, ako je 1 oslikano područje. U gornjem primjeru možete vidjeti stvaranje osmijeha osmijeha. Na primjer, Arduino program će izgledati ovako:
#include
#include //Potrebna nam je knjižnica
//Bitmap maska osmijeh
bajt osmjeh