Hocam yazdığınız kod ile mikrofon sensörünün hem analog çıkışını hem dijital çıkışını kullanmaya çalışıyorsunuz. Yaptığınız uygulamada ikisinden birini kullanmanız gerekir. Mikrofon sensörünün analog çıkışı, mikrofona gelen ses seviyesine göre analog veri üretir. Örneğin yüksek ses konuştuğunuzda 5V çıkış üretirken, orta ses ile konuştuğunuzda 2.5V kısık ses ile konuştuğunuzda ise 1V civarında analog gerilim üretir. Bu değerleri arduino kartınızın analog girişinden okuduğunuzda yüksek ses ile konuşulduğunda sensörün ürettiği 5V, analog girişten okunduğunda 1023 gibi bir sayısal değer elde ederiz. Benzer şekilde diğer ses seviyelerinde ise 512, 50 gibi değerler okursunuz.
Mikrofon sensörünüzün dijtal çıkışını kullandığınızda ise, sensör üzerinde ki potansiyometre ile hangi seviyede HIGH, hangi ses seviyesinde LOW değer üreteceğini belirlersiniz. Arduinonun dijital girişini okuyarak HIGH yada LOW durumuna göre istediğiniz arduino çıkışını kontrol edebilirsiniz.
Örnek kod sensörün digital çıkışı kullanıldığında:
int Led = 13 ;// Led'in bağlı olduğu pin
int sensorPin= 3; // Mikrofon sensörünün bağlı olduğu digital pin
int val = 0;// sensörden okunan değeri tutan değişken
void setup ()
{
pinMode (Led, OUTPUT) ;// Led'in bağlı olduğu pin çıkış olarak ayarlanıyor.
pinMode (sensorPin, INPUT) ;// sensorPin D3 pini giriş olarak ayarlanıyor.
}
void loop ()
{
val = digitalRead(sensorPin);// sensörün digital çıkış pininin bağlı olduğu, arduinonun digital giriş pini okunuyor.
if (val == HIGH) // Sensörden okundan değer HIGH ise
{
digitalWrite (Led, HIGH);// Ledi yakar
}
else
{
digitalWrite (Led, LOW);// okunan değer LOW ise ledi söndür.
}
}
Örnek kod sensörün analog çıkışı kullanıldığında:
int Led = 13 ;// Led'in bağlı olduğu pin
int sensorPin= A0; // Mikrofon sensörünün bağlı olduğu digital pin
int val = 0;// sensörden okunan değeri tutan değişken
void setup ()
{
pinMode (Led, OUTPUT) ;// Led'in bağlı olduğu pin çıkış olarak ayarlanıyor.
pinMode (sensorPin, INPUT) ;// sensorPin A0 pini giriş olarak ayarlanıyor.
}
void loop ()
{
val =analogRead(sensorPin);// sensörün analog çıkış pininin bağlı olduğu, arduinonun analog giriş pini okunuyor.
if (val >= 512) // Sensörden okundan değer 512'den büyükse
{
digitalWrite (Led, HIGH);// Ledi yakar
delay(1000) ;// yüksek ses ile konuştuğunuzda ledin 1 saniye boyunca yanmasını sağlıyoruz.
}
else
{
digitalWrite (Led, LOW);// okunan değer LOW ise ledi söndür.
}
}