Arduino mikrofon kontrolü sorunu!!!

Kodla Büyü

egeli_09

Aktif Üye
Mesajlar
223
Arkadaşlar mikrofonun + ucuna 5V G ucuna GND A0 ucuna A0 D0 ucuna 5 numaralı pini bağlıyorum ve program aşağıdaki gibi.Ledde bir sorun yok bağlantılar doğru.Gözden kaçan bişey mi var?Ayrıca mikrofonun potansıyometre ısıgı hiç sönmüyor.Nekadar oyananırsa oynansın potansıyometre ledi yanıyor.Acaba sorun mikrofonda mı?
int a;
int b;
int i;

void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);
pinMode(5,INPUT);
pinMode(6,OUTPUT);

}

void loop() {
i=0;
a= digitalRead(5);
b= analogRead(A0); if(a==1){ if(6==0) digitalWrite(6,HIGH); delay(1000); } }
 
Hocam ne yaptirmak istiyorsun ? Tam olarak anlayamadim ?
Ses gelince led mi yanacak ?
 
hocam sensör modulu olarak var. Benım anlamadıgım mıkrofonu hem analog hem dijital giriş olarak mı kullancaz?4 tane pin var. 1 tanesi VCC 1 tanesi GND 1 tane de giriş olsa 3 pin gerek nasıl bir porgramla nasıl yaparız bu işi?
 
Hocam oncelikle kullandigin sendordeki a0 analog program icindir d0 dijital program icindir. Eger amacin ses sensoru yapmaksa internette dijital ve analog programda mevcut
 
metex1234' Alıntı:
https://tkkrlab.nl/wiki/Arduino_KY-038_Microphone_sound_sensor_module
Hocam burda programlar var tabi bilmiyorum burayi gorup gormediginiz

hocam baktım buna benım sensörde led sönmüyor yani sürekli ses algılıyor.Acaba yandı mı 2'si birden oyle potansıyometreyı oynuyorum ama sonuc aynı sıktı baya beni :(
 
Hocam mikrofon uygulamasını şu şekilde yapmıştım ben. 5'e ledi bağla.
Birde önce ortamın sesini ölç if yapısındaki sayı değerini ona göre belirle.
**** yazdığı için S den sonra bir boşluk bıraktım onu birleştiriverirsin hocam.

void setup() {

pinMode(5,OUTPUT);
S erial.begin(9600);
}

void loop() {

int sensorDegeri = analogRead(A0);
S erial.println(sensorDegeri);
if(sensorDegeri > 630)
{
digitalWrite(5,HIGH);
}
else
{
digitalWrite(5,LOW);
}
}
 
Hige' Alıntı:
Hocam mikrofon uygulamasını şu şekilde yapmıştım ben. 5'e ledi bağla.
Birde önce ortamın sesini ölç if yapısındaki sayı değerini ona göre belirle.
**** yazdığı için S den sonra bir boşluk bıraktım onu birleştiriverirsin hocam.

void setup() {

pinMode(5,OUTPUT);
S erial.begin(9600);
}

void loop() {

int sensorDegeri = analogRead(A0);
S erial.println(sensorDegeri);
if(sensorDegeri > 630)
{
digitalWrite(5,HIGH);
}
else
{
digitalWrite(5,LOW);
}
}



hocam yaptım yıne olmuyorled ın ses algılayan ışığı hiç sönmüyor
 
1 sn yndıktan sonra sondurmenız gerekıyor gıbıme geldı 1 sn de uzun sure bence onu 100ms yaparsanız sadece ses geldıgınde yanar gıbı olur kanısındayım
 
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.
}
}
 
Hocam devrenin şemasını çizerek buraya göndersen ve altına kodları yazsan daha çabuk sonuca ulaşırsın. Sensörün üzerinde ki led daha önceden potu ayarladığında sönüyor muydu? devreye olan bağlantısı nasıl görmek lazım.
 
Geri
Üst