This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:arduino:sensorss:project2 [2017/04/17 14:27] – raivo.sell | et:arduino:sensorss:project2 [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Projekt 4 Andurite lugemine ja väärtuse kuvamine | ====== Projekt 4 Andurite lugemine ja väärtuse kuvamine | ||
| - | Arduino LCD laiendusplaadi peal on andurite ühendamiseks olemas 5 sisend/ | + | Arduino LCD laiendusplaadi peal on andurite ühendamiseks olemas 5 sisend/ |
| Ühendada Arduino LCD laiendusplaadiga vajalikud andurid: | Ühendada Arduino LCD laiendusplaadiga vajalikud andurid: | ||
| * Temperatuuriandur: | * Temperatuuriandur: | ||
| * Ultraheli kaugusandur: | * Ultraheli kaugusandur: | ||
| - | * Infrapuna lähedusandur: signaal - A4 | + | * Infrapunalähedusandur: signaal - A4 |
| {{: | {{: | ||
| - | ===== Näide #4.1 Temperatuuri andur koos matemaatika teegiga ===== | + | ===== Näide #4.1 Temperatuuriandur |
| - | Takistuslikud analoogandurid ühendatakse mikrokontrolleriga selliselt, et see moodustab pingejaguri. Sama käib ka NTC temperatuurianduri kohta, mis on tegelikkuses takisti, mille takistuse suurus sõltub temperatuurist. Antud juhul tuleb lisakas | + | Takistuslikud analoogandurid ühendatakse mikrokontrolleriga selliselt, et see moodustab pingejaguri. Sama käib ka NTC temperatuurianduri kohta. Antud juhul tuleb lisaks |
| - | Temperatuurianduri analoogväärtuse lugemine tehakse peatsüklis, | + | \\ |
| + | Temperatuurianduri analoogväärtuse lugemine tehakse peatsüklis, | ||
| <code c> | <code c> | ||
| /* Nimetus: Näide #4.1 | /* Nimetus: Näide #4.1 | ||
| - | Kirjeldus: | + | Kirjeldus: |
| | | ||
| | | ||
| Line 26: | Line 27: | ||
| #include < | #include < | ||
| - | LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD objekti tekitamine koos ühendusviikudega | + | // LCD objekti tekitamine ja ühendusviikude määramine. |
| + | LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | ||
| const int andur = A1; // Viik kuhu on ühendatud temperatuuriandur (termistor) | const int andur = A1; // Viik kuhu on ühendatud temperatuuriandur (termistor) | ||
| Line 32: | Line 34: | ||
| { | { | ||
| lcd.begin(16, | lcd.begin(16, | ||
| - | | + | lcd.print(" |
| - | | + | |
| - | | + | |
| delay (1000); // 1 sekundiline viide enne põhitsüklit | delay (1000); // 1 sekundiline viide enne põhitsüklit | ||
| } | } | ||
| Line 40: | Line 40: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | / | + | / |
| parameetrina temperatuurianduri hetkväärtust */ | parameetrina temperatuurianduri hetkväärtust */ | ||
| - | Termistor(analogRead(andur)); | + | |
| - | + | delay(1000); | |
| - | delay(1000); | + | lcd.clear(); |
| - | + | ||
| - | | + | |
| } | } | ||
| /* Funktsioon konverteerib saadud anduri väärtuse | /* Funktsioon konverteerib saadud anduri väärtuse | ||
| - | | + | |
| void Termistor(int RawADC) | void Termistor(int RawADC) | ||
| { | { | ||
| - | // Lokaalsete muutujate defineerimine | + | |
| - | | + | double Temp; |
| - | | + | long Takistus; |
| // Valem: Takistus = (1024 * JaguriTakisti/ | // Valem: Takistus = (1024 * JaguriTakisti/ | ||
| Line 75: | Line 73: | ||
| // Steinhart-Hart termistori valemi kaudu temperatuur kelvinites | // Steinhart-Hart termistori valemi kaudu temperatuur kelvinites | ||
| Temp = 1/ | Temp = 1/ | ||
| - | Temp = Temp - 273.15; // Konverteerime | + | Temp = Temp - 273.15; // Konverteerime |
| lcd.setCursor(8, | lcd.setCursor(8, | ||
| lcd.print(" | lcd.print(" | ||
| Line 82: | Line 80: | ||
| </ | </ | ||
| + | < | ||
| ===== Näide #4.2 Kaugus- ja lähedusandurid ===== | ===== Näide #4.2 Kaugus- ja lähedusandurid ===== | ||
| Kaugust hindavaid andureid on mõõtmismeetodi järgi üldjuhul kahte tüüpi: | Kaugust hindavaid andureid on mõõtmismeetodi järgi üldjuhul kahte tüüpi: | ||
| * Lähedust tuvastavad andurid - objekt on või ei ole näha. | * Lähedust tuvastavad andurid - objekt on või ei ole näha. | ||
| * Kaugust mõõtvad andurid - tagastab objekt kauguse. | * Kaugust mõõtvad andurid - tagastab objekt kauguse. | ||
| - | Antud projektis kasutame mõlemast tüübist ühte andurit. Esimesse kategooriasse kuulub | + | Antud projektis kasutame mõlemast tüübist ühte andurit. Esimesse kategooriasse kuulub |
| - | Näiteprogrammi eesmärk on teha anduritega mõõtmisi ja mõõtetulemused kuvada ekraanile. Anduritelt info saamiseks on vaja need kõigepealt seadistada. | + | Näiteprogrammi eesmärk on teha anduritega mõõtmisi ja mõõtetulemused kuvada ekraanile. Anduritelt info saamiseks on vaja need kõigepealt seadistada. |
| //NewPing// teegi saab alla laadida siit: [[http:// | //NewPing// teegi saab alla laadida siit: [[http:// | ||
| - | Juhendi | + | Abi teegi lisamisel |
| <code c> | <code c> | ||
| Line 101: | Line 99: | ||
| // LCD ekraani funktsioone sisaldav teek | // LCD ekraani funktsioone sisaldav teek | ||
| #include < | #include < | ||
| - | // Ultraheli anduri | + | // Ultrahelianduri |
| #include < | #include < | ||
| Line 132: | Line 130: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | // Ultrahelianduri | + | // Ultrahelianduriga |
| ultraheliKaugus = sonar.ping_cm(); | ultraheliKaugus = sonar.ping_cm(); | ||
| - | // Digitaalse lähedusanduri | + | // Lähedusanduri |
| infrapunaNaebObjekti = digitalRead(infrapunaLahedusandur); | infrapunaNaebObjekti = digitalRead(infrapunaLahedusandur); | ||
| - | // Kursori esimesele reale nihutamine, | + | // Kursori esimesele reale ja tähemärgile 9 nihutamine |
| lcd.setCursor(9, | lcd.setCursor(9, | ||
| Line 148: | Line 146: | ||
| lcd.print(" | lcd.print(" | ||
| - | // Kursori teisele reale nihutamine, | + | // Kursori teisele reale ja tähemärgile 9 nihutamine |
| lcd.setCursor(9, | lcd.setCursor(9, | ||
| - | // Kui infrapuna lähedusanduri | + | // Kui infrapunalähedusanduri |
| if(infrapunaNaebObjekti == 1) lcd.print(" | if(infrapunaNaebObjekti == 1) lcd.print(" | ||
| - | // Kui infrapuna lähedusanduri | + | // Kui infrapunalähedusanduri |
| else lcd.print(" | else lcd.print(" | ||
| Line 164: | Line 162: | ||
| ===== Harjutused ===== | ===== Harjutused ===== | ||
| - | |||
| === Harjutus #4.1 === | === Harjutus #4.1 === | ||
| - | |||
| Modifitseerida näiteprogrammi nii, et potentsiomeetriga määratakse temperatuuri nivoo, mis salvestatakse nupuga programmi mällu ja selle nivoo ületamisel käivitatakse täiturmehhanism (milleks on LED).\\ | Modifitseerida näiteprogrammi nii, et potentsiomeetriga määratakse temperatuuri nivoo, mis salvestatakse nupuga programmi mällu ja selle nivoo ületamisel käivitatakse täiturmehhanism (milleks on LED).\\ | ||
| Lisaülesanne: | Lisaülesanne: | ||