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
arduino_lahendused [2015/12/10 13:06] raivo.sellarduino_lahendused [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 139: Line 139:
 */ */
  
-int pote_sisend = A5; // määrame potentsiomeetri sisendviigu+int pote_sisend = A1; // määrame potentsiomeetri sisendviigu
 int led_roheline = 13; // määrame rohelise LEDi ühendusviigu int led_roheline = 13; // määrame rohelise LEDi ühendusviigu
  
Line 151: Line 151:
 void loop()  void loop() 
 { {
-  pote = analogRead(pote_sisend)+1;  // loeme analoogsisendi väärtuse+  pote = analogRead(pote_sisend)+1;  // loeme analoogsisendi väärtuse 1 liidetakse, et ei tekiks 0 viide
  
   // Vilgutame LEDi väga kõrgel sagedusel, et paistaks tuhmim   // Vilgutame LEDi väga kõrgel sagedusel, et paistaks tuhmim
Line 157: Line 157:
   delayMicroseconds(pote);           // Ootame potensiomeetriga määratud mikrosekundid   delayMicroseconds(pote);           // Ootame potensiomeetriga määratud mikrosekundid
   digitalWrite(led_roheline, LOW);   // kustutame LED-i   digitalWrite(led_roheline, LOW);   // kustutame LED-i
-  delayMicroseconds(1026-pote);      // Ootame ülejäänud mikrosekundid+  delayMicroseconds(1026-pote);      // Ootame ülejäänud mikrosekundid. Peab olema suurem, kui max muutuja pote väärtus (pote+1)
 } }
  
 </code> </code>
 +
 ====== Harjutus #3.1 ====== ====== Harjutus #3.1 ======
 +Koostada programm, mis trükib potentsiomeetri väärtuse rea algusesse. Vajutades nupule vahetatakse rida ja jooksev väärtus kirjutatakse uuele reale. Vajutades uuesti nuppu vahetatakse aktiivse kirjutamise rida tagasi.
 +
 +<code c>
 +#include <LiquidCrystal.h> // include needed library
 + 
 +// Initialize LCD
 +LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 +const int nupp = A0; // Viik kuhu on ühendatud nupp
 +int pote_sisend = A1; // set potentiometer pin
 +int y=0;
 + 
 +void setup() {
 +  lcd.begin(16, 2); // set LCD column and row
 +  pinMode(nupp, INPUT); // define button pin as input
 +  digitalWrite(nupp, HIGH); // turn on internal pull-up resistor on button pin
 +}
 + 
 +void loop() {
 +
 +  if (digitalRead(nupp) == LOW) { // if button pressed 
 +   while (digitalRead(nupp) == LOW){} // wait for button release
 +   if (y) y=0; else y=1;
 +  } 
 +  lcd.setCursor(0, y); //set cursor position first row and column 0 (1. rida on indeksiga 0)
 +  lcd.print(analogRead(pote_sisend)); //Print out potentiometer value to LCD
 +  lcd.print("    "); //Print out empty spaces 
 +  delay (100);  
 +}
 +</code>
 +
 +====== Harjutus #4.1 ======
  
 Modifitseerida programmi nii, et potentsiomeetriga määratakse temperatuuri nivoo, mis salvestatakse nupuga programmi mällu ja selle nivoo hilisemal ületamisel käivitatakse täiturmehhanism (milleks on LED). Modifitseerida programmi nii, et potentsiomeetriga määratakse temperatuuri nivoo, mis salvestatakse nupuga programmi mällu ja selle nivoo hilisemal ületamisel käivitatakse täiturmehhanism (milleks on LED).
Line 180: Line 212:
 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  
-int pote_sisend = A5;  // määrame potentsiomeetri sisendviigu +int pote_sisend = A1;  // määrame potentsiomeetri sisendviigu 
-int NTC_sisend A3;  // määrame temperatuurianduri sisendviigu+int NTC_sisend A2;  // määrame temperatuurianduri sisendviigu
 int led = 13;  // määrame LED ühendusviigu int led = 13;  // määrame LED ühendusviigu
 int nupp = A0;  // määrame nupu ühendusviigu int nupp = A0;  // määrame nupu ühendusviigu
Line 235: Line 267:
   }   }
 } }
- 
- 
- 
- 
- 
 </code> </code>
-====== Harjutus #3.2 ======+====== Harjutus #4.2 ======
  
 Kombineerida LED-i heleduse programm ja eelnev temperatuuri juhtimise programm, kus LED-i heledus sõltub sellest, kui palju nivootemperatuuri ületati (1 kraad: heledus 25 %, 2 kraadi: heledus 50 %, 3 kraadi: heledus 75 % ja 5 kraadi: heledus 100 %) Kombineerida LED-i heleduse programm ja eelnev temperatuuri juhtimise programm, kus LED-i heledus sõltub sellest, kui palju nivootemperatuuri ületati (1 kraad: heledus 25 %, 2 kraadi: heledus 50 %, 3 kraadi: heledus 75 % ja 5 kraadi: heledus 100 %)
Line 339: Line 366:
   SoftPWMSetPercent(led, value);   SoftPWMSetPercent(led, value);
 } }
 +</code>
  
  
  
- +====== Harjutus #5.1 ======
- +
-</code> +
- +
-====== Harjutus #4.1 ======+
  
 Luua programm, mis võimaldab servomootori positsiooni muuta vastavalt nuppudega seadistatud suurusele. Luua programm, mis võimaldab servomootori positsiooni muuta vastavalt nuppudega seadistatud suurusele.
Line 378: Line 402:
 } }
 </code> </code>
-====== Harjutus #4.2 ======+====== Harjutus #5.2 ======
  
 Luua programm, mis servomootori baasil ehitatud radariga ja fotoanduriga leiaks ruumist kõige eredama punkti. Luua programm, mis servomootori baasil ehitatud radariga ja fotoanduriga leiaks ruumist kõige eredama punkti.
Line 431: Line 455:
 } }
 </code> </code>
-====== Harjutus #======+====== Harjutus #======
  
 Luua programm, mis jadaliidesest saadetud teksti kirjutaks LCD ekraanile. Märk „+“ vahetab rida ning märk „-“ kustutab kogu ekraani. Luua programm, mis jadaliidesest saadetud teksti kirjutaks LCD ekraanile. Märk „+“ vahetab rida ning märk „-“ kustutab kogu ekraani.
arduino_lahendused.1449752764.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