Arduino projelerinde joystickler, kullanıcı etkileşimi ve kontrol sağlamak için idealdir. Bu yazıda, Arduino ile joystick kullanarak iki servo motoru nasıl kontrol edebileceğinizi öğreneceksiniz. Joystickin X ve Y eksenlerindeki hareketlerini kullanarak servo motorların açılarını ayarlayacağız.
Gerekli Malzemeler:
- Arduino Uno (veya benzeri bir Arduino kartı)
- Breadboard
- Joystick modülü (örneğin, KY-023)
- 2 adet servo motor
- Jumper kablolar
Devre Kurulumu:
- Joystick modülünü Breadboard’a yerleştirin: Modülün 5 pini vardır: Vcc (güç), GND (toprak), VRx (X ekseni), VRy (Y ekseni) ve SW (buton).
- Modülün güç ve toprak bağlantılarını yapın: Vcc pinini Arduino’nun 5V pinine, GND pinini GND pinine bağlayın.
- Joystickin X ve Y eksenlerini bağlayın: VRx pinini Arduino’nun analog pinlerinden birine (örneğin A0), VRy pinini başka bir analog pine (örneğin A1) bağlayın.
- Servo motorları bağlayın: Servo motorların güç, toprak ve sinyal bağlantılarını önceki servo motor yazılarında olduğu gibi yapın. Örneğin, bir servo motorun sinyal pinini 9. pine, diğer servo motorun sinyal pinini 10. pine bağlayabilirsiniz.
Kodlama:
- Arduino IDE’sini açın ve yeni bir proje oluşturun.
- Servo kütüphanesini ekleyin: “Araçlar” > “Kütüphane Yöneticisi” seçeneğini kullanarak Servo kütüphanesini arayın ve yükleyin.
- Aşağıdaki kodu proje penceresine yazın:
#include <Servo.h> Servo servoX; // X ekseni servo motoru Servo servoY; // Y ekseni servo motoru int joyXPin = A0; // Joystick X ekseni pin int joyYPin = A1; // Joystick Y ekseni pin int joyXValue, joyYValue; int servoXAngle, servoYAngle; void setup() { servoX.attach(9); // X ekseni servo motorunu 9. pine bağlayın servoY.attach(10); // Y ekseni servo motorunu 10. pine bağlayın } void loop() { // Joystick değerlerini okuyun joyXValue = analogRead(joyXPin); joyYValue = analogRead(joyYPin); // Joystick değerlerini servo açılarına dönüştürün (0-180 derece) servoXAngle = map(joyXValue, 0, 1023, 0, 180); servoYAngle = map(joyYValue, 0, 1023, 0, 180); // Servo motorları kontrol edin servoX.write(servoXAngle); servoY.write(servoYAngle); delay(15); // Servo motorların hareket etmesi için zaman tanıyın }
- Kodu Arduino’ya yükleyin.
Sonuç:
Kod yüklendikten sonra, joysticki hareket ettirerek servo motorların açılarını kontrol edebilirsiniz. Joystickin X ekseni, bir servo motorun açısını, Y ekseni ise diğer servo motorun açısını kontrol edecektir.
Bu projede, joystick ile iki servo motorun kontrolünü yapmayı ve analog değerleri servo açılarına dönüştürmeyi öğrendiniz.
Geliştirmeler:
- Joystick butonunu kullanarak servo motorların hareketini başlatın veya durdurun.
- Servo motorların hareket hızını kontrol edin.
- Joystick ile bir robot kolunu veya pan-tilt mekanizmasını kontrol edin.
Yorumlar