5. Projekt --Szervomotor vezérlése Joystick-kal --V1.1
by Roboworld Hobbielektronika
Rövid leírás:Ebben a rövid projektben bemutatjuk neked, hogyan tudsz vezérelni több szervomotort 1 db joystick segítségével. Esetünkben 2 db szervomotort vezérlünk, azonban csak rajtad múlik, hogy hányat használsz. A mintakódot kiegészítve akár 3 vagy 4 is lehet.
Hardware:
1 db Arduino Uno
2 db Tower Pro MG90S vagy Towerpro SG90 micro szervo
1 db Joystick modul
Breadboard + vezeték
Kapcsolási rajz:
A Towerpro szervók csatlakozása, amelyeket a projektben használunk a következőek:
Joystick modulról:
2db 5kΩ-os potenciométer helyezkedik el a modulban mindazért, hogy olvasni lehessen az X és az Y pozíciókat. Továbbá 1 db normál nyomógomb. A nyomógombot úgy tudjuk használni, hogy középen megnyomjuk a joystickot.
A modulon 5 pin található:
+5 VCC
–GND
–VRx (néhány modulon H-val jelölik, mint Horizontal)
–VRy (néhány modulon V-vel jelölik, mint Vertical)
–SW ( Nyomógomb/ Switch)
A kapcsolás megépítése után következzen a programozás. Programozás, mintakód:
A mintakódot megtalálod a következő linken vagy az oldalunkon „Arduino projektek” fül alatt.
Miután betöltötted a mintakódot (Servo_Control_with_Joystick.ino) az Arduino IDE fejlesztőkörnyezetbe, nincs más dolgod, mint feltölteni azt az Arduinodra.
/* Project 5 - Szervo vezérlés Joystick-kal
by Roboworld Hobbielektronika
www.hobbielektronikabolt.hu
*/
// Szervó libary használata
#include <Servo.h>
// Szervók definiálása
Servo servo1;
Servo servo2;
//Joystick analog pinjeinek definiálása
int joyX=0;
int joyY=1;
//joyVal változó létrehozása, hogy az analog pinről az értéket letudjuk olvasni
int joyVal;
//Program kezdete
void setup() {
//Szervók PWM pinjeinek meghatározása. 3. pin és az 5. pin
servo1.attach(3);
servo2.attach(5);
}
void loop() {
//Olvasni a Joystick X értékét 0 -1023 között
joyVal=analogRead(joyX); // joyX analog pinjének olvasása
joyVal=map(joyVal,0,1023,0,180); // joyVal(0-1023) váltózó értékét felosztja 0-180-as szakaszra (egyenes arányosság)
servo1.write(joyVal); // 1. Servomotor mozgatása
//Olvasni a Joystick Y értékét 0 -1023 között
joyVal=analogRead(joyY); // joyY analog pinjének olvasása
joyVal=map(joyVal,0,1023,0,180); // joyVal(0-1023) váltózó értékét felosztja 0-180-as szakaszra (egyenes arányosság)
servo2.write(joyVal); // 2. Servomotor mozgatása
delay(15);
}
}
Megvalósítás Letöltés
Megjegyzések
Megjegyzés küldése