Vienos LCD eilutės slinkimas: 4 žingsniai (su nuotraukomis)
Vienos LCD eilutės slinkimas: 4 žingsniai (su nuotraukomis)
Anonim
Image
Image

Skystųjų kristalų bibliotekoje yra dvi naudingos funkcijos scrollDisplayLeft () ir scrollDisplayRight (). Šios funkcijos perkelia visą ekraną. Tai reiškia, kad jie slenka abi eilutes 1602 skystųjų kristalų ekrane ir visas keturias eilutes 2004 m. Mums dažnai reikia gebėjimo slinkti vieną eilutę į šiuos ekranus, o ne slinkti visą ekraną.

Šioje instrukcijoje yra dvi papildomos funkcijos: „scrollInFromRight“(eilutė, skirta tekstui rodyti, eilutė, kurią reikia slinkti) ir „scrollInFromLeft“(eilutė, skirta tekstui rodyti, eilutė, kurią reikia slinkti). Šios dvi funkcijos, kurios slenka eilutes į LCD ekraną, kartu su dviem funkcijomis: scrollLineRight (eilutė tekstui rodyti, eilutė, kurią reikia slinkti) ir scrollLineLeft (eilutė tekstui rodyti, eilutė, kurią reikia slinkti) iš ankstesnio „Instructable“, kuris buvo pateiktas funkcijos, leidžiančios slinkti eilutes nuo ekrano, suteikia mums keletą galingų būdų valdyti, kaip tekstas gali būti pateiktas arba pašalintas iš LCD ekrano.

1 žingsnis: ko reikia

Pakabinti
Pakabinti

- 1602 arba 2004 m. Skystųjų kristalų ekranas arba skystųjų kristalų ekranas

- Žr. Toliau pateiktą pastabą dėl 2004 m. Skystųjų kristalų ekrano naudojimo

- „Arduino UNO R3“arba klonas

- USB kabelis, skirtas „Arduino“prijungti prie kompiuterio

- Pusiau dydžio, 400 kaklaraiščio taškų, duonos lenta

- „Arduino IDE“

- eksperimentinė platforma (neprivaloma, bet naudinga)

Reikalingi elementai yra 1602 arba 2004 skystųjų kristalų ekranas [jei naudojamas 2004 m., Be problemų bus galima slinkti iš dešinės, pakeisdami funkciją lcd.begin (), kad atspindėtumėte, jog dabar naudojate 20 simbolių x 4 eilutę ekranas. [Norėdami slinkti iš kairės naudodami 2004 m. Ekraną, reikia perrašyti funkcijos s crollInFromLeft () kodą]. Be skystųjų kristalų, jums reikės „Arduino UNO“arba klono, „Arduino IDE“ir USB kabelio, kad galėtumėte prijungti „Arduino“prie kompiuterio.

Vietoj čia rodomo atskiro LCD galima naudoti LCD ekraną. Jei taip yra, tuomet turėsite pakeisti LCD kaiščių priskyrimus žemiau esančiame eskize.

- Nepriklausomam 1602 skystųjų kristalų ekranui savo eskizuose naudoju šiuos kaiščių priskyrimus:

// LiquidCrystal (rs, įgalinti, d4, d5, d6, d7)

„LiquidCrystal lcd“(12, 11, 5, 4, 3, 2);

ir įtraukė skystųjų kristalų biblioteką LiquidCrystal.h.

- LCD ekranui savo eskizuose naudoju šias kaiščių užduotis, taip pat įtraukiau skystųjų kristalų biblioteką LiquidCrystal.h.

// LiquidCrystal (rs, įgalinti, d4, d5, d6, d7)

„LiquidCrystal lcd“(8, 13, 9, 4, 5, 6, 7);

Bet kuriuo maršrutu čia bus rodomas kodas, ty LCD ekranas arba atskiras LCD. Šioje instrukcijoje buvo naudojamas 1602 atskiras LCD ekranas, tačiau, kaip pažymėta, galima naudoti ir 1602 skydą, jei atsižvelgiama į skirtingus kaiščių priskyrimus.

Aš naudoju „eksperimentinę platformą“, kad prijungčiau „Arduino UNO“prie pusės dydžio, 400 surišimo taškų, duonos lentos. (Žr. Ankstesnį mano instrukciją „Eksperimentinė„ Arduino UNO R3 “platforma, kaip ją paruošti naudoti“). Tačiau eksperimentinės platformos nereikia, nors man tai palengvina ir pagreitina LCD prijungimą prie UNO.

Užduotis, kurias naudoju prijungdamas LCD ekraną prie UNO, galima pamatyti aukščiau.

2 žingsnis: prijungimas

Skystųjų kristalų ekranas yra prijungtas prie duonos lentos, o tada prijungimo laidai iš duonos lentos prijungiami prie atitinkamų „Arduino“kaiščių (jei turite klausimų apie naudotas jungtis, žr. 2 veiksmą).

Šiam projektui man labiau patiko atskiras skystųjų kristalų ekranas, o ne skydas, nes jis mane labiau tenkino ir leido lengvai pamatyti, kokie kaiščiai yra. Tai taip pat leidžia naudoti potenciometrą su rankenėle, o ne skydo potenciometrą, kurį reikia sureguliuoti atsuktuvu.

Norint naudoti atskirą skystųjų kristalų ekraną, reikia naudoti atskirą 10k omų potenciometrą. Kaip minėta aukščiau, aš naudoju vieną su rankenėle, kurios valytuvas prijungtas prie trečiojo LCD kaiščio (skaičiuojant iš dešinės, kai LCD kaiščiai nukreipti į jus). Potenciometras naudojamas valdyti LCD kontrastą. Sujungimai yra vienodi 1602 ir 2004 m. Tačiau teiginį lcd.begin (16, 2) eskize reikia pakeisti į lcd.begin (20, 4), kad būtų parodytas, jog mūsų LCD ekranas pasikeitė nuo 16 simbolis dviem eilutėmis iki 20 simbolių keturiomis eilutėmis.

Pažvelgus į pridėtas nuotraukas, parodytas mano naudojamas prijungimas, įskaitant eksperimentinę platformą ir 10 k potenciometrą.

3 žingsnis: eskizas

Eskizas
Eskizas
Eskizas
Eskizas
Eskizas
Eskizas

Tiesiog įveskite pridėtą eskizą į „Arduino IDE“. Atminkite, kad „Instructable“svetainė dažnai pašalina visus didesnius ir mažesnius ženklus ir tarp jų esantį tekstą. Taigi būkite tikri ir įtraukite tekstą #include LiquidCrystal.h ir įterpkite žodžius LiquidCrystal.h į didesnį ir mažesnį už simbolius.

// Eskizas, skirtas slinkti simbolius į LCD ekraną

#include // Žr. pastabą tekste apie tai, ko čia reikia, t. y. „LiquidCrystal.h“, esančią viduje

// didesnis ir mažesnis už simbolius

// Ši svetainė dažnai pašalina didesnius ir mažesnius simbolius ir tarp jų esantį tekstą

// LiquidCrystal (rs, įgalinti, d4, d5, d6, d7)

„LiquidCrystal lcd“(12, 11, 5, 4, 3, 2);

// Paskelbti LCD kaip „LiquidCrystal“objektą

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // Delsimas tarp pamainų

void scrollInFromRight (int eilutė, char str1 ) {

// Parašė R. Jordan Kreindler 2016 m. Birželio mėn

i = strlen (str1);

už (j = 16; j> = 0; j--) {

lcd.setCursor (0, eilutė);

už (k = 0; k <= 15; k ++) {

lcd.print (""); // Išvalyti liniją

}

lcd.setCursor (j, eilutė);

lcd.print (str1);

uždelsimas (delayTime2);

}

}

void scrollInFromLeft (int eilutė, char str1 ) {

// Parašė R. Jordan Kreindler 2016 m. Birželio mėn

i = 40 - strlen (str1);

eilutė = eilutė - 1;

(j = i; j <= i+16; j ++) {

už (k = 0; k <= 15; k ++) {

lcd.print (""); // Išvalyti liniją

}

lcd.setCursor (j, eilutė);

lcd.print (str1);

uždelsimas (delayTime2);

}

}

void setup () {

Serial.begin (9600);

Serial.println („Pradedamas testas …“);

LCD. pradžia (16, 2);

lcd.clear ();

lcd.print („Tik bandymas“);

}

void loop () {

lcd.clear ();

scrollInFromRight (0, „1 eilutė iš dešinės“);

scrollInFromRight (1, „2 eilutė iš dešinės“);

lcd.clear ();

scrollInFromLeft (0, „1 eilutė iš kairės“);

scrollInFromLeft (1, „2 eilutė iš kairės“);

lcd.clear ();

scrollInFromRight (0, „1 eilutė iš dešinės“);

scrollInFromLeft (1, „2 eilutė iš kairės“);

lcd.clear ();

}

Dvi funkcijos: „scrollInFromRight“(eilutė tekstui rodyti, eilutė, kurią reikia slinkti) ir „scrollInFromLeft“(eilutė tekstui rodyti, eilutė, kurią reikia slinkti) gali būti perkeltos į jūsų eskizą, kad būtų galima valdyti eilutes, kurios slenkamos į LCD ekraną. Šios funkcijos suteikia elegantišką būdą perkelti naują tekstą į ekraną.

Kartu su dviem funkcijomis, esančiomis eskize, esančiame instrukcijoje „Slinkti vieną LCD eilutę kairėn arba dešinėn, kaip“, keturios funkcijos suteikia elegantiškus būdus, kaip slinkti tekstą į LCD ekraną ir išjungti. Šios funkcijos leidžia slinkti tekstą po vieną eilutę ir nereikalauja, kad būtų rodomas visas ekranas, kaip ir funkcijos scrollDisplayLeft () ir scrollDisplayRight ().

Ši slinkimo galimybė leidžia mums pateikti ilgesnes eilutes, nei paprastai galima rodyti ekrane. Tai reiškia, kad 1602 ekrane neapsiribojama tik 16 simbolių eilutėje (nors vienu metu bus rodomi tik 16), o 2004 m. - ne daugiau kaip 20 simbolių eilutėje.

Be to, galbūt norėsite pakoreguoti rodymo laiką tarp slinkčių, kad atitiktų jūsų poreikius.

4 žingsnis: Vėliau

Tai viskas. Šios ir dvi ankstesnio „Instructable“funkcijos gali būti pridėtos prie bet kurio eskizo, kuriame naudojamas LCD ir rodomas tekstas. Kaip pažymėta, galimybė naudoti ilgesnes eilutes yra neabejotina nauda, kurią galima pasiekti naudojant slinkimą.

Jei norite susisiekti su manimi bet kokiais klausimais ar gauti papildomos informacijos, arba praplėsti savo žinias šioje srityje, mane galima susisiekti adresu [email protected]. (norėdami susisiekti su manimi, pakeiskite antrąjį „i“į „e“.

Rekomenduojamas: