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:project2 [2017/05/31 09:36] kaupo.raidet:arduino:sensorss:project2 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~+<pagebreak>
 ====== Projekt 4 Andurite lugemine ja väärtuse kuvamine   ====== ====== Projekt 4 Andurite lugemine ja väärtuse kuvamine   ======
  
Line 11: Line 11:
  
 ===== 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 maapotentsiaali vahele. Kui kasutusel on AK06 robotiehitamise komplekt, siis kasutada juba komplektis kaasa tulnud pingejaguri kaablit, millel on takisti juba küljes.+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 vahele. AK06 robotiehitamise komplekt puhul kasutada juba komplektis kaasa tulnud pingejaguri kaablit, millel on takisti juba küljes.
 \\ \\
-Temperatuurianduri analoogväärtuse lugemine tehakse peatsüklis, aga töötlemine lisafunktsioonis //Termistor//, kus võetakse sisendiks termistori väärtus ning Seinhart-Hart valemi rakendamisel väljastatakse temperatuur celsiuse skaalas. Analoogsisendi väärtuse võtmine on programmi kompaktsuse mõttes kirjutatud funktsiooni //Termistor// väljakutsumisel parameetri kohale. Saadud temperatuur kirjutatakse ekraanile sama funktsiooni lõpus.+Temperatuurianduri analoogväärtuse lugemine tehakse peatsüklis, aga töötlemine lisafunktsioonis //Termistor//, kus võetakse sisendiks termistori väärtus ning Seinhart-Hart valemi rakendamisel väljastatakse temperatuur Celsiuse skaalas. Analoogsisendi väärtuse võtmine on programmi kompaktsuse mõttes kirjutatud funktsiooni //Termistor// väljakutsumisel parameetri kohale. Saadud temperatuur kirjutatakse ekraanile sama funktsiooni lõpus.
  
 <code c> <code c>
Line 27: Line 27:
 #include <LiquidCrystal.h> #include <LiquidCrystal.h>
  
-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 39: Line 40:
 void loop()  void loop() 
 { {
- /* Funktsiooni //Termistor// väljakutsumine, mis kasutab + /* Funktsiooni Termistor väljakutsumine, mis kasutab 
     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 
-   temperatuuri väärtuseks celsiuse skaalal */+   temperatuuri väärtuseks Celsiuse skaalas */
 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/(0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp))* Temp);    Temp = 1/(0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp))* Temp); 
-  Temp = Temp - 273.15; // Konverteerime Kelvinid Celciustesse+  Temp = Temp - 273.15; // Konverteerime Kelvini skaalast Celsiuse skaalasse
   lcd.setCursor(8, 1);   lcd.setCursor(8, 1);
   lcd.print("T=");   lcd.print("T=");
Line 79: Line 80:
  
 </code> </code>
-~~PB~~+<pagebreak>
 ===== 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 infrapuna lähedusandur, mis mõõdab tagasi peegelduva valguse hulka. Teisest kategooriast on kasutusel ultraheliandur, mis töötab heli peegeldusel.\\+Antud projektis kasutame mõlemast tüübist ühte andurit. Esimesse kategooriasse kuulub infrapunalähedusandur, mis mõõdab tagasi peegelduva valguse hulka. Teisest kategooriast on kasutusel ultraheli kaugusandur, mis töötab heli peegeldusel.\\
 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, milleks pole vaja eraldi seadistustoiminguid teha. Infrapunaanduri oleku lugemine käib tavapärase käsuga //digitalRead//. Ultraheliandur on keerukam ja lihtsuse mõttes võtame kasutusele teegi //NewPing//, mis nõuab seadistamiseks vaid objekti tekitamist. Objekti olemasolul saab anda andurile käsu kauguse mõõtmiseks käsuga //ping_cm//.\\ 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, milleks pole vaja eraldi seadistustoiminguid teha. Infrapunaanduri oleku lugemine käib tavapärase käsuga //digitalRead//. Ultraheliandur on keerukam ja lihtsuse mõttes võtame kasutusele teegi //NewPing//, mis nõuab seadistamiseks vaid objekti tekitamist. Objekti olemasolul saab anda andurile käsu kauguse mõõtmiseks käsuga //ping_cm//.\\
 //NewPing// teegi saab alla laadida siit: [[http://playground.arduino.cc/Code/NewPing|]]\\ //NewPing// teegi saab alla laadida siit: [[http://playground.arduino.cc/Code/NewPing|]]\\
-Abi teegi lisamisel leiab siit: [[https://www.arduino.cc/en/guide/libraries#toc4|]]+Abi teegi lisamisel leiab tarkvara peatükist ja veebilehelt siit: [[https://www.arduino.cc/en/guide/libraries#toc4|]]
  
 <code c> <code c>
Line 129: Line 130:
 void loop()  void loop() 
 { {
-  // Ultrahelianduri kaguse mõõtmine sentimeetrites ja muutujasse salvestamine+  // Ultrahelianduriga kaguse mõõtmine sentimeetrites ja muutujasse salvestamine
   ultraheliKaugus = sonar.ping_cm();   ultraheliKaugus = sonar.ping_cm();
    
-  // Digitaalse lähedusanduri väärtuse lugemine ja muutujasse salvestamine+  // Lähedusanduri väärtuse lugemine ja muutujasse salvestamine
   infrapunaNaebObjekti = digitalRead(infrapunaLahedusandur);    infrapunaNaebObjekti = digitalRead(infrapunaLahedusandur); 
    
-  // Kursori esimesele reale nihutamine, tähemärgile 9+  // Kursori esimesele reale ja tähemärgile 9 nihutamine
   lcd.setCursor(9, 0);   lcd.setCursor(9, 0);
    
Line 145: Line 146:
   lcd.print("   ");    lcd.print("   "); 
    
-  // Kursori teisele reale nihutamine, tähemärgile 9+  // Kursori teisele reale ja tähemärgile 9 nihutamine
   lcd.setCursor(9, 1);    lcd.setCursor(9, 1); 
    
-  // Kui infrapuna lähedusanduri väljund on kõrge siis kirjuta "ei"+  // Kui infrapunalähedusanduri väljund on kõrgesiis kirjuta ekraanile "ei"
   if(infrapunaNaebObjekti == 1) lcd.print("ei ");    if(infrapunaNaebObjekti == 1) lcd.print("ei "); 
    
-  // Kui infrapuna lähedusanduri väljund on madal siis kirjuta "jah"+  // Kui infrapunalähedusanduri väljund on madalsiis kirjuta ekraanile "jah"
   else lcd.print("jah");    else lcd.print("jah"); 
    
et/arduino/sensorss/project2.1496223364.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