Vsak radijski amater po določenem številu preprostih ohrovtov doseže cilj konstruirati nekaj veličastnega pri uporabi senzorjev in gumbov. Bolj zanimivo je prikazati podatke kot vrata monitorja. Ampak potem se postavlja vprašanje: kateri zaslon izbrati? In na splošno, kako ga povezati, kaj je potrebno za povezavo? Odgovori na ta vprašanja bodo obravnavani v tem članku.
LCD 1602
Kje se uporablja?
Povezovanje z Arduino
# vključi //Dodaj zahtevano knjižnico
LiquidCrystal lcd (765 432); //(RS, E, DB4 DB5 DB6 DB7)
void setup () {
lcd.bg (16 2); //Nastavite velikost zaslona
lcd.setCursor (0 0); //Nastavite kazalec na začetek prve vrstice
lcd.print ("Zdravo, svet!"); //Izhodno besedilo
lcd.setCursor (0 1); //Namestite kazalko na začetek vrstice 2
lcd.print ("fb.ru"); //Izpišite besedilo
}
void loop () {
}
Kaj naredi koda? Prva naloga je povezati knjižnico za delo z zaslonom. Kot je že bilo omenjeno, je ta knjižnica že del Arduino IDE in ni potrebno dodatno nalaganje in namestitev. Določite kontakte, ki so povezani z naslednjima: RS, E, DB4 DB5 DB6 DB7. Po tem se določi velikost zaslona. Ker delamo na različici s 16 znaki in dvema vrsticama, pišemo takopomena. Kazalko postavimo na začetek prve vrstice in izpišemo prvo besedilo Hello World. Nato postavite kazalko na drugo vrstico in prikažite ime mesta. To je vse! Upoštevana je bila povezava lcd 1602 z Arduino Uno.
& lt; script type = "text /javascript" & gt;
lahko 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)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
Kaj je I2C in zakaj je potreben?
Kot je bilo že omenjeno, povezava zaslona zajema veliko stikov. Na primer, pri delu z več senzorji in LCD-prikazovalnikom 1602 stiki morda ne bodo dovolj. Pogosto radioamaterji uporabljajo različice Uno ali Nano, kjer ni veliko stikov. Potem so ljudje prišli do posebne šilde. Na primer, I2C. Omogoča povezavo zaslona s samo 4 stiki. To je dvakrat manj. Modul I2C se prodaja ločeno, kjer ga je potrebno spajati in že spajkati na LCD zaslon 1602.
Priključitev preko modula I2C
Priključitev LCD 1602 na Arduino Nano z I2C zavzema malo prostora, samo 4 kontakti: ozemljitev, moč in 2 izhoda za prenos podatkov. Napajanje in ozemljitev sta povezana na 5V in GND na Arduino. Obstajata dva kontakta: SCL in SDA sta povezana z analognimi zatiči. Na sliki si lahko ogledate primer povezovanja lcd 1602 z arduino z modulom I2C:
Programska koda
Če delate z zaslonom brez modulabilo je potrebno uporabiti samo eno knjižnico, nato pa za delo z modulom potrebujemo dve knjižnici. Eden od njih je že v Arduino IDE-Wire. Še eno knjižnico, LiquidCrystal I2C, je treba prenesti ločeno in namestiti. Če želite namestiti knjižnico Arduino, morate vsebino prenesenega arhiva prenesti v korenski imenik knjižnic. Primerna koda, ki uporablja I2C:
& lt; script type = "text /javascript" & gt;
lahko 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)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
# vključi
# vključi
LiquidCrystal_I2C lcd (0x27162); //Namestite zaslon
void setup ()
{
lcd.init ();
lcd.backlight (); //vklopite osvetlitev zaslona
lcd.print ("FB.ru");
lcd.setcursor (8 1);
lcd.print ("LCD 1602");
}
void loop ()
{
//Nastavite kazalec na drugo vrstico in ničelni znak.
lcd.setCursor (0 1);
//Prikazujemo število sekund od začetka arudui
lcd.print (millis () /1000);
}
Kot lahko vidite, je koda skoraj enaka.
Kako dodati svoj lik?
Težava pri teh zaslonih je, da ni podprta za cirilske črke in simbole. Na primer, potrebujete znak za prenos zaslona, da ga lahko prikaže. Zaslon vam omogoča, da ustvarite do 7 vaših znakov. Predstavljajte si tabelo:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | |
Če 0 - ni nič, če je 1 pobarvano območje. V zgornjem primeru si lahko ogledate ustvarjanje smeška nasmejanega nasmeha. Na primer, program Arduino bo izgledal takole:
#include
#include //Potrebujemo knjižnico
//Bitmap maska nasmeh
byte smile