Arduino Joystick ile Servo Motor Kontrolü 2025 | Analog Kontrol Projesi
Arduino Joystick Servo Kontrolü Nedir?
Arduino joystick servo motor kontrolü, analog joystick hareketlerini servo motor pozisyonuna çeviren interaktif kontrol projesidir. Joystick’in X-Y ekseni servo motorun açısını belirler.
Joystick ve Servo Çalışma Prensibi
Joystick potansiyometre tabanlı analog sensördür (0-1023 değer). Servo motor PWM sinyali ile 0-180° arası pozisyon alır. Arduino joystick değerlerini servo açısına map eder.
Arduino Joystick Servo Kontrol Malzemeleri
📦 Temel Bileşenler:
- Arduino Uno R3 – Ana mikrokontrolcü
- Analog Joystick Modülü – X-Y ekseni kontrolü
- SG90 Servo Motor – Pozisyon motoru
- Jumper Kablolar – Bağlantı
🔧 Ek Malzemeler:
- Breadboard – Montaj tahtası
- Güç Kaynağı – Harici 5V (çoklu servo için)
Devre Bağlantısı
🔌 Joystick Bağlantıları:
- VCC → Arduino 5V
- GND → Arduino GND
- VRx → Arduino A0 (X ekseni)
- VRy → Arduino A1 (Y ekseni)
- SW → Arduino Pin 2 (Button)
🎛️ Servo Motor Bağlantısı:
- Kırmızı (VCC) → Arduino 5V
- Kahverengi (GND) → Arduino GND
- Turuncu (Signal) → Arduino Pin 9
Arduino Joystick Servo Kodu
📚 Gerekli Kütüphane:
#include <Servo.h>
💻 Basit Kontrol Kodu:
#include <Servo.h>
Servo myServo;
int joyX = A0;
int joyY = A1;
int joyButton = 2;
int servoPin = 9;
int xValue, yValue;
int servoAngle = 90;
void setup() {
Serial.begin(9600);
myServo.attach(servoPin);
pinMode(joyButton, INPUT_PULLUP);
myServo.write(90); // Orta pozisyon
Serial.println("Joystick Servo Kontrol Başladı");
}
void loop() {
// Joystick değerlerini oku
xValue = analogRead(joyX);
yValue = analogRead(joyY);
// X ekseni ile servo kontrol (0-1023 → 0-180)
servoAngle = map(xValue, 0, 1023, 0, 180);
myServo.write(servoAngle);
// Button kontrolü
if (digitalRead(joyButton) == LOW) {
myServo.write(90); // Orta pozisyona dön
Serial.println("Reset - Orta Pozisyon");
delay(200);
}
// Debug bilgisi
Serial.print("X: ");
Serial.print(xValue);
Serial.print(" | Servo: ");
Serial.println(servoAngle);
delay(50);
}
Joystick Modülü Özellikleri
🕹️ Teknik Özellikler:
- X-Y Ekseni: 2 adet potansiyometre
- Çıkış Aralığı: 0-1023 (10-bit)
- Orta Değer: ~512
- Button: Push-button switch
- Çalışma Voltajı: 3.3V-5V
Servo Motor Özellikleri
⚙️ SG90 Teknik Bilgiler:
- Tork: 1.8kg/cm
- Hız: 0.1s/60°
- Açı Aralığı: 180°
- Kontrol: PWM (1-2ms pulse)
- Frekans: 50Hz
Kullanım Alanları
🎯 Uygulama Örnekleri:
- Robot Kol Kontrolü – Servo arm
- Kamera Gimbal – Pan-tilt kontrol
- RC Araç – Direksiyon kontrolü
- Drone Gimbal – Kamera yönlendirme
- Oyun Kontrolcüsü – Gaming interface
Gelişmiş Kontrol
🚀 İyileştirmeler:
- Çift Servo: X ve Y ekseni ayrı kontrol
- Smooth Movement: Yumuşak geçiş
- Dead Zone: Orta bölge hassasiyeti
- Speed Control: Hareket hızı ayarı
💻 Çift Servo Kodu:
Servo servoX, servoY;
void setup() {
servoX.attach(9); // X ekseni servo
servoY.attach(10); // Y ekseni servo
}
void loop() {
int angleX = map(analogRead(A0), 0, 1023, 0, 180);
int angleY = map(analogRead(A1), 0, 1023, 0, 180);
servoX.write(angleX);
servoY.write(angleY);
delay(50);
}
Sorun Giderme
⚠️ Yaygın Problemler:
- Titreşim: Dead zone ekleyin
- Servo Çalışmıyor: PWM pin kontrolü
- Yanlış Hareket: Map değerleri ters çevirin
- Güç Sorunu: Harici 5V kullanın
Kalibrasyon
⚙️ Joystick Kalibrasyonu:
- Min/Max Değer: Serial monitor ile test
- Orta Nokta: ~512 civarı olmalı
- Dead Zone: ±20 değer toleransı
- Smoothing: Ortalama filtre uygulama
Maliyet
| Malzeme | Fiyat (TL) |
|---|---|
| Arduino Uno | 45-60 |
| Joystick Modülü | 8-15 |
| SG90 Servo | 12-20 |
| Jumper Kablo | 3-5 |
| Toplam | 68-100 |
Sonuç
Arduino joystick servo motor kontrolü, analog girişleri motor pozisyonuna çeviren temel robotik kontrol projesidir. Robot kol ve gimbal uygulamaları için mükemmel başlangıç.
📺 Gerekli bilgiler videoda mevcuttur.
Anahtar Kelimeler: Arduino joystick servo kontrol, analog joystick Arduino, servo motor kontrolü, SG90 servo projesi, joystick ile motor kontrol
Devre Şeması
Çalışma Videosu
Premium Üyeler İçin Gerekli Kodlar:
Not:Gerekli bilgiler video da verilmiştir. Yapamazsanız lütfen videoyu izleyiniz !












sa hocam ben nrf24l01 ile 2 joystick yardımıyla 3 adet servo motor kontrol etmek istiyorum kod kısmında sıkıntı yaşıyroum siz daha öce böyle bir şey yaptınız mı yaptıysanız yardımcı olur musnuz?teşekkürler iyi çalışmalar