23. Kujundite kuvamine 1602 LCD ekraanil
<- eelmine peatükk
järgmine peatükk ->
23.0. Seosed eelnenud peatükkidega
Oleme tutvunud LCD ekraaniga 11. ja 12. peatükis ning 19. peatükis pannud LCD tööle koos sensoriga—kuvama sensori infot. Sama skeem on meile taas vajalik, et mõista kujundite kuvamise teemat.
23.1. Eesmärk ja selgitused
Kuivõrd eelmised peatükid on olnud mahukamad, siis sedakorda midagi veidi lihtsamat töövõtete kordamiseks.
Kui eelmistele peatükkidele kulus rohkem aega, siis selle peatükiga suudame ehk ajagraafikut siluda—see osa siin peaks olema kergem, kinnistama töövõtteid ja tõstma töökiirust. Ent kui tunde tõsiselt napib, siis võime selle peatüki jätta õpilasele iseseisvaks uurimiseks. Kujundeid on tore teha, rõõmus joonistamine maatriksite abil võib osutuda nakkavaks…
Selle peatüki järel õpilane juba valdab LCD 16X2 ümberkäimist ning oskab:
23.2. Töövahendid:
23.3. Tegevused:
23.3.1.LCD ühendamine Arduinoga, potentsiomeetriga, temperatuuri ja niiskuse anduriga
Anname meenutuseks eelmiste LCD peatükkide kohta juurde nii skeemi kui ka tabelid.
Harjutus A
Enne vooluahela koostamisele asumist:
- LCD ühendused:
* Tärniga tähistatud viigud on vaja deklareerida programmis LCD-ekraanile vastavat objekti luues. 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
23.3.2. Programmist…
Kõigepealt surfake ja leidke ise teema kohta linke.
Mina leidsin selle ja panin kohe ka käima. Teek on meil varasematest LCD-ga töötamise kordadest olemas. https://www.arduino.cc/en/Reference/LiquidCrystalCreateChar
Harjutus B
Tehke mõni teistsugune nägu.
Tõstke smiley-t ekraanil ümber. Kordame peatükis 11 õpitud ekraanil objektide paigutamist. Vajadusel jällegi õpetaja aitab.
Mina tegin mõned märgid ja sain siis alltoodud programmiga sellise pildi. Võite ise ka teha mõned valge taustaga märgid. Uurige näiteks char ’a’ maatriksit—ja tehke sellest valgel taustal „negatiiv“.
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { /* LCD-l kohad nii: alustuseks püstiste tulpade hulk(kokku 16), seejärel aga ridade hulk (neid on kaks) vaatme, mis numbrid on LCD markeeringul):*/ lcd.begin(16,2); /* teeme puhtaks LCD ekraani meie eelmisest harjutusest: */ lcd.clear(); } void loop() { byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000, }; byte NONsmiley[8] = { B00000, B01010, B00000, B00100, B00000, B11111, B00000, }; byte kriips[8] = { B00000, B00000, B00000, B11111, B00000, B00000, B00000, }; byte suurPluss [8] = { B00000, B00100, B00100, B11111, B00100, B00100, B00000, }; byte plussMiinus [8] = { B11011, B11011, B00000, B11011, B11011, B00000, B11111, }; lcd.createChar(1, smiley); lcd.createChar(2, NONsmiley); lcd.createChar(3, kriips); lcd.createChar(4, suurPluss); lcd.createChar(5, plussMiinus); // süntaks: lcd.setCursor (esiteks teie loodud sümboli koht reas, rea number viimasena) lcd.setCursor(0,1); lcd.write(1); // lcd.setCursor(0,0); lcd.write(2); lcd.setCursor(5,1); lcd.write(3); lcd.setCursor(6,0); lcd.write(4); lcd.setCursor(6,1); lcd.write(5); lcd.setCursor(7,0); lcd.write(3); lcd.setCursor(15,1); lcd.write(4); lcd.setCursor(14,0); lcd.write(2); }
Ju on tore katsetada ise sümbolite loomist. Kustutage minu tehtud sümboleid ja tehke ise uusi. Tehke ka mõni päris tavaline täht või number. Jälgige katsetamisel kuhu täpselt ja kuidas asetate enda loodud sümboli.
23.4. Koduseks tööks
Kuna aga tähtede ja numbritega ümberkäimine on tähtsam, siis kodus kirjutage midagi LCD ekraanile, tehke sellest pilt ja saatke õpetajale. Paljudes projektides tuleb ette ekraanile kirjutamist; seda on mõistlik harjutada.
Kui aga on soov aega kulutada—mõelge, kas saate joonistada pildi, mis ulatuks üle mitme „sümboliasendi? Sellise joonistamisega võiks ekraani-asetused küll eriti hästi meelde jääda?
Abiks on ka see peatükk, mille lõpus saime ekraanile jaapani keeles kirjutatud sõna, mis tähendas Arduinot. Mitte et mul nüüd aega väga palju üle jäi, ent oma õpilaste inspireerimiseks tegin sellise „maali“ jalutavast koerast, kellel on pikk saba ja lühikesed jalad: