DIY ELECTRONICSEN

← Tüm projeler

Potansiyometreyle Servo

Başlangıç25 dk

Potansiyometrenin düğmesini çevirdikçe SG90 servo motor da aynı yöne döner: düğmenin bir ucu 0°, öbür ucu 180°. Servonun durduğu açı Seri Monitöre de yazılır. Bir kütüphaneyi (Servo) projeye eklemeyi, analogRead ile okunan değeri map ile açıya çevirmeyi ve servo.write ile bir motoru istenen açıya götürmeyi öğretir. Servo kütüphanesi Arduino IDE ile gelir, ayrıca kurmak gerekmez.

Uygulamada adım adım yap

Gerekli malzemeler

Bağlantı adımları

  1. 1

    Güç sıralarını bağla (5V ve GND)

    Güç sıralarını bağla (5V ve GND)

    Siyah jumper kabloyu Arduino'nun güç başlığındaki GND pinlerinden birine tak, diğer ucunu breadboard'un üstteki mavi çizgili (−) güç sırasına bağla. Kırmızı jumper kabloyu aynı başlıktaki 5V pinine tak, diğer ucunu üstteki kırmızı çizgili (+) güç sırasına bağla. Hem potansiyometre hem servo bu iki sıradan beslenecek.

    • Arduino GND → üstteki mavi çizgili (−) sıra (siyah kablo)
    • Arduino 5V → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
  2. 2

    Potansiyometreyi tak ve bağla

    Potansiyometreyi tak ve bağla

    Potansiyometrenin üç bacağını üst yarıda 20., 21. ve 22. sütunlara tak. Kısa siyah bir kabloyla 20. sütunu üstteki (−) güç sırasına, kısa kırmızı bir kabloyla 22. sütunu üstteki (+) güç sırasına bağla. Sonra sarı jumper kabloyla Arduino'nun A0 pinini orta bacağın sütununa, 21. sütuna bağla (POT_PIN A0). Düğmeyi çevirdikçe orta bacağın gerilimi 0 V ile 5 V arasında değişir ve Arduino onu 0 ile 1023 arasında bir sayı olarak okur.

    • potansiyometre sol bacak → 20. sütun, üst yarı
    • potansiyometre orta bacak → 21. sütun, üst yarı
    • potansiyometre sağ bacak → 22. sütun, üst yarı
    • 20. sütun, üst yarı → üstteki mavi çizgili (−) sıra (siyah kablo)
    • 22. sütun, üst yarı → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
    • Arduino A0 → 21. sütun, üst yarı (sarı kablo)
  3. 3

    Servoyu bağla

    Servoyu bağla

    SG90'ın kablosunun ucundaki üç delikli fişe üç erkek-erkek jumper kablonun birer ucunu tak. Kahverengi (GND) kablonun karşısındakini üstteki (−) güç sırasına, kırmızı (5V) kablonun karşısındakini üstteki (+) güç sırasına, turuncu (sinyal) kablonun karşısındakini doğrudan Arduino'nun ~9 pinine bağla (SERVO_PIN 9). Servo, sinyal kablosundan gelen kısa darbelerin uzunluğuna bakarak hangi açıya döneceğini anlar; bu darbeleri Servo kütüphanesi üretir.

    • servo kahverengi (GND) ucu → üstteki mavi çizgili (−) sıra (siyah kablo)
    • servo kırmızı (5V) ucu → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
    • Arduino pin 9 → servo turuncu (sinyal) ucu (turuncu kablo)

Arduino kodu

// Servo kütüphanesi Arduino IDE ile gelir
#include <Servo.h>

// Potansiyometrenin orta bacağı A0'da
const int POT_PIN = A0;
// Servonun turuncu (sinyal) kablosu
const int SERVO_PIN = 9;

Servo servo;
int lastAngle = -1;

void setup() {
  servo.attach(SERVO_PIN);
  Serial.begin(9600);
}

void loop() {
  // 0 (bir uç) ile 1023 (öbür uç) arası
  int potValue = analogRead(POT_PIN);

  // 0–1023'ü 0–180 dereceye çevir
  int angle = map(potValue, 0, 1023, 0, 180);
  servo.write(angle);

  // Açı değişince Seri Monitöre yaz
  if (angle != lastAngle) {
    Serial.print("Açı: ");
    Serial.println(angle);
    lastAngle = angle;
  }
  // Servo yeni açıya yetişsin
  delay(15);
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
Açı: 0
Açı: 45
Açı: 90
Açı: 135
Açı: 180

Sonuç

Düğmeyi çevirdikçe servonun kolu da döner: düğmenin bir ucunda 0°, ortasında 90°, öbür ucunda 180°. Seri Monitörde açı düğmeyle birlikte değişir. Açı değişiyor ama servo kıpırdamıyorsa turuncu kablonun ~9 pininde, kırmızı ve kahverengi kabloların doğru sıralarda olduğuna bak. Servo titriyor ya da Arduino kendiliğinden yeniden başlıyorsa servo USB'den yeterli akım alamıyordur: kolu zorlayacak bir yük takma, gerekirse Arduino'yu adaptörle besle. Açı hiç değişmiyorsa sarı kablonun orta bacağın sütununda (21) olduğuna bak.

Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.

Uygulamada adım adım yap