This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:arduino:motors:project2 [2017/04/18 12:50] – raivo.sell | et:arduino:motors:project2 [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Projekt 6 Servomootor UH anduriga | ====== Projekt 6 Servomootor UH anduriga | ||
| - | Ühendada | + | Selles projektis tuleb ühendada |
| * Servomootor - D3 | * Servomootor - D3 | ||
| * Potentsiomeeter - A1 | * Potentsiomeeter - A1 | ||
| - | * Ultraheli | + | * Ultraheli |
| {{: | {{: | ||
| - | ~~PB~~ | ||
| ===== Näide #6.1 Servomootor ja PWM signaal ===== | ===== Näide #6.1 Servomootor ja PWM signaal ===== | ||
| - | Servomootori juhtimine toimib ainult PWM signaaliga. Üldjuhul | + | Antud näiteprogrammis kasutame mikro servomootorit, |
| + | Programmi töö kujutab endast servomootori juhtimiseks vajalike seadistuste tegemist ja seejärel potentsiomeetri asendi järgi selle hoova liigutamist. Arduino analoogsisendi väärtused on vahemikus 0-1023 aga servo juhtimise funktsioon nõuab väärtusi vahemikus | ||
| - | Programmi töö kujutab endast servomootori juhtimiseks vajalike seadistuste tegemist ja seejärel potentsiomeetri asendi järgi selle hoova liigutamist. Arduino analoogsisendi väärtused on vahemikus 0-1023 aga servo juhtimise funktsioon nõuab väärtusi vahemikus 0-180. Üks võimalus on analoogsisendi tulemus jagada läbi sobiva arvuga, et saada maksimaalne tulemus 180. Praktilisem lahendus on kasutada Arduino funktsiooni | + | // |
| - | Arduino //map// funktsiooni kohta saab lisaks lugeda siit: [[https:// | + | |
| + | Antud funktsioon võtab sisendiks esialgsed miinimum ja maksimum väärtused ning konverteerib selle muutumispiirkonna kasutaja poolt määratud muutumispiirkonnaks. Antud juhul 0-1023 teisendame vahemikuks 0-180. Arduino //map// funktsiooni kohta saab lisaks lugeda siit: [[https:// | ||
| <code c> | <code c> | ||
| Line 36: | Line 38: | ||
| void setup() | void setup() | ||
| { | { | ||
| - | // Servo objekti sidumine kindla viiguga | + | // Servo objekti sidumine kindla |
| mootor.attach(servo); | mootor.attach(servo); | ||
| } | } | ||
| Line 52: | Line 54: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| ===== Näide #6.2 Servomootor ja kaugusandur ===== | ===== Näide #6.2 Servomootor ja kaugusandur ===== | ||
| Järgnevas näites on pandud kokku kaugusanduri mõõtmise ja servo liigutamise funktsionaalsus. Tulemuseks on algeline radar, mis tuvastab iga 10 kraadise liikumise järel ees oleva objekti kauguse. Mõõtetulemused edastatakse jadapordi monitorile.\\ | Järgnevas näites on pandud kokku kaugusanduri mõõtmise ja servo liigutamise funktsionaalsus. Tulemuseks on algeline radar, mis tuvastab iga 10 kraadise liikumise järel ees oleva objekti kauguse. Mõõtetulemused edastatakse jadapordi monitorile.\\ | ||
| Line 69: | Line 71: | ||
| // Servo ja ultrahelianduri ühendusviikude määramine | // Servo ja ultrahelianduri ühendusviikude määramine | ||
| - | #define MOOTOR 3 | + | #define MOOTOR 3 |
| #define TRIG A3 | #define TRIG A3 | ||
| #define ECHO A4 | #define ECHO A4 | ||
| Line 76: | Line 78: | ||
| Servo sensM; | Servo sensM; | ||
| - | // Anduri objekti tekitamine nimega sonar | + | // Anduri objekti tekitamine nimega sonar |
| - | NewPing sonar(TRIG, ECHO, 200); | + | NewPing sonar(TRIG, ECHO, 200); |
| - | void setup() | + | void setup() |
| { | { | ||
| // Servo objekti ja ühendusviigu sidumine | // Servo objekti ja ühendusviigu sidumine | ||
| Line 124: | Line 126: | ||
| ==== Harjutus 6.2 ==== | ==== Harjutus 6.2 ==== | ||
| - | Modifitseerida näiteprogrammi nii, et pärast igat skanneerimistsüklit | + | Modifitseerida näiteprogrammi nii, et pärast igat skaneerimistsüklit |