Arduino Keypad ile Servo Motor Kontrolü || Controlling a Servo Motor Using a Keypad

Arduino Keypad ile Servo Motor Kontrolü

Arduino Keypad ile Servo Motor Kontrolü

1. Giriş

Bu derste, bir **keypad** kullanarak bir **servo motoru** nasıl kontrol edebileceğimizi öğreneceğiz. Keypad, Arduino ile etkileşimde bulunan bir giriş birimidir ve genellikle PIN kodu, parola girişi gibi durumlarda kullanılır. Bu örnekte, keypad'e basılan tuşlarla servo motorun açısını kontrol edeceğiz.

2. Gerekli Bileşenler

Bu projeyi gerçekleştirebilmek için aşağıdaki bileşenlere ihtiyacınız olacak:

  • Arduino kartı (Arduino Uno veya diğer modeller)
  • 4x4 Matrix Keypad
  • Servo Motor
  • Jumper kablolar
  • Arduino IDE

3. Keypad Bağlantıları

Keypad'in pinlerini Arduino'ya bağlamak için aşağıdaki bağlantıları yapmanız gerekmektedir:

  • Keypad Pin 1 -> Arduino Pin 7
  • Keypad Pin 2 -> Arduino Pin 6
  • Keypad Pin 3 -> Arduino Pin 5
  • Keypad Pin 4 -> Arduino Pin 4
  • Keypad Pin 5 -> Arduino Pin 3
  • Keypad Pin 6 -> Arduino Pin 2
  • Keypad Pin 7 -> Arduino Pin 8
  • Keypad Pin 8 -> Arduino Pin 9

Servo motorun kontrolü için, servo motorun sinyal pinini Arduino'nun PWM pinlerinden birine (örneğin, pin 10) bağlayacağız.

4. Kodlama

Arduino'nun keypad ile etkileşim kurabilmesi için, keypad kütüphanesini kullanacağız. Bu kütüphane, tuşlara basıldığında hangi tuşun basıldığını anlamamızı sağlar.

Kod Örneği


#include 
#include 

// Keypad ayarları
const byte ROW_NUM    = 4; // Satır sayısı
const byte COLUMN_NUM = 4; // Sütun sayısı
char keys[ROW_NUM][COLUMN_NUM] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // Satır pinleri
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // Sütun pinleri
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);

// Servo motor ayarları
Servo myservo;
int pos = 0;  // Servo motor pozisyonu

void setup() {
  myservo.attach(10);  // Servo sinyal pinini 10 numaraya bağla
  Serial.begin(9600);  // Seri monitörü başlat
}

void loop() {
  char key = keypad.getKey();  // Keypad tuşu okunuyor
  if (key) {
    Serial.println(key);  // Tuşa basıldığında tuş değeri seri monitöre yazdırılır
    
    if (key == '1') {
      pos = 0;  // Tuş '1' basıldığında servo 0 dereceye gider
    } else if (key == '2') {
      pos = 45;  // Tuş '2' basıldığında servo 45 dereceye gider
    } else if (key == '3') {
      pos = 90;  // Tuş '3' basıldığında servo 90 dereceye gider
    } else if (key == '4') {
      pos = 135;  // Tuş '4' basıldığında servo 135 dereceye gider
    } else if (key == '5') {
      pos = 180;  // Tuş '5' basıldığında servo 180 dereceye gider
    }

    myservo.write(pos);  // Servo motorun pozisyonunu ayarla
    delay(500);  // Bir tuşa basıldıktan sonra kısa bir bekleme
  }
}
    

Bu kodda, Keypad kütüphanesi kullanarak keypad'in tuşlarını okuyoruz. Eğer tuşlardan birine basılırsa, servo motorun pozisyonunu değiştirmek için myservo.write() fonksiyonu kullanılır. Her tuş için farklı bir açı ayarlanır. Örneğin, '1' tuşuna basıldığında servo motor 0 dereceye, '5' tuşuna basıldığında ise 180 dereceye gider.

5. Sonuç

Bu derste, Arduino ile **keypad** kullanarak bir **servo motoru** nasıl kontrol edebileceğimizi öğrendik. Keypad'e basılan tuşlarla servo motorun pozisyonunu değiştirdik. Bu temel prensipleri kullanarak daha karmaşık projeler geliştirebilir, keypad ile farklı işlevler gerçekleştirebilirsiniz. Ayrıca, servo motorun farklı pozisyonlarında yapılacak değişikliklerle robotik projelere de adım atabilirsiniz.

Yorum Gönder

0 Yorumlar