Lekce 10
Zvukový senzor

Úvod

V závěru lekce věnované fotorezistoru jsme se zmínili, že by bylo možné načítat hladinu zvuku, tak si to nyní vyzkoušíme. Pro tuto lekci ale nepoužijeme obyčejný mikrofon, ale použijeme celý zvukový senzor. Zvukový senzor můžeme využít jak v režimu načítání analogového signálu, tak i případě načítání digitálního vstupu.

Náš zvukový senzor má základní dva výstupy:

  1. AO: Analogový výstup, který se používá pro výstup napěťových signálů z mikrofonu v reálném čase. Bylo by možné jej kupříkladu používat pro digitalizaci zvuku.
  2. DO: Digitální výstup, jehož stav je určen podle určité prahové hodnoty, tu můžeme nastavit pomocí potenciometru. Bude-li zesílená úroveň signálu z mikrofonu vyšší než zvolená hladina, bude výstup DO na vysoké úrovni HIGH, jinak bude na nízké úrovni LOW. To by se dalo kupříkladu využít jako detektor hlasitého hluku – např. tříštění skla apod.
Senzor zvuku

Použité komponenty

  • modul Arduino
  • USB kabel
  • zvukový senzor
  • vodiče „samec-samice“

Princip

Modul mikrofonu umí vstupní audiosignál převést na analogový elektrický signál. Tento signál je současně srovnáván s nastavenou detekční hodnotou. Při překročení detekční hodnoty, komparátor nastaví digitální výstup do vysoké úrovně HIGH. Tento princip můžeme vidět na následujícím obrázku, na kterém je elektrické schéma zvukového modul

schema zvukoveho cidla

Signál ze vstupního mikrofonu je nejen rovnou vyveden na výstup „Analog Out“ (AO), ale zároveň vstupuje i na obvod LM393, který slouží jako komparátor napětí. Pokud je ticho, odpor mikrofonu je velmi vysoký a napětí na vstupu 2. je blízko k napájecímu napětí (Ucc), na výstupním pinu „Digital Out“ (DO) je nízká úroveň LOW a LED (L2) nesvítí. Nastane-li nějaký hluk, odpor mikrofonu klesne, tím klesne napětí na vstupu 2 a ve chvíli, kdy bude napětí na vstupu 2 nižší než na vstupu 3, výstupní digitální pin DO se změní na vysokou úroveň HIGH a LED (L2) se rozsvítí.

Pomocí potenciometru lze posouvat napěťovou úroveň na vstupu 2 a tedy i úroveň zvukového signálu, kdy dojde k „překlopení“ digitálního výstupu.

V této lekci budeme používat jen analogový výstup tohoto obvodu. Na druhou stranu asi nebylo špatné si vysvětlit jeho funkci podrobněji, protože možnosti modulu Arduino nekončí jen u lekcí této experimentální sady. Fantazii vývojářů se meze nekladou!


Postup experimentu

Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. Spojení mezi zvukovým senzorem a modulem Arduino zachycuje následující tabulka.

Blokové schéma

Blokove schema

Elektronické schéma

Elektronicke schema
zvukový senzor Modul Arduino
AO A0
G GND
+ 5V

Krok 2: V prostředí mBlock sestavíme následující program.


ikona vysvetleni Vysvětlení kódu

Přestože je zvukový senzor již senzor s poměrně složitým vnitřním zapojením, z hlediska programového kódu k němu přistupujeme úplně stejně jako k předešlým senzorům. Opět v nekonečné smyčce „opakuj stále“ načítáme analogový vstup A0 a získanou hodnotu testujeme v podmínce, která pak následuje. V této podmínce je porovnána získaná hodnota (uložená v proměnné value) s mezní hodnotou, při které má modul Arduino vyhodnotit hladinu zvuku jako vysokou a sepnout digitální výstup 13. Pokud je tedy hodnota proměnné value nižší než zvolených 25 je výstupní digitální pin 13 na nízké úrovni (LOW) a vnitřní LED modulu Arduino je zhasnutá. Při překročení hodnoty 25 se výstup 13 nastaví do vysoké úrovně (HIGH), tím se vestavěná LED modulu Arduino rozsvítí.


Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem tlacitko nahrat.

Krok 4: Pokud budeme mluvit hlasitě nebo dokonce řvát do mikrofonu, LED vestavěná na modulu Arduino (připojená k pinu 13) se rozsvítí.

Pohled na experiment