This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:arduino:sensorss:project2 [2017/05/11 07:55] – Somepub | 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 Temperatuuriandur koos matemaatika teegiga ===== | ===== Näide #4.1 Temperatuuriandur koos matemaatika teegiga ===== | ||
| - | Takistuslikud analoogandurid ühendatakse mikrokontrolleriga selliselt, et see moodustab pingejaguri. Sama käib ka NTC temperatuurianduri kohta. Antud juhul tuleb lisaks andurile ühendada väline takisti 10 kΩ sisendviigu ja maa vahele. | + | Takistuslikud analoogandurid ühendatakse mikrokontrolleriga selliselt, et see moodustab pingejaguri. Sama käib ka NTC temperatuurianduri kohta. Antud juhul tuleb lisaks andurile ühendada väline takisti 10 kΩ sisendviigu ja maapotentsiaali |
| \\ | \\ | ||
| - | 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 27: | 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 33: | Line 34: | ||
| { | { | ||
| lcd.begin(16, | lcd.begin(16, | ||
| - | lcd.print(" | + | lcd.print(" |
| delay (1000); // 1 sekundiline viide enne põhitsüklit | delay (1000); // 1 sekundiline viide enne põhitsüklit | ||
| } | } | ||
| Line 39: | Line 40: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | /* Funktsiooni Termistor() välja kutsumine, mis kasutab | + | /* Funktsiooni Termistor |
| parameetrina temperatuurianduri hetkväärtust */ | parameetrina temperatuurianduri hetkväärtust */ | ||
| Termistor(analogRead(andur)); | Termistor(analogRead(andur)); | ||
| Line 47: | Line 48: | ||
| /* Funktsioon konverteerib saadud anduri väärtuse | /* Funktsioon konverteerib saadud anduri väärtuse | ||
| - | | + | |
| void Termistor(int RawADC) | void Termistor(int RawADC) | ||
| { | { | ||
| Line 72: | 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 79: | Line 80: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| ===== 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. Infrapunaanduri puhul on vaja ainult ühte digitaalset sisendviiku, | Näiteprogrammi eesmärk on teha anduritega mõõtmisi ja mõõtetulemused kuvada ekraanile. Anduritelt info saamiseks on vaja need kõigepealt seadistada. Infrapunaanduri puhul on vaja ainult ühte digitaalset sisendviiku, | ||
| //NewPing// teegi saab alla laadida siit: [[http:// | //NewPing// teegi saab alla laadida siit: [[http:// | ||
| - | Abi teegi lisamisel leiab siit: [[https:// | + | Abi teegi lisamisel leiab tarkvara peatükist ja veebilehelt |
| <code c> | <code c> | ||
| Line 129: | 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 145: | 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(" | ||