This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
arduino_lahendused [2014/06/10 08:40] – rellermaa | arduino_lahendused [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 28: | Line 28: | ||
pinMode(rohelineLED, | pinMode(rohelineLED, | ||
pinMode(nupp, | pinMode(nupp, | ||
+ | digitalWrite(nupp, | ||
} | } | ||
Line 88: | Line 89: | ||
pinMode(rohelineLED, | pinMode(rohelineLED, | ||
pinMode(nupp, | pinMode(nupp, | ||
+ | digitalWrite(nupp, | ||
} | } | ||
Line 137: | 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 149: | Line 151: | ||
void loop() | void loop() | ||
{ | { | ||
- | pote = analogRead(pote_sisend)+1; | + | pote = analogRead(pote_sisend)+1; |
// Vilgutame LEDi väga kõrgel sagedusel, et paistaks tuhmim | // Vilgutame LEDi väga kõrgel sagedusel, et paistaks tuhmim | ||
Line 155: | Line 157: | ||
delayMicroseconds(pote); | delayMicroseconds(pote); | ||
digitalWrite(led_roheline, | digitalWrite(led_roheline, | ||
- | delayMicroseconds(1026-pote); | + | delayMicroseconds(1026-pote); |
} | } | ||
</ | </ | ||
+ | |||
====== 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 < | ||
+ | |||
+ | // 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, | ||
+ | pinMode(nupp, | ||
+ | digitalWrite(nupp, | ||
+ | } | ||
+ | |||
+ | 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, | ||
+ | lcd.print(analogRead(pote_sisend)); | ||
+ | lcd.print(" | ||
+ | delay (100); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== 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 178: | 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 | + | int NTC_sisend |
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 233: | Line 267: | ||
} | } | ||
} | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
</ | </ | ||
- | ====== 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 337: | Line 366: | ||
SoftPWMSetPercent(led, | SoftPWMSetPercent(led, | ||
} | } | ||
+ | </ | ||
- | + | ====== Harjutus #5.1 ====== | |
- | + | ||
- | </ | + | |
- | + | ||
- | ====== 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 376: | Line 402: | ||
} | } | ||
</ | </ | ||
- | ====== 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 429: | Line 455: | ||
} | } | ||
</ | </ | ||
- | ====== Harjutus #5 ====== | + | ====== Harjutus #6 ====== |
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. |