2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Knjižnica s tekućim kristalima ima dvije korisne funkcije scrollDisplayLeft () i scrollDisplayRight (). Ove funkcije pomiču cijeli zaslon. Odnosno, pomiču obje linije na LCD -u 1602 i sve četiri linije na LCD -u iz 2004. godine. Ono što nam često treba je mogućnost pomicanja jednog retka na ove zaslone umjesto pomicanja po cijelom zaslonu.
Ovaj Instructable nudi dvije dodatne funkcije, scrollInFromRight (redak za prikaz teksta, niz za pomicanje) i scrollInFromLeft (redak za prikaz teksta, niz za pomicanje). Ove dvije funkcije koje pomiču linije na LCD zaslon u kombinaciji s dvije funkcije, scrollLineRight (redak za prikaz teksta, niz za pomicanje) i scrollLineLeft (redak za prikaz teksta, niz za pomicanje) iz mog ranijeg Instructable -a, koji je predstavio funkcije za pomicanje linija s zaslona daje nam nekoliko moćnih načina za kontrolu načina na koji se tekst može prikazati na LCD zaslonu ili ukloniti s njega.
Korak 1: Što je potrebno
- Samostalni LCD zaslon veličine 1602 ili 2004, ili LCD štit
- Pogledajte donju napomenu u vezi s upotrebom LCD zaslona iz 2004. godine
- Arduino UNO R3 ili klon
- USB kabel za povezivanje Arduina s računalom
- Pola veličine, 400 vezanih bodova, osnova
- Arduino IDE
- Eksperimentalna platforma (izborna, ali korisna)
Potrebne stavke su LCD zaslon ili 1602 ili 2004 [ako se koristi 2004, bez problema će se pomaknuti s desne strane promjenom funkcije lcd.begin () kako bi se pokazalo da sada koristite red od 20 znakova x 4 prikaz. [Za pomicanje slijeva pomoću zaslona iz 2004. potrebno je prepisivanje koda funkcije s crollInFromLeft ()]. Osim LCD -a, za povezivanje Arduina s računalom trebat će vam Arduino UNO ili klon, Arduino IDE i USB kabel.
Umjesto ovdje prikazanog samostalnog LCD -a može se koristiti LCD štit. U tom slučaju, potrebno je promijeniti raspored pinova za LCD na donjoj skici.
- Za nezavisni LCD zaslon od 1602 koristio sam sljedeće skice u svojim skicama:
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LCD tekući kristal (12, 11, 5, 4, 3, 2);
i uključivao je biblioteku LiquidCrystal LiquidCrystal.h.
- Za LCD ekran koristim sljedeće skiciranje u skicama, a također sam uključio i biblioteku LiquidCrystal.h Liquid Crystal.
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LCD tekući kristal (8, 13, 9, 4, 5, 6, 7);
Ovdje će kôd pokrenuti bilo koja ruta, tj. Ili LCD štit ili samostalni LCD. U ovom Instructableu korišten je samostalni LCD zaslon 1602, ali kao što je napomenuto, može se koristiti i štitnik 1602 ako se uzmu u obzir različite dodjele pinova.
Koristio sam "eksperimentalnu platformu" za povezivanje Arduino UNO-a s pola veličine, 400 vezanih točaka, ploču. (Pogledajte moj prethodni Instructable, "Eksperimentalna platforma za Arduino UNO R3, kako ga pripremiti za upotrebu"). Međutim, eksperimentalna platforma nije potrebna, iako za mene spajanje LCD -a na UNO čini mnogo lakšim i bržim.
Zadaci koje sam koristio za spajanje LCD -a na UNO mogu se vidjeti gore.
Korak 2: Spajanje
LCD je uključen u matičnu ploču, a zatim su žice za spajanje povezane s matične ploče na odgovarajuće pinove na Arduinu (pogledajte korak 2 ako imate pitanja o vezama koje sam koristio).
Više sam volio samostalni LCD za ovaj projekt nego štit jer me to više zadovoljavalo i omogućilo mi je da lako vidim koje su igle dostupne. Omogućuje mi i korištenje potenciometra koji ima gumb, a ne potenciometra štita koji se mora namjestiti odvijačem.
Samostalni LCD zahtijeva upotrebu zasebnog potenciometra od 10 k ohma. Kao što je gore napomenuto, koristio sam jedan s gumbom koji ima brisač spojen na treći LCD pin (računajući s desne strane s iglama LCD -a okrenutim prema vama). Potenciometar se koristi za kontrolu kontrasta LCD -a. Priključci su isti za 1602. i 2004. No, izjavu lcd.begin (16, 2) potrebno je na skici promijeniti u lcd.begin (20, 4) kako bi se pokazalo da se naš LCD promijenio sa 16 prikaz po dva retka do 20 znakova po četiri retka jedan.
Pogled na priložene fotografije prikazuje spoj koji sam koristio, uključujući eksperimentalnu platformu i 10k potenciometar.
Korak 3: Skica
Samo unesite priloženu skicu u Arduino IDE. Imajte na umu da web mjesto Instructable često uklanja sve znakove veće i manje od znakova i tekst između njih. Stoga svakako uključite tekst, #uključite LiquidCrystal.h i ubacite riječi LiquidCrystal.h unutar simbola veće od i manje od.
// Skicirajte za pomicanje znakova na LCD zaslon
#include // Pogledajte napomenu u tekstu o tome što je ovdje potrebno, tj. LiquidCrystal.h zatvoreno unutra
// veći od i manji od simbola
// Ova stranica često uklanja više od i manje od simbola i teksta između njih
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LCD tekući kristal (12, 11, 5, 4, 3, 2);
// Deklarirati lcd kao objekt LiquidCrystal
int i = 0;
int j = 0;
int k = 0;
int delayTime2 = 350; // Kašnjenje između smjena
void scrollInFromRight (int linija, char str1 ) {
// Napisao R. Jordan Kreindler lipanj 2016
i = strlen (str1);
za (j = 16; j> = 0; j--) {
lcd.setCursor (0, redak);
za (k = 0; k <= 15; k ++) {
lcd.print (""); // Čista linija
}
lcd.setCursor (j, linija);
lcd.print (str1);
kašnjenje (delayTime2);
}
}
void scrollInFromLeft (int red, char str1 ) {
// Napisao R. Jordan Kreindler lipanj 2016
i = 40 - strlen (str1);
linija = linija - 1;
za (j = i; j <= i+16; j ++) {
za (k = 0; k <= 15; k ++) {
lcd.print (""); // Čista linija
}
lcd.setCursor (j, linija);
lcd.print (str1);
kašnjenje (delayTime2);
}
}
void setup () {
Serial.begin (9600);
Serial.println ("Pokretanje testa …");
lcd.begin (16, 2);
lcd.clear ();
lcd.print ("Samo test");
}
void loop () {{100} {101}
lcd.clear ();
scrollInFromRight (0, "Linija1 s desne strane");
scrollInFromRight (1, "Red 2 s desne strane");
lcd.clear ();
scrollInFromLeft (0, "Linija1 s lijeva.");
scrollInFromLeft (1, "Red 2 slijeva.");
lcd.clear ();
scrollInFromRight (0, "Linija1 s desne strane");
scrollInFromLeft (1, "Red 2 slijeva.");
lcd.clear ();
}
Dvije funkcije: scrollInFromRight (redak za prikaz teksta, niz za pomicanje) i scrollInFromLeft (redak za prikaz teksta, niz za pomicanje) mogu se premjestiti u skicu za kontrolu linija koje se pomiču na LCD zaslon. Ove funkcije pružaju elegantan način za premještanje novog teksta na zaslon.
U kombinaciji s dvije funkcije na skici sadržanoj u uputama "Pomaknite jednu liniju LCD -a lijevo ili desno, kako", četiri funkcije pružaju elegantne načine pomicanja teksta na LCD zaslon i s njega. Ove vam funkcije omogućuju pomicanje teksta po jedan redak i ne zahtijevaju pomicanje cijelog zaslona kao i funkcije, scrollDisplayLeft () i scrollDisplayRight ().
Ova mogućnost pomicanja omogućuje nam prikazivanje redaka dulje nego što zaslon obično može prikazati. Odnosno, za prikaz 1602 nismo ograničeni na samo 16 znakova po retku (iako će se istovremeno prikazivati samo 16), a za 2004. nismo ograničeni na 20 znakova po retku.
Osim toga, možda ćete htjeti prilagoditi vrijeme prikaza između pomicanja tako da odgovara vašim potrebama.
Korak 4: Nakon toga
To je sve. Ove se funkcije i dvije iz mog prethodnog Instructable -a mogu dodati bilo kojoj skici koju koristite, a koja koristi LCD i prikazuje tekst. Kao što je napomenuto, mogućnost korištenja dužih linija definitivna je korist koja je moguća upotrebom pomicanja.
Želite li me kontaktirati s bilo kakvim pitanjima ili dodatnim informacijama ili proširiti svoje znanje u prikazanom području, možete me kontaktirati na [email protected]. (molimo zamijenite drugi 'i' sa 'e' da me kontaktirate.