Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil
Mis see on – LCD?
- TFT (inglise keelesThin film transistor liquid crystal display) on vedelkristallkuvari põhitüüp, milles pildielemente tüüritakse kiletransistoride (TFT) vahendusel.[1] Enamasti kasutatakse polükristallilise räni alusel valmistatud väljatransistore. pildielementide läbipaistvuse juhtimise niisugust skeemi nimetatakse aktiivmaatriksiks. Maatriksi iga pildielement ehk piksel koosneb tegelikult kolmest alampikslist, millest väljuva valguse muudavad värviliseks nende ees paiknevad punased, rohelised ja sinised värvifiltrid (RGB). Kiletransistori ülesanne pole aga mitte ainult piksli tüürpinge sisselülitamine, vaid ka selle pinge püsivana hoidmine ühe pildiperioodi vältel (nt teleri 100 Hz värskendussageduse korral 0,01 sekundi kestel). Tüürpingele vastavat elektrilaengut hoiab alal kiletransistoriga seotud mahtuvus. Niisiis ülalnimetatud uksehoidjad hoiavad ukse ühtlaselt avatuna kogu kaadriperioodi jooksul (ilma transistori abita hakkaks uks kohe tüürimpulsi saabumise järel sulguma).
- ikslid on ekraanile paigutatud rastrina[2] ehk maatriksina, mis koosneb ridadest ja veergusest. Igal real ja veerul on oma juhe, mille kaudu saabuvad tüürsignaalid. Rea ja veeru juhtmete abil leitakse üles üliväiksed kiletransistorid (TFT), mis paiknevad vahetult selle piksli (vedelkristalli) taga, mille läbipaistvust on vaja muuta.[3] Konkreetse piksli poole pöördumisel lülitatakse sisse sobiv rida ja ühtlasi saadetakse signaal vajalikule veerule. Kuna kõik teised veerud on välja lülitatud, siis jõuab signaal ainult õige pikslini.[3]
- Kiletransistorid ise töötavad piltlikult öeldes uksehoidjatena, kes hoiavad ust vastavalt saadud käsule vähem või rohkem lahti, kusjuures usteks on vedelkristallid. Vastavalt rakenduvale pingele muudab vedelkristall oma molekulaarset struktuuri[4]. Selle tulemusena lasevad vedelkristallid vastavalt tüürpingele kas vähem või rohkem valgust läbi. Valguse saavad pikslid ekraani taga olevatest valgusallikatest (tänapäeval leedlampidest).

#include <LiquidCrystal.h> // määrame, milliste digitaalpesadega ekraan ühendatud on LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // loome erisümbolid byte smiley[8] ={0b00000,0b00000,0b01010,0b00000,0b00000,0b10001,0b01110,0b00000}; byte armsDown[8] ={0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010}; byte armsUp[8] ={0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010}; byte kass[8] ={0b00000,0b00000,0b00000,0b10000,0b10011,0b11111,0b01110,0b01010}; byte tydruk[8] ={0b00100,0b01010,0b00100,0b11111,0b00100,0b00100,0b01110,0b11111}; byte v2ikesyda[8] ={0b00000,0b00000,0b00000,0b11011,0b11111,0b11111,0b01110,0b00100}; void setup() { // algväärtustatakse LDC ekraani read ja veerud lcd.begin(16, 2); // defineerime erisümbolid lcd.createChar(1, smiley); lcd.createChar(3, armsDown); lcd.createChar(4, armsUp); lcd.createChar(5, kass); lcd.createChar(6, tydruk); lcd.createChar(7, v2ikesyda); } void loop() { // koht kuhu hakkame joonistama - 3. veerg, esimene rida lcd.setCursor(2, 0); // joonistame kassi lcd.write(5); // ja tüdruku lcd.write(6); //muudame kursori asukohta: 2. rida 14. veerg lcd.setCursor(13, 1); // joonistame poisi lcd.write(3); delay(400); //muudame kursori asukohta: 1. rida 5. veerg lcd.setCursor(4, 0); //joonistame for tsükli abil väikese pausiga 10 smaili for (int koht = 0; koht < 10; koht++) { lcd.write(1); delay(400); } lcd.setCursor(13, 1); lcd.write(4); //loobime südameid for (int koht = 13; koht >= 4; koht--) { lcd.setCursor(koht, 0); lcd.write(7); delay(400); } delay(400); }
katse 5. lcd ekraan
Programm kuvab ekraanil emotikone ja muudab kuvatavat emotikone olenevalt potentsiomeetri asendist.
Kasutasin:
1 lcd
17 juhet
2 takisti
1 potentsiomeeter
Arduino
Plaat

#include <LiquidCrystal.h> //liin ühendab raamatukogu LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //tähistab kontakte, millega signaalid on ühendatud byte smileys[4][8] = { {0b00000, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000, 0b00000, 0b00000}, {0b00000, 0b01010, 0b01010, 0b00000, 0b01110, 0b10001, 0b00000, 0b00000}, {0b00000, 0b01110, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000, 0b00000}, {0b00000, 0b00000, 0b01110, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000} }; //baidimassiivid char smileyTexts[4][9] = { "Happy", "Cool", "Cute", "Funny" }; //sisaldab iga emotikoni tekstikirjeldust. Massiivi iga rida sisaldab märgimassiivi pikkusega 9, mis salvestab tekstikirjelduse int potPin = A0; // deklareerida muutujaid int currentSmileyIndex = 0; void setup() { //Funktsiooni sees määratakse ekraani suurus lcd.begin(16, 2); for (int i = 0; i < 4; i++) { // lcd.createChar(i + 1, smileys[i]); } } //ikl loob LCD-ekraanil kohandatud tähemärke. See kordab i väärtusi vahemikus 0 kuni 3 ja kutsub funktsiooni välja void loop() { int potValue = analogRead(potPin); int smileyIndex = map(potValue, 0, 1023, 0, 3); //funktsioon loop() käivitatakse tsüklina pärast seda, kui funktsioon setup() on lõppenud. See loeb väärtust potentsiomeetrilt if (smileyIndex != currentSmileyIndex) { currentSmileyIndex = smileyIndex; lcd.clear(); lcd.setCursor(0, 0); for (int i = 0; i <= currentSmileyIndex; i++) { lcd.write(i + 1); //kuvab ekraanil naeratuse sümboli. lcd.print(" "); //väljastab tühiku. //kuvab emotikoni kirjeldava teksti. lcd.print(smileyTexts[i]); delay(2000); // 2 sekundit viivitust lcd.setCursor(0, 0); //seab kursori tsükli järgmise iteratsiooni algusasendisse (0, 0). lcd.print(" "); // Liini puhastamine lcd.setCursor(0, 0); // очищает строку на дисплее. } } }
Vedelkristallkuvarit kasutatakse graafilise või tekstilise teabe kuvamiseks arvutimonitoridel (ka sülearvutites), telerites, telefonides, digikaamerates, e-raamatutes, navigaatorites, tahvelarvutites, elektroonilistes tõlkides, kalkulaatorites, kellades.