Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:arduino:sensorss:project1 [2017/05/31 12:10] kaupo.raidet:arduino:sensorss:project1 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 5: Line 5:
 ===== Näide #3.1 LCD ekraanile kirjutamine ===== ===== Näide #3.1 LCD ekraanile kirjutamine =====
 Ekraanile kirjutamiseks vajalikud tähemärgid on LCD draiveri mälus juba olemas ja nende kuvamiseks on vaja saata ASCII tabelile vastav number. Lihtsuse mõttes teeb teek "LiquidCrystal" selle töö juba kasutaja eest ära ja ekraanile kirjutamine ei ole keerulisem kui jadaporti teksti kirjutamine. Lisaks LCD-le kirjutamisele tuleb aeg-ajalt muuta ka kursori asukohta, mida saab teha //setCursor(veerg, rida)// käsuga.\\ Ekraanile kirjutamiseks vajalikud tähemärgid on LCD draiveri mälus juba olemas ja nende kuvamiseks on vaja saata ASCII tabelile vastav number. Lihtsuse mõttes teeb teek "LiquidCrystal" selle töö juba kasutaja eest ära ja ekraanile kirjutamine ei ole keerulisem kui jadaporti teksti kirjutamine. Lisaks LCD-le kirjutamisele tuleb aeg-ajalt muuta ka kursori asukohta, mida saab teha //setCursor(veerg, rida)// käsuga.\\
-Näiteprogramm alustab ekraani seadistamisega. Määrame ära ühendusviigud ja ekraani suurus, mis on tarvilik ekraani korrektseks funktsioneerimiseks. Järgnevalt trükime ekraanile tervitusteksti, mis jääb püsivalt ülemisele reale alles. Teisele reale liigume käsuga //setCursor// ning kirjutame sinna programmi töötamise aja sekundites. Kuna pärast tähemärkidele kirjutamist liigub kursor automaatselt edasi, siis tuleb pärast igat tsükli läbimist ka kursori positsioon uuesti algusesse liigutada. Kui käesolevale tähemärgile ekraanil on juba midagi trükitud, siis uue tähemärgi samale kohale trükkimisel kustutatakse eelnev tähemärk automaatselt ära.\\+Näiteprogramm alustab ekraani seadistamisega. Määrame ära ühendusviigud ja ekraani suuruse, mis on tarvilik ekraani korrektseks funktsioneerimiseks. Järgnevalt trükime ekraanile tervitusteksti, mis jääb püsivalt ülemisele reale alles. Teisele reale liigume käsuga //setCursor// ning kirjutame sinna programmi töötamise aja sekundites. Kuna pärast tähemärkidele kirjutamist liigub kursor automaatselt edasi, siis tuleb pärast igat tsükli läbimist ka kursori positsioon uuesti algusesse liigutada. Kui käesolevale tähemärgile ekraanil on juba midagi trükitud, siis uue tähemärgi samale kohale trükkimisel kustutatakse eelnev tähemärk automaatselt ära.\\
 Täpsemalt teegi "LiquidCrystal" toetatud käskudest leiab siit: https://www.arduino.cc/en/Reference/LiquidCrystal Täpsemalt teegi "LiquidCrystal" toetatud käskudest leiab siit: https://www.arduino.cc/en/Reference/LiquidCrystal
-~~PB~~+<pagebreak>
 <code c> <code c>
 /* /*
Line 91: Line 91:
 ===== Näide #3.3 LCD laiendusplaadi nuppude lugemine ===== ===== Näide #3.3 LCD laiendusplaadi nuppude lugemine =====
 Järgnevas näites võtame kasutusele LCD laiendusplaadil olevad nupud. Programmi tööpõhimõtte mõistmiseks on soovitav tutvuda nuppude ühendusskeemiga 6. peatüki alguses. Nimelt kasutame nuppude lugemiseks eelnevast peatükist tuttavat //analogRead// käsku. Iga nupu vajutamisel saame erineva analoogväärtuse, mida kasutame ära, et tuvastada vajutatud nupp. Mitme nupu samaaegsel vajutamisel programm eelistab väiksema väärtusega nuppu.\\ Järgnevas näites võtame kasutusele LCD laiendusplaadil olevad nupud. Programmi tööpõhimõtte mõistmiseks on soovitav tutvuda nuppude ühendusskeemiga 6. peatüki alguses. Nimelt kasutame nuppude lugemiseks eelnevast peatükist tuttavat //analogRead// käsku. Iga nupu vajutamisel saame erineva analoogväärtuse, mida kasutame ära, et tuvastada vajutatud nupp. Mitme nupu samaaegsel vajutamisel programm eelistab väiksema väärtusega nuppu.\\
-Programm alustab sarnaselt eelnevatele näidetele LCD seadistustega. Loetavuse parendamiseks tekitame konstandid iga nupu jaoks. Peatsükli (loop) koodi ridade arvu vähendamiseks loome uue funktsiooni nimega //kontrolliNuppe//. Kutsume seda välja võimalikult tihedalt, et ükski nupu vajutus ei jääks mikrokontrolleril märkamata. Kui ühtegi nuppu pole vajutatud, siis tagastab funktsioon alati konstandi "nuppNone". See tuleneb, sellest, et tavaolekus on analoogsisendi peal //pull-up// takisti ja seetõttu on analoogsisendi väärtus suurem kui 790. Tuvastanud nupu vajutuse kuvab programm saadud analoogsisendi väärtuse ekraanile. Lisaks on programmi lisatud käsk //clear//, mis on vajalik, et uue väärtuse kuvamisel ei jääks ükski number vanast väärtusest ekraanile näha. Vastasel juhul näiteks väärtuse 783 üle kirjutamisel väärtusega 50 jääks eelmisest väärtusest kolmanda positsiooni number 3 ikka veel ekraanile ja tekitab seetõttu arusaama nagu oleks tegelik väärtus 503.+Programm alustab sarnaselt eelnevatele näidetele LCD seadistustega. Loetavuse parendamiseks tekitame konstandid iga nupu jaoks. Peatsükli (loop) koodi ridade arvu vähendamiseks loome uue funktsiooni nimega //kontrolliNuppe//. Kutsume seda välja võimalikult tihedalt, et ükski nupu vajutus ei jääks mikrokontrolleril märkamata. Kui ühtegi nuppu pole vajutatud, siis tagastab funktsioon alati konstandi "nuppNone". See tuleneb, sellest, et tavaolekus on analoogsisendi peal //pull-up// takisti ja seetõttu on analoogsisendi väärtus suurem kui 790. Tuvastanud nupu vajutusekuvab programm saadud analoogsisendi väärtuse ekraanile. Lisaks on programmi lisatud käsk //clear//, mis on vajalik, et uue väärtuse kuvamisel ei jääks ükski number vanast väärtusest ekraanile näha. Vastasel juhul näiteks väärtuse 783 üle kirjutamisel väärtusega 50 jääks eelmisest väärtusest kolmanda positsiooni number 3 ikka veel ekraanile ja tekitab seetõttu arusaama nagu oleks tegelik väärtus 503.
  
-~~PB~~+<pagebreak>
 <code c> <code c>
 /* /*
Line 132: Line 132:
 void loop()  void loop() 
 { {
-  /* Kutsub välja funktsiooni //kontrolliNuppue// +  /* Kutsub välja funktsiooni kontrolliNuppe 
    ja salvestab tagastatud väärtuse muutujasse */    ja salvestab tagastatud väärtuse muutujasse */
   vajutatudNupp = kontrolliNuppe();    vajutatudNupp = kontrolliNuppe(); 
Line 148: Line 148:
   }   }
 } }
-~~PB~~+</code> 
 +<pagebreak> 
 +<code c>
 // Funktsioon võtab analoogsisendi väärtuse ja võrdleb olemasolevate väärtustega. // Funktsioon võtab analoogsisendi väärtuse ja võrdleb olemasolevate väärtustega.
 // Tagastab arvu vahemikus 0 kuni 5 vastavalt defineeritud konstandile // Tagastab arvu vahemikus 0 kuni 5 vastavalt defineeritud konstandile
et/arduino/sensorss/project1.1496232604.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0