Sese Duyarlı Devre Yapım

Merhabalar. Arduino ile sese duyarlı bir devre yaptım. Ses arttığında servo motor 90 derece olsun ses belli bir eşiğin altına inince servo 0 derece olsun istiyorum. Şuanda yüksek sesteyken 90 derece oluyor ama bi kaç saniyede bir tekrar 0 derece olup geri 90 oluyor. yüksek sesken sürekli 90 da kalsın istiyorum. yardımcı olabilecek var mı?

Merhaba
Bi anlık düşük ses olduğu için böyle yapıyor büyük ihtimal. Servonun 90 dereceye ge komutunun altına delay koysanız büyük ihtimal işinizi görecektir. Kolay gelsin. :smiley:

2 saniye ses düştüğünde servoyu sıfıra getirme gibi bir ayar yapabirmiyiz?

millis()” fonksiyonunu kullanarak zamanlayıcı tutabilir ve 2 sn sonunda servo motoru istediğiniz konuma alabilirsiniz. :upside_down_face:

1 Beğeni

mikrofona gelen mili saniyelik düşmeler servonun 0 derece konumuna gelmesine sebep oluyor bunun olmasını istemiyorum ama çözümünü bulamadım hala

Bu da yine değerle alakalı. İstediğiniz değeri belirleyip, o değerin altında olduğu zaman servo motorun sıfır dereceye gelmesini sağlayabilirsiniz.

Devre kurarken direnç kullanmadım devre çalışıyor. direnç kullanmama gerek var mı peki? Board kullanmadan direkt bağlantı yaptım.

Tüm değerleri denedim sanırım olmuyor. Kodlarda bir problem olabilir mi?

Merhabalar,
Kodları bizimle paylaşırsanız daha iyi yardımcı olabiliriz. :smiley:

Tabiki paylaşırım.

#include <Servo.h> // servo library

Servo servo;

int micPin = A0;
int servoPin = 9;  


void setup() 
{
  
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(micPin, INPUT);
  servo.attach(servoPin);
  pinMode(servoPin, OUTPUT);
  servo.write(0);
  
  
  
  
}

void loop() 
{
  
 int val = analogRead(micPin); 
     
  Serial.println(val);
  
  if ( val > 120){
   servo.write(100); 
   //delay(1000);
  }
   else {
    if ( val < 50)
   servo.write(0);
   }
   //delay(100);
}

Merhabalar,
Ses sensörünün üstünde çok turlu potansiyometre, açık/ kapalı ledi, ses hasasiyet ledi var. Bu pot ile ses hassatiyetini gösteren ledi ayarlamanız gerekmekte. Potu saat yönünün tersine döndürün ve led yansın. Sonra hafif diğer tarafa döndürüp led sönsün. Ses geldiğinde led yanacak şekilde kalibrasyonunu yap. Yönler konusunda emin değilim her iki tarafa da dene. Bunu tüm ses sensörlerinde yap. Güçte yeterli ise her şey çalışacaktır. Kolay gelsin. :slightly_smiling_face:

Teşekkür ederim. Peki milisaniyelik ses düşmelerinin servoyu harekete geçirmesini nasıl engelleyebilirim bilginiz var mı?

Rica ederim. Ben delay ile yapıyorum. Belki daha iyi bir yöntemi vardır ancak ben delay koyarak beli bir sürede bir okumasını sağlıyorum.

Teşekkür ederim bu şekilde uygulayacağım. Kolay gelsin.

#include <Servo.h>
Servo servo;

const int SensorOutPin = A0; //Sensörün out bacağının bağlı olduğu pin tanımlanır. 
const int servoPin = 9; //13. pine bağlı servo tanımlanır. 
int deger; //Mikrofondan okunan değerin tutulacağı değişken tanımlanır. 
const int esik = 500; //servonun yanmasını istediğimiz eşik değeri tanımlanır. 
// Eşik değerinin hassasiyeti kart üzerindeki potansiyometre ile // değiştirilebilir. 
void setup() {
  pinMode(servoPin, OUTPUT); //dijital 13. pin çıkış olarak ayarlanır. 
  Servo.attach(servoPin);
  Servo.write(0);
  Serial.begin(9600); // Serial monitor baud rate değeri belirlenir. 
}
void loop() {
  deger = analogRead(SensorOutPin); //Arduino döngü içinde sürekli sensör değerini okur.
  Serial.println(deger); 
  if (deger > esik) {
    Servo.write(100); //Eğer okunan değer belirlenen eşik değerinden büyükse servo çalışır. 
    delay(5000); //Servonun beş saniye yanması sağlanır. 
     
  } else // eşik değeri farklı diğer tüm değerler için servo kapatılır. 
  {
    Servo.write(0);
  }

Bu kodlarla değiştirmek istiyorum ama

C:\Users\hesap\Desktop\servo\servo.ino: In function 'void setup()':
servo:11:8: error: expected unqualified-id before '.' token
   Servo.attach(servoPin);
        ^
servo:12:8: error: expected unqualified-id before '.' token
   Servo.write(0);
        ^
C:\Users\hesap\Desktop\servo\servo.ino: In function 'void loop()':
servo:19:10: error: expected unqualified-id before '.' token
     Servo.write(100); //Eğer okunan değer belirlenen eşik değerinden büyükse servo çalışır.
          ^
servo:24:10: error: expected unqualified-id before '.' token
     Servo.write(0);
          ^
exit status 1
expected unqualified-id before '.' token

Bu hatayı alıyorum. Nasıl düzeltebilirim yardımcı olur musunuz?

Merhabalar,

Servo nesnesi servo olarak tanımladığınız için Servo.write yerine servo.write olması gerekiyor orayı düzeltirseniz hata çözülecektir :smiley: