Arduino ses sensörü sesi algılamıyor

MekBuk Pıro

Centipat
Katılım
23 Temmuz 2019
Mesajlar
98
Çözümler
1
Arkadaşlar merhaba. Bir projem var. Arduino'ya LCD ekran ve ses sensörü takarak ortamın sesini ölçmek istiyorum. Elimde 16x2 LCD ekran ve adı belli olmayan, kırmızı bir ses sensörü var (aşağıdaki fotoğraftan bakabilirsiniz). İnternette bunu yapan birinden kodları aldım. Yapan kişi ses sensörünü analog girişine takmış. İlk ondan çalışmıyor diye düşündüm, digitale bağladım ancak değişen bir şey yok. Nedense ne yaparsam yapayım hiç ses algılamıyor. Acaba bunun bir ayarı var mıdır? Üzerindeki mavi kutucuğun üstünde küçük bir vida var. Acaba o ses hassasiyeti midir? Öyleyse nasıl ayarlanır? Şimdiden teşekkürler.
 
Son düzenleyen: Moderatör:
Öncelikle sensörün mikrofon olduğundan emin olun. İkinci olarak Arduino'ya bağladığınız giriş ile kodda yazan giriş aynı olmayabilir yani yanlış takıyor olabilirsiniz. Üçüncüsü sensörün arkasında dediğiniz gibi mavi kutucukta bir potansiyometre vardır. Oradaki vidadan potansiyelini ayarlayabilirsiniz. (Bu arada fotoğrafı paylaşırsanız daha iyi olacaktır.)
 
arduino ses sensörü ile ilgili görsel sonucu

Kusura bakmayın. Sensör bu. LCD ekranın bağlantısında hiçbir sorun yok. Bunun dışında sensör A0 girişine bağlı ve bu vidayı her sıkışımda bana gelen değer değişiyor. Ancak bu değer maalesef hep sabit kalıyor. Örneğin en son vidayı sıktığımdan sonra aldığım değer 190. Ne kadar gürültü de yapsam değerde bir değişiklik yok. Kodlar aşağıda;
Kod:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,10,11,12,13);

int num_Measure = 128 ; // Set the number of measurements   
int pinSignal = A0; // pin connected to pin O module sound sensor 
int redLed = 5;
long Sound_signal;    // Store the value read Sound Sensor   
long sum = 0 ; // Store the total value of n measurements   
long level = 0 ; // Store the average value   
int soundlow = 40;
int soundmedium = 500;
 
void setup () 
{   
  pinMode (pinSignal, INPUT); // Set the signal pin as input   
  Serial.begin (9600);
  lcd.begin(16,2);
} 
  
void loop () 
{ 
  // Performs 128 signal readings   
  for ( int i = 0 ; i <num_Measure; i ++) 
  { 
   Sound_signal = analogRead (pinSignal); 
    sum =sum + Sound_signal; 
  } 
 
  level = sum / num_Measure; // Calculate the average value   
  Serial.print("Sound Level: ");
  lcd.print("dB= ");
  Serial.println (level-33); 
  lcd.print(level-33);
  if(level-33<soundlow)
  {
    lcd.setCursor(0,2);
    lcd.print("Yukseklik=Dusuk");
     digitalWrite(redLed,LOW);
  }
  if(level-33>soundlow && level-33<soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Yukseklik=Orta");
     digitalWrite(redLed,LOW);
  }
  if(level-33>soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Yukseklik=Yuksek");   
    digitalWrite(redLed,HIGH);
  }
  sum = 0 ; // Reset the sum of the measurement values 
  delay(200);
  lcd.clear();
}
 
Bu linkten yararlandım bu arada yaparken. Serial monitörde de, LCD ekranda da aynı sonuç gösteriyor. 190 ile 200 arası değişiyor ancak bunlar ani değişimler değil, yani TV'nin sesi açtığımda veya kapadığımda değişmiyorlar. Bunun dışında istediğimi yapan birini daha buldum. Linki burada;
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı