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:buttons:project2 [2017/05/11 08:13] Somepubet:arduino:buttons:project2 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~+<pagebreak>
 ====== Projekt 2 LED-i juhtimine potentsiomeetriga   ====== ====== Projekt 2 LED-i juhtimine potentsiomeetriga   ======
  
Line 7: Line 7:
 {{:et:arduino:buttons:projekt2.jpg?400|}} {{:et:arduino:buttons:projekt2.jpg?400|}}
  
-Korrektsel ühendamisel tekib mikrokontrolleri sisendviigu ja maa vahele potentsiomeetri asendist sõltuv pinge. Kui potentsiomeetrit pöörata ühest äärmusest teise, siis sisendpinge muutub vahemikus 0 kuni 5 V. Tekkinud ahelat nimetatakse pingejaguriks, mis jagab sisendpinge kahe takisti vahel proportsionaalselt takistuste väärtustele. Mikrokontroller muundab analoogsignaali (pinge nivoo) digitaalsele kujule, mis jääb vahemikku 0-1023. Maksimaalne väärtus sõltub mikrokontrolleri analoog-digitaalmuunduri (ADC) resolutsioonist. Arduino-l on ADC üldjuhul 10 bitti ehk maksimum väärtus (2^10) - 1 = 1023, kuid saab seadistada ka 8 biti peale. Täpsemalt Arduino analoog sisendite kohta saab lugeda siit: [[https://www.arduino.cc/en/Tutorial/AnalogInputPins|]]+Korrektsel ühendamisel tekib mikrokontrolleri sisendviigu ja maa vahele potentsiomeetri asendist sõltuv pinge. Kui potentsiomeetrit pöörata ühest äärmusest teise, siis sisendpinge muutub vahemikus 0 kuni 5 V. Tekkinud ahelat nimetatakse pingejaguriks, mis jagab sisendpinge kahe takisti vahel proportsionaalselt takistuste väärtustele. Mikrokontroller muundab analoogsignaali (pingenivoo) digitaalsele kujule, mis jääb vahemikku 0-1023. Maksimaalne väärtus sõltub mikrokontrolleri analoog-digitaalmuunduri (ADC) resolutsioonist. Arduino-l on ADC üldjuhul 10 bitti ehk maksimum väärtus (2^10) - 1 = 1023, kuid saab seadistada ka 8 biti peale. Täpsemalt Arduino analoogsisendite kohta saab lugeda siit: [[https://www.arduino.cc/en/Tutorial/AnalogInputPins|]]
  
-~~PB~~ 
 ===== Näide #2.1 Potentsiomeetri pööramisel üle nivoo süttib LED ===== ===== Näide #2.1 Potentsiomeetri pööramisel üle nivoo süttib LED =====
-Mikrokontrolleril on sisendi digitaalsel kujul lugemisel kindel pinge nivoo, millest alates väärtustatakse sisend kõrgeks. Keerates aeglaselt potentsiomeetrit on võimalik see lülitumise punkt üles leida. Muutusest annab märku LED viigul D13.+Mikrokontrolleril on sisendi digitaalsel kujul lugemisel kindel pingenivoo, millest alates väärtustatakse sisend kõrgeks. Keerates aeglaselt potentsiomeetrit on võimalik see lülitumise punkt üles leida. Muutusest annab märku LED viigul D13.
  
 <code c> <code c>
Line 37: Line 36:
 void loop()  void loop() 
 { {
-  // Viigu muutuja hetke väärtuse salvestamine+  // Viigu muutuja hetkeväärtuse salvestamine
   poteOlek = digitalRead(pote);    poteOlek = digitalRead(pote); 
      
Line 54: Line 53:
  
  
-~~PB~~ 
 ===== Näide #2.2 LED-i vilkumise sagedus sõltub potentsiomeetri asendist ===== ===== Näide #2.2 LED-i vilkumise sagedus sõltub potentsiomeetri asendist =====
 Antud näide käsitleb LED-i vilgutamist analoogsisendi järgi. Sisendiks on eelmisest näitest tuttav potentsiomeeter. Sõltuvalt potentsiomeetri asendist muutuvad programmis viidete pikkused, mida on visuaalselt näha LED-i vilkumisest. Lühemate viidete korral vilkumise sagedus suureneb ja pikemate korral väheneb. Antud näide käsitleb LED-i vilgutamist analoogsisendi järgi. Sisendiks on eelmisest näitest tuttav potentsiomeeter. Sõltuvalt potentsiomeetri asendist muutuvad programmis viidete pikkused, mida on visuaalselt näha LED-i vilkumisest. Lühemate viidete korral vilkumise sagedus suureneb ja pikemate korral väheneb.
Line 75: Line 73:
 void loop()  void loop() 
 { {
-  // Potentsiomeetri muutuja hetke väärtuse salvestamine +  // Potentsiomeetri muutuja hetkeväärtuse salvestamine 
   poteOlek = analogRead(pote);    poteOlek = analogRead(pote); 
      
Line 99: Line 97:
    Kirjeldus: LED-i ereduse juhtimine potentsiomeetri asendi järgi */    Kirjeldus: LED-i ereduse juhtimine potentsiomeetri asendi järgi */
 // Algus identne näitega #2.1 (kommenteeritud koodi vaata sealt) // Algus identne näitega #2.1 (kommenteeritud koodi vaata sealt)
 +
 const int pote = A1;  const int pote = A1; 
 const int led = 13;  const int led = 13; 
Line 110: Line 109:
 void loop()  void loop() 
 { {
-  // Potentsiomeeri muutuja hetke väärtuse salvestamine+  // Potentsiomeetri muutuja hetkeväärtuse salvestamine
   poteOlek = analogRead(pote);    poteOlek = analogRead(pote); 
      
Line 120: Line 119:
     delayMicroseconds(poteOlek);      delayMicroseconds(poteOlek); 
   }   }
 +  
   // Seame LED viigu madalasse olekusse   // Seame LED viigu madalasse olekusse
   digitalWrite(led, LOW);    digitalWrite(led, LOW); 
Line 130: Line 130:
 ===== Harjutused ===== ===== Harjutused =====
 === Harjutus #2.1 === === Harjutus #2.1 ===
-Modifitseerida näitekoodi nii, et LED läheb põlema viigu kõrgest olekust madalasse olekusse minekul. Potentsiomeetri kogu pöördenurk vastab pingele 0-5 V. Leida ligilähedane pinge väärtus, mille juures Arduino sisend muutub madalast olekust kõrgesse olekusse ja vastupidi. Kas esineb hüsterees lülitumiste vahel? Tulemuse saamiseks võib kasutada potentsiomeetri nurka või jadapordi monitori. +Modifitseerida näitekoodi nii, et LED läheb põlema viigu kõrgest olekust madalasse olekusse minekul. Potentsiomeetri kogu pöördenurk vastab pingevahemikule 0-5 V. Leida ligilähedane pinge väärtus, mille juures Arduino sisend muutub madalast olekust kõrgesse olekusse ja vastupidi. Kas esineb hüsterees lülitumiste vahel? Tulemuse saamiseks võib kasutada potentsiomeetri nurka või jadapordi monitori. 
  
 === Harjutus #2.2 === === Harjutus #2.2 ===
et/arduino/buttons/project2.1494490428.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