03. GYAKORLAT Szervó motor
Feladat Készítsen hardvert és írja meg hozzá a szoftvert amelyik a szervó motort ez egyik véghelyzetből a másik véghelyzetbe mozgatja, utána pedig a motort viszamozgatja a kezdőállapotba. A szervó motor egy fokos lépésekben kell hogy mozogjon, és minden állapot 15ms-ot kell hogy tartson.
Felhasznált alkatrészek Szervó motor: 3 kivezetése van. Tápfeszültség, földelés és vezérlőlábacska
Hardver A szervó motort az Arduino fejlesztőlap 9-es lábacskájára kell kapcsolni.
Szoftver A szoftver írásához a <Servo.h> könyvtárat használjuk amelyet a következő paranccsal kapcsolunk be a programba: #include <Servo.h> A szervó motor vezérléséhez a program elején létre kell hozni egy myservo nevű objektumot
Szoftver #include <Servo.h> Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees delay(15); // waits 15ms for the servo to reach the position
Programkód elemzése #include <Servo.h> //szervo konyvtar bekapcsolasa Servo myservo; // a motor vezerlesehez szukseges szervo objektum // letrehozasa int pos = 0; //a szervo motor kezdeti helyzete 0 fok void setup() { myservo.attach(9); // a szervo motort a szervo objektum 9-es // labacskajara kapcsoljuk }
Programkód elemzése void loop() { for (pos = 0; pos <= 180; pos += 1) { // a motor helyzete 0 fok es 180 fok // kozott mozog 1 fokos lepesekben myservo.write(pos); // a szervot a pos helyzetbe kuldjuk delay(15); // keses hogy a szervo elerje a // megadott helyzetet } for (pos = 180; pos >= 0; pos -= 1) { // visszafele mozgatas 180 foktol // 0 fokig myservo.write(pos); delay(15);
Az elkészített projekt
Önálló feladat Írjon programot amelyik a motort a 0 fok és 90 fok közötti pozíciók között fogja oda-vissza mozgatni. Írjon programot amelyik egy 0 és 180 fok közötti véletlen számot hoz létre, és a motort abba a helyzetbe mozgatja. A program minden másodpercben kell hogy létrehozzon egy véletlen számot.