Zvukový senzor MAX9814
Napsal: 25 úno 2023, 19:25
Dobrý večer přeji,
chtěl bych poprosit o radu s modulem mikrofonu se zesilovačem MAX9814 (https://www.laskakit.cz/max9814-cma-454 ... m-max9814/). Jsem úplný arduino nováček a snažím se popasovat s následující myšlenkou. Potřebuji použít zmíněný zvukový modul, který má pro mé účely, jak jsem zjistil, dostatečnou citlivost, ke snímání hlasitosti různých zvuků. Jakmile hlasitost překročí stanovenou mez, potřebuji sepnout piezo bzučák, který bude indikovat překročení hlasitosti pípáním. Snažil jsem se to nějakým způsobem zprovoznit tak, že dle intenzity signálu analogového vstupu mi to zapíná tři různě barevné LEDky, přičemž při překročení meze se rozsvítí červená LED a zapne bzučák. V praxi to vypadá takto: https://youtu.be/6JQn1JbIzPc
A kód vypadá následovně:
Co mi ale není jasné je to, jakou a zda nastavit pauzu po provedení všech příkazů (momentálně tam mám delay 1 ms) a zda to mám takto vlastně celé správně. Můj záměr je totiž takový, že by to mělo reagovat pouze na konkrétní zvuky typu dupání/běhání a spínat bzučák. Ideálně bych potřeboval jiné zvuky odfiltrovat, tzn. aby to jindy nespínalo. Známý mi radil, že budu muset jít přes komparátor, protože je nutné ten audiosignál nějak zpracovat, ale z toho nejsem vůbec chytrý... Další věc je ta, že někdy to sepne, ale někdy ne. Přijde mi, že tam jsou nějaké mikroprodlevy, když jsou dva zvuky rychle za sebou. Poradíte prosím, jakou cestou se vydat? Moc děkuji!
chtěl bych poprosit o radu s modulem mikrofonu se zesilovačem MAX9814 (https://www.laskakit.cz/max9814-cma-454 ... m-max9814/). Jsem úplný arduino nováček a snažím se popasovat s následující myšlenkou. Potřebuji použít zmíněný zvukový modul, který má pro mé účely, jak jsem zjistil, dostatečnou citlivost, ke snímání hlasitosti různých zvuků. Jakmile hlasitost překročí stanovenou mez, potřebuji sepnout piezo bzučák, který bude indikovat překročení hlasitosti pípáním. Snažil jsem se to nějakým způsobem zprovoznit tak, že dle intenzity signálu analogového vstupu mi to zapíná tři různě barevné LEDky, přičemž při překročení meze se rozsvítí červená LED a zapne bzučák. V praxi to vypadá takto: https://youtu.be/6JQn1JbIzPc
A kód vypadá následovně:
Kód: Vybrat vše
int zvuk = A0;
int LED_G = 2;
int LED_Y = 4;
int LED_R = 6;
int bzucak = 12;
int hlasitost;
void setup() {
// put your setup code here, to run once:
pinMode (zvuk, INPUT) ;
pinMode (LED_G, OUTPUT) ;
pinMode (LED_Y, OUTPUT) ;
pinMode (LED_R, OUTPUT) ;
pinMode (bzucak, OUTPUT) ;
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
hlasitost = analogRead(zvuk);
Serial.println(hlasitost);
if (hlasitost > 380){
digitalWrite (LED_G, HIGH);
digitalWrite (LED_Y, HIGH);
digitalWrite (LED_R, HIGH);
digitalWrite (bzucak, HIGH);
delay (200);
}
else if (hlasitost > 340){
digitalWrite (LED_G, HIGH);
digitalWrite (LED_Y, HIGH);
}
else if (hlasitost > 290){
digitalWrite (LED_G, HIGH);
}
else {
digitalWrite (LED_G, LOW);
digitalWrite (LED_Y, LOW);
digitalWrite (LED_R, LOW);
digitalWrite (bzucak, LOW);
}
delay(1);
}