Arvutiteaduse instituut
  1. Esileht
  2. Noored Koodi
EN
Logi sisse

Noored Koodi

<- Kõik kursused

  • Arduino kursus
  • 1. Sissejuhatus: millist Arduinot valida, programmeerimiskeskkond Arduino IDE
  • 2. Töötamine Arduino IDE-ga, Arduino ühendamine arvutiga ja sisseehitatud LEDi vilgutamine
  • 3. Vooluahela koostamine (LED, takistid, maketeerimislaud, juhtmed) ja värvikood
  • 4. LED-ide vilgutamine FOR tsükliga, lokaalmuutuja kasutamine
  • 5. Lüliti ühendamine ja LEDi vilgutamine vastavalt lüliti asendile: IF/ELSE tingimuse kasutamine
  • 6. RGB ledi ühendamine ja RGB võimaluste katsetamine analogWrite() abil
  • 7. Valgustundliku takisti ja ADC abil valguse mõõtmine ja kuvamine arvuti ekraanil—Serial monitor
  • 8. UART liidese abil andmete vahetamine Arvuti ja Arduino vahel, ASCII tabel
  • 9. Potentsiomeeter: töö-põhimõte, ühendamine, juhtkang (joystick)
  • 10. Servomootori juhtimine—pulsilaiusmodulatsioon ja joystick
  • 11. Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil
  • 12. USART ja 1602 LCD: Serial monitorist ekraanile!

  • 13. IDE-s programmeerimisest kokkuvõtvalt
  • 14. LED heleduse muutmine vastavalt keskkonna valgustugevusele
  • 15. Ohmi seadus, multimeetri kasutamine

  • 16. Kordamisküsimused
  • 17. Kontrolltöö

  • 18. LED juhtimine infrapuna-saatjaga ja -vastuvõtjaga
  • 19. HC-SR04 ultrahelisensori ühendamine ja näitude kuvamine LCD ekraanil
  • 20. Joonistame ise programmi Fritzing abil korrektse vooluringi skeemi
  • 21. Sissejuhatavalt sünkroonsest ühendusest (I2C ning SPI) õhurõhu anduri BMP280 näitel
  • 22. CSV—Comma Separated Values
  • 23. Kujundite kuvamine 1602 LCD ekraanil
  • 24. Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil
  • 25. Arduino ühendamine bluetooth seadmega
  • 26. Relee juhtimine

  • 27. Digispark: netist tarkvara leidmine, installeerimine ja esimese lihtsa programmi töölepanek
  • 28. ESP32: tarkvara ja lihtsa esimese programmi töölepanek
  • 29. ESP32: jõuame sisse-ehitatud LED vilgutamiseni

  • 30. Kordamine
  • 31. Teooria esitlus
  • 32. Projektiesitlus

11. Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil

<- eelmine peatükk järgmine peatükk ->

11.0. Seos eelmiste peatükkidega

Kümnendas peatükis juhtisime potentsiomeetriga servomootori tööd. Kas saame potentsiomeetriga veel midagi juhtida? Näiteks LCD ekraanil kuvatava kirja ja taustavalguse kontrastsust?

Ka oleme juba töötanud esimese teegiga. Ka selles peatükkis peame tööle panema teegi.

11.1. Eesmärk ja selgitused

Peatüki eesmärgiks on kuvada LCD ekraanile tekstilist infot. Alustuseks aga peame oskama LCD ekraani ühendada Arduinoga.

Esmapilgul tundub, et on heidutavalt palju juhtmeid—üheski peatükis ei ole olnud vajalik niivõrd suurel hulgal ühendusi. Anname sedakorda info ette pigem tabeli formaadis kasutamiseks—kas nii on kergem? Suurem kogus juhtmeid joonistatuna Fritzing-skeemile ei pruugi mingist hetkest enam kergesti loetav olla.

Selle peatükki järel õpilane oskab

a) ühendada vedelkristall-ekraani (1602 LCD) Arduinoga;
b) kuvada 1602 LCD-le teksti ning
c) ei karda juhtmerohkust.

11.2. Töövahendid:

1) Arduino Uno;
2) USB ühenduskaabel;
3) arvuti;
4) internetiühendus;
5) luup;
6) juhtmed (nii mõlemast otsas metallist ühendusega kui ka ühest otsast metallist ühendusega kui ka mõlemast otsast tühja otsaga);
7) maketeerimislaud;
8) LCD ekraan;
9) potentsiomeeter—et saaksime reguleerida heledust-tumedust ekraanil.

11.3. Tegevused

11.3.1.LCD ühendamine Arduinoga, potentsiomeetriga, temperatuuri ja niiskuse anduriga

Seekord on vooluahelas juhtmeid ja viikusid üksjagu rohkelt. Tundub keerukas. Selle kogemuse tarvis anname 16X2 LCD ekraani ühendamiseks info ette pigem tabeli formaadis. Ülesanne on vastutusrikas—LCD kasutatavuse huvides ärge enne oma töö lõpliku resultaadi kontrollimist Arduinot vooluallikaga ühendage.

Harjutus A

Järgmisel leheküljel asuva tabeli alusel koostage vooluahel. Seejärel aga kontrollime üle—enne vooluallikaga ei ühenda.

LCD ühendused:

* tärniga tähistatud viigud on vaja deklareerida programmis LCD-ekraanile vastavat objekti luues. Ülejäänud, tärniga tähistamata ühendused on kas GND või toide—neid ei ole vaja objekti luues deklareerida. Jälgime, et ühendused ja programm oleks omavahel kooskõlas.

Potentsiomeetri ühendused: vt

11.3.2. Näidisskeem on meelega hästi pisikene

Vajadusel siiski saate ka nii võrrelda oma koostatud skeemi näidisskeemiga.

Kui oleme kontrollinud, kas kõik ikka õigesti paigas, alles siis on ohutu kokkupandud vooluahel USB kaabli abil ühendada oma arvutiga. Alates USB kaabliga ühendamisest on Arduinol ja temaga ühendatud vooluahela elementidel olemas toide.

Kui midagi nüüd muuta soovime, siis võtame kõigepealt toite maha—lihtsaim on eemaldada USB kaabel arvutil asuvast USB-kontaktist. Seejärel teeme vajalikud muudatused ning siis võime taas ühendada Arduino USB kaabli abil oma arvutiga.

11.3.3. Ja lisame ka programmi

#include <LiquidCrystal.h> /*laeme LCD ekraani library */

LiquidCrystal LCD_ekraan(10, 9, 5, 4, 3, 2);  /*loome objekti LCD_ekraan, 
millel deklareerime ühendused Arduino viigudele järgmises järjekorras:
RS (10), E (9), D4(5), D5(4), D6(3), D7(2).
Vaata eespool ka kommentraari LCD viigude ühendamist puudutavas 
värvilises tabelis--tegemist on antud värvilises ühendamistasbelis 
tärniga tähistatud viigudega--st nendega, mis ei ole GND või toide. 
Objekti LCD_ekraan deklareerimisel on oluline viigude järjekord.
Näiteks:
kui anname ette teistsuguse järjekorra, siis tuleb ka tõsta ümber juhtmed. Näiteks LiquidCrystal LCD_ekraan(10, 9, 5, 3, 4, 2); puhul 
vaheta omavahel kollane ja roheline--peale uuesti käivitamist 
hakkab tööle.
*/
void setup() {

Serial.begin(9600);

LCD_ekraan.begin(16,2); /* Ütlesime programmile, 
et vaja  on käivitada kaherealine ja kuuesteist märgiga LCD ekraan
--NB! järjekord on oluline: 16, 2! */
LCD_ekraan.setCursor(0,0);  /* ütleme LCD ekraani kursorile, kus asub kursori algpunkt*/
}

void loop() {
  /*korduma pidavas osas:
  /*A) ülemine rida*/
  LCD_ekraan.setCursor(0,0); /* esimene null tähistab esimese märgi asukohta, 
  teine null märgib ülemist (st esimest) rida: 
  arvutimaalimas alustame numbrite lugemist nullist!*/
  LCD_ekraan.print("harjutus");
  LCD_ekraan.print((char) 223); /*lisame midagi huvitavat—näiteks edaspidi läheb meil ka vaja kraadi-tähist. Detsimaalkujul see on 223. Teabe leiame aga LCD fact sheeti abiga*/
  /*B) alumine rida*/
  LCD_ekraan.setCursor(0,1); /* esimene null tähistab esimese märgi asukohta, 
  üks aga märgib alumist (st teist) rida: 
  arvutimaalimas alustame numbrite lugemist nullist!*/
  LCD_ekraan.print((char) 239); /*lisame ö-sümboli */
  LCD_ekraan.print((char) 239); /*lisame veel ühe ö-sümboli*/
  LCD_ekraan.print("bik"); /*jätkame eelmisel programmireal alustatud sõna*/
  delay(10); /*imepisike delay vajalik süsteemil alguspunkti naasmiseks--nii väikest viivitust inimsilm vaevalt et tähele paneb*/
}

Kui olete programmi käivitanud, tutvuge ka potentsiomeetriga: kruttige seda ja jälgige, mis toimub LCD ekraaniga—selgitage, milleks on vajalik potentsiomeeter ja kas ilma potentsiomeetrita võiks ka hakkama saada.

Kas saite samuti ekraanile midagi sellist?

Proovige sõne (string) (vt „bik“, „harjutus“) asemel või siis koodiga tähe väljatoomise (vt ’ö’ andmine koodiga 239) asemel nüüd lisada üksik täht meetodiga LCD_ekraan.print('b');. Kuidas toimis? Mängige, sest nii saab asi selgemaks.

Liquid Crystal Library https://www.arduino.cc/en/Reference/LiquidCrystal töötab nendel LCD-del, mis on rajatud Hitachi HD44780 kiibile või sellega sarnaselt toimivale. Veendusime, et taas tegi teegi kasutamine meie töö lihtsamaks.

Kõrvalepõige

Kuna tegu on jaapani tehnoloogiaga, siis ei ole imestada, et HD44780 „mõistab“ ka jaapani keeles suhelda. Vaata http://www.electronic-engineering.ch/microchip/datasheets/lcd/lcd_data_sheets.html sümbolite tabelit: selles sisalduvad jaapani katakana (https://en.wikipedia.org/wiki/Katakana ) silptähestiku tähed. Mina valin endale LCD-ga mängimiseks nende seast ekraanile järgmisedアルドゥイーノ.

Kusjuures ド (do) olin sunnitud jagama kaheks sümboliks: esiteks kirjutan ト (to) ja siis lisan kaks kriipsukest, mis teeb to-st do. Mida temaatilist olen ma jaapani keeles siia kirjutanud?

11.4. Koduseks tööks

Kui peatükkis ei jõudnud piisavalt katsetada, siis pange kodus skeem taas kokku ja mängige—kirjutage sõnu ja sümboleid. Järgmises peatükkis jätkame LCD võimaluste uurimist.



<- eelmine peatükk järgmine peatükk ->

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo