back to top

Arduino Dersleri #11: Arduino ile Ses Sensörü Kullanımı – Sesle Motor Kontrol

Merhaba arkadaşlar ! Arduino serimizi beğendiniz mi? Tüm yorumlarınızı ve düşüncelerinizi blogumuzda ve YouTube kanalımızda bizlerle paylaşabilirsiniz. Serimizin bu yazısında sizlere ses sensörü modülümüzden bahsedeceğiz ve birlikte sesle çalışan motor uygulaması yapacağız.

Bir önceki yazımızda birlikte Ultrasonik Sensör kullanmıştık >>> Arduino ile Basit Park Sensörü Yapımı !

Arduino İle Dijital Ses Tanıma


Gerekli malzemeler:

Arduino Ses Tanıma Modülü-Sensörünü İnceleyelim

Arduino ile uyumlu ses sensörü modülü ile farklı boyutlardaki sesler değerleri tanınabilmektedir. Ses tanıma modülüne aynı zamanda mikrofon da diyebiliriz. Bu sayede fiziksel olarak algılanan ses değerleri, Arduino’ya bir giriş sinyali sağlayacaktır. Bu sayede çıkışa bağlı LED, motor gibi aktüatörleri ses ile kontrol edebilmekteyiz. Ses sensörü ile analog ve dijital değerler okumamız mümkün; biz bu uygulamamızda dijital değerler ile çalışacağız.

Ses sensör modülünü daha detaylı incelemek için yazımızı ziyaret edebilirsiniz >>> Arduino ile Ses Sensör Modülü

Diğer bütün sensörler hakkında bilgi almak için yazımızı inceleyin >>> Sensör Nedir? Sensör Çeşitleri Nelerdir?

Arduino Ses ile Motor Kontrol Devresi

Devremizi aşağıdaki gibi kuralım:

Arduino Ses Sensörü ile Motor Kontrol Devresi

Ses Sensörü ile Motor Kontrolü Arduino Kodu

Arduino kodumuzu aşağıdaki gibi yazalım:

#define echoPin 6
#define SensorPin 3
#define MotorPin 5
int MotorDurum = LOW;
void setup() {
  pinMode(SensorPin, INPUT);
  pinMode(MotorPin, OUTPUT);
}
void loop() {
  if (digitalRead(SensorPin)) {
    if (MotorDurum == LOW) {
      MotorDurum = HIGH;
    } else {
      MotorDurum = LOW;
    }
    digitalWrite(MotorPin, MotorDurum);
  }
  delay(50);
}

Son Çıkan Yazılar

21 YORUMLAR

  1. Bu kodlamaya göre ses duymadığı zaman motor çalışmıyor. Kodlamayı şöyle nasil tasarlarız? Çalış sesini veya parmak şıklatmayı bir kere duycak sürekli çalışma moduna girecek, bir kere daha ses duyarsa duracak. ?

  2. Hocam iyi akşamlar;

    Projemde ses sensörüne bağlı motorum sesi algılayınca belli bir mesafe gidip 30 saniye bekleyip tekrar ilk başladığı konuma gitmesi gerekiyor bunu nasıl yapabilirim?

  3. #define echoPin 6 (6. pin ses dinleme)
    #define SensorPin 3 (3. pin sensör)
    #define MotorPin 5 (5. pin motor) tanımlamaları mı yapılıyor?
    int MotorDurum = LOW;

    void setup() {

    pinMode(SensorPin, INPUT);giriş ve çıkış pinleri belirleniyor
    pinMode(MotorPin, OUTPUT);
    }

    void loop() {

    if( digitalRead(SensorPin) ){

    if(MotorDurum == LOW){

    MotorDurum = HIGH;
    } sensör pindeki dijital değeri oku eğer motor çalışmıyor ise çalıştır
    else{

    MotorDurum = LOW; Çalışıyor ise durdur.
    }

    digitalWrite(MotorPin, MotorDurum); Motorun durumunu (çalıştığı yada durduğunu) motorpin değişkenine ata.

    }
    delay(50);

    Açıklamalar doğru mu? Veya kodu satır satır açıklayabilir misiniz?

    }

  4. echopin diye bir şey yok. Dikkat edilirse devrede echopine bağlanan bir şeyde yok. Hatalı yazılmış. bir hatada setlerle birlikte satılan arduino uygulama kitabında var. 7. pinden bahsediyor ve 300 milisaniye motorun çalışacağından. yanlış! motor, sensör tetiklendiğinde sürekli çalışıyor. tekrar tetiklenene kadar.

  5. Transistörü bir türlü bağlayamadım 5v verince motorum çalışıyor hatta transistörün yerine lamba takınca gene çalışıyor. Çevirdim, çıkardım taktım, kabloları değiştirdim herşeyi denedim. Yardım edebilir misiniz?

    • Selamlar,

      Motor ile alakalı birimleri kaldırdıktan sonra, motora güç verilen kısmın içerisine LED’e güç verme komutlarını, motoru durdurma komutlarının olduğu yere ise LED’i durdurma komutlarını yazarsanız olacaktır.

      İyi çalışmalar dileriz 🙂

  6. abi lütfen yardım edin kodda bi hata oluşup durıyo yuklemiyo ama motor çalışıyo hiç durmuyo ancak güç kaynağindan çıkarırsam lütfen yardım

    • #define SensorPin 3
      #define MotorPin 5
      int MotorDurum = LOW;

      void setup() {
      pinMode(SensorPin, INPUT);
      pinMode(MotorPin, OUTPUT);
      }
      void loop() {
      if ( digitalRead(SensorPin)==HIGH ) {
      if (MotorDurum == LOW) {
      MotorDurum = HIGH;
      }
      else {

      MotorDurum = LOW;
      }
      digitalWrite(MotorPin, MotorDurum);
      }
      delay(50);
      }

  7. 3 pinli ses sensör kartı vermişsiniz, 4 pinli kullanıyorsunuz. #define echoPin 6 kodlamışsınız bağlantı yapmamışsınız. Arduino Uygulama Kitabında da yanlışlıklar var.

  8. Biz ses sensörü ile kapı açıp kapatmak istiyoruz ve bu yüzden de kodları servo çalıştıracak şekilde olmalı.Bana yardım edebilir misiniz.DC Motor yerine servo motoru 90 derece açıp kapatıcak.Lütfen…

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz