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/04/17 08:55] Somepubet:arduino:buttons:project2 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +<pagebreak>
 ====== Projekt 2 LED-i juhtimine potentsiomeetriga   ====== ====== Projekt 2 LED-i juhtimine potentsiomeetriga   ======
  
-Ühendada Arduino plaadiga potentsiomeeter. Potentsiomeetri keskmine klemm ühendatakse analoogsisendisse ja äärmised maa ning toitega.\\+Ühendada Arduino plaadiga potentsiomeeter. Potentsiomeetri keskmine klemm ühendatakse analoogsisendisse ja äärmistest üks maa ning teine toitega.\\
  
  
 {{:et:arduino:buttons:projekt2.jpg?400|}} {{:et:arduino:buttons:projekt2.jpg?400|}}
  
-Potentsiomeeter on kolme kontaktiga muuttakisti, mille äärmiste kontaktide vahel on fikseeritud takistus ja keskmise ning äärmiste vahel muutuv. Ühendades ühe äärmise kontakti maaga ja teise toite +5 V viiguga, tekib keskmise kontakti ja maa vahele potentsiomeetri asendist sõltuv pinge. Kui potentsiomeetrit pöörata ühest äärmisest asendist 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 lehelt [[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 nivoo, millest alates väärtustatakse sisend kõrgeks ehk "1". Keerates potentsiomeetri üle nivoo pinge 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>
 /* /*
 Nimetus: Näide #2.1 Nimetus: Näide #2.1
-Kirjeldus: Potentsiomeetri pööramisel üle etteantud nivoo süttib LED+Kirjeldus: Potentsiomeetri pööramisel üle nivoo süttib LED
 */ */
  
-// Viik kuhu on ühenatud potentsiomeeter+// Viik kuhu on ühendatud potentsiomeeter
 const int pote = A1;  const int pote = A1; 
  
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 52: Line 51:
 } }
 </code> </code>
-~~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.
  
 <code c> <code c>
-/* +/* Nimetus: Näide #2.2 
-Nimetus: Näide #2.2 +   Kirjeldus: LED-i vilkumise sagedus sõltub potentsiomeetri asendist
-Kirjeldus: LED-i vilkumise sagedus sõltub potentsiomeetri asendist+
 */ */
 // Algus identne näitega #2.1 (kommenteeritud koodi vaata sealt) // Algus identne näitega #2.1 (kommenteeritud koodi vaata sealt)
Line 74: Line 73:
 void loop()  void loop() 
 { {
-  // Potentsiomeetri muutuja hetke väärtuse salvestamine +  // Potentsiomeetri muutuja hetkeväärtuse salvestamine 
   poteOlek = analogRead(pote);    poteOlek = analogRead(pote); 
      
Line 90: Line 89:
 } }
 </code> </code>
- 
  
 ===== Näide #2.3 LED-i ereduse juhtimine potentsiomeetri asendi järgi ===== ===== Näide #2.3 LED-i ereduse juhtimine potentsiomeetri asendi järgi =====
Line 96: Line 94:
  
 <code c> <code c>
-/* +/* Nimetus: Näide #2.3 
-  Nimetus: Näide #2.3 +   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 112: Line 109:
 void loop()  void loop() 
 { {
-  // Potentsiomeeri muutuja hetke väärtuse salvestamine+  // Potentsiomeetri muutuja hetkeväärtuse salvestamine
   poteOlek = analogRead(pote);    poteOlek = analogRead(pote); 
      
Line 122: Line 119:
     delayMicroseconds(poteOlek);      delayMicroseconds(poteOlek); 
   }   }
 +  
   // Seame LED viigu madalasse olekusse   // Seame LED viigu madalasse olekusse
   digitalWrite(led, LOW);    digitalWrite(led, LOW); 
Line 131: Line 129:
  
 ===== 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 nurkajadapordi monitori või muud leidlikku viisi+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 ===
Line 140: Line 137:
 === Harjutus #2.3 === === Harjutus #2.3 ===
 Modifitseerida näiteprogrammi nii, et LED põleb ainult potentsiomeetri pööramise ajal. LED-i põlemise eredus sõltub potentsiomeetri pööramise kiirusest. Modifitseerida näiteprogrammi nii, et LED põleb ainult potentsiomeetri pööramise ajal. LED-i põlemise eredus sõltub potentsiomeetri pööramise kiirusest.
- 
et/arduino/buttons/project2.1492419302.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