This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:arduino:book:lahendused [2017/01/16 14:01] – kaupo.raid | et:arduino:book:lahendused [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 600: | Line 600: | ||
| </ | </ | ||
| + | |||
| + | === Harjutus 7.1 === | ||
| + | <code c> | ||
| + | /* | ||
| + | Nimetus: Näide #7.1 Servomootor | ||
| + | Kirjeldus: Servomootori juhtimine PWM signaaliga | ||
| + | */ | ||
| + | |||
| + | // Kaasame vajalikud teegid | ||
| + | #include < | ||
| + | |||
| + | Servo mootor; | ||
| + | const int pote = A1; // määrame potentsiomeetri sisendviigu | ||
| + | const int lahedusAndur = A4; | ||
| + | |||
| + | int mootoriSuund = 1; //mootori liikumise suunda määrav muutuja (algväärtustatud paremale pöörama) | ||
| + | int servoAsend = 90; //servo hetkepositsiooni hoidev muutuja (algväärtustatud keskpositsiooni) | ||
| + | int naebObjekti; | ||
| + | |||
| + | void setup() { | ||
| + | mootor.attach(A5); | ||
| + | mootor.write(servoAsend); | ||
| + | while(digitalRead(lahedusAndur) == 1); | ||
| + | } | ||
| + | void loop() { | ||
| + | naebObjekti = digitalRead(lahedusAndur); | ||
| + | if(naebObjekti == 1){ | ||
| + | if(mootoriSuund == 1){ | ||
| + | servoAsend += 10; | ||
| + | } | ||
| + | else{ | ||
| + | servoAsend -= 10; | ||
| + | } | ||
| + | delay(50); //viide, et servo jõuaks uude positsiooni jõuda | ||
| + | } | ||
| + | else{ | ||
| + | //kui andur näeb midagi, siis mootori asend ei muutu | ||
| + | } | ||
| + | | ||
| + | if(servoAsend >=180){ | ||
| + | servoAsend = 180; | ||
| + | mootoriSuund = -1; | ||
| + | } | ||
| + | if(servoAsend <= 0){ | ||
| + | servoAsend = 0; | ||
| + | mootoriSuund = 1; | ||
| + | } | ||
| + | mootor.write(servoAsend); | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||