Arduino Projeleri

Arduino Ses İle Beşik Kontrolü

Arduino Ses İle Beşik Kontrolü

Arduino Ses İle Beşik Kontrolü

Arduino Ses İle Beşik Kontrolü

Bebek dünyası, tavana asılmış iki çengelle sallanan beşiklerden bugünkü otomatik beşiklere kadar gelmiştir. Yıllar geçtikçe teknolojinin esas amacı ortaya çıkmış oldu; insanlara kolaylık sağlamak. Biz de bu projede yeni annelerimiz için çok gerekli olan bebeğin ağlaması ile çalışan bir beşik tasarlayacağız. Beşiğin bebekten tarafına doğru yerleştirilmiş ses sensörü ile beşiğin sallanmasını sağlayacağız.

Kullanılan Malzemeler

Tasarım

Projenin hedefi ses sensöründen gelen veriyi Arduino kartında işleyip motora hareket olarak vermektir. İlk yapacağımız iş, ses sensörünü Arduino kartına bağlamak. Sensörü kartın analog-0 girişine bağlayacağız.

İkinci işimiz, dc motoru Uno kartına bağlamak. Projede kullanacağımız dc motordan bahsedecek olursak; tork değeri 0.35~1.25nm, Çıkış Gücü: 100w ~350w, 1000~8000 rpm ve Voltaj (V): 12v, 24v~48v özelliklerinde olursa daha iyi performans alırız. Motoru Uno kartının PWM uçlarından 9 numaralı pine bağlayacağız. PWM, darbe genişlik modülasyonu demektir. Modülasyon işlemi gerçekleştiren bu tekniğin asıl amacı cihazlara verilen elektriğin gücünü kontrol altında tutmaktır.

Arduino Ses İle Beşik Kontrolü

Yazacağımız kod ile, motoru yavaştan hızlıya doğru 3 saniye hareket ettirip sonra tekrar yavaşça durduracağız. Bu 3 saniye içerisinde motorun ucuna bağladığımız ip ile beşiği çekip bırakmış olacağız. Motoru tetikleyecek olan ise analog-0’daki ses sensörüdür. Bebeğin ağlaması sensörü tetikleyecek ve Arduino motoru harekete geçirip beşiği sallayacak. Şimdi koda bakalım.

Kodlama

int motor_pin = 9; // motorun bağlı olduğu PWM pin

int esik_degeri = 500; // bebek sesi için bizim seçtiğimiz eşik değeri

int deger; // okunan analog verinin aktarılacağı değişken

 

void setup() 

{                

  Serial.begin(9600); // Seri iletişim başlıyor.

  pinMode(motor_pin, OUTPUT); //motor pini çıkış olarak kullanılacak 

}

 

void loop() 

{  

  deger = analogRead(A0); //bebeğin sesi alınıp değişkene aktarılıyor    

  if(deger>=esik_degeri)// eğer ses eşiğe eşit ve büyükse

  { 

    for(int i=0;i<256;i++) // motor hızı artsın

    {

      analogWrite(motor_pin,i);// ve çalışmaya başlasın

      delay(10); //çakışma olmaması için gecikme sağlanıyor

    }

    delay(3000); // motor 3 saniye çalışıyor

    for(int i=255;i>=0;i--) // motor yavaşlıyor

    {

      analogWrite(motor_pin,i); // ve duruyor.

      delay(10); // çakışma olmaması için gecikme sağlanıyor

    }

    delay(3000); // motor 3 saniye duruyor.



  }  

  else

  {

    analogWrite(motor_pin,LOW); // bebeğin sesi az ise motor çalışmıyor.

  }

}