Lekce 15
Patnáctá lekce Arduino kurzu pro začátečníky: zapojíte zvukový senzor s mikrofonem a necháte ho rozsvítit LED, jakmile uslyší hluk. Ukážeme si zapojení, čtení analogového vstupu funkcí analogRead i kód do Arduino IDE – když do mikrofonu mluvíte nebo zakřičíte, LED se rozsvítí. Základ pro zvukem ovládané projekty.
Popisek obrázku: modul mikrofonu připojíte čtyřmi vodiči. Analogový výstup AO na pin A0, G na GND, napájení + na 3,3 V a digitální výstup DO na pin 8. Jako signalizace poslouží vestavěná LED u pinu 13.
| Zvukový senzor | Arduino |
|---|---|
| AO (analogový výstup) | A0 |
| G (zem) | GND |
| + (napájení) | 3,3V |
| DO (digitální výstup) | pin 8 |
Mikrofon na modulu převádí zvuk na elektrický signál. Modul má dva výstupy: analogový AO, který sleduje hlasitost v reálném čase, a digitální DO, který se přepne, jakmile zvuk překročí práh nastavený malým potenciometrem na modulu. V tomto pokusu čteme analogový výstup AO funkcí analogRead z pinu A0. Když naměřená hodnota překročí nastavenou mez, Arduino vyhodnotí, že je kolem hluk, a rozsvítí LED.
// Zvukový senzor
// Hladinu intenzity zvuku uvidíte na sériovém monitoru.
// Pokud dosáhne hlasitost určité hodnoty, LED na Arduinu se rozsvítí.
// Email: podpora@laskakit.cz · Web: laskakit.cz
const int ledPin = 13; // pin LEDky (vestavěná LED)
const int soundPin = A0; // pin zvukového senzoru
void setup() {
pinMode(ledPin, OUTPUT); // LED jako výstup
Serial.begin(9600); // spustit sériový monitor na 9600 Bd
}
void loop() {
int value = analogRead(soundPin); // přečíst hodnotu ze senzoru
Serial.println(value); // vypsat hodnotu do sériového monitoru
if (value > 25) { // pokud je hodnota větší než 25
digitalWrite(ledPin, HIGH); // zapnout LEDku
delay(2000); // nechat svítit 2 s
} else {
digitalWrite(ledPin, LOW); // jinak ji vypnout
}
}
if (value > 25). Citlivost můžete navíc upravit malým potenciometrem přímo na modulu.delay(2000)). Pokud chcete rychlejší reakci, hodnotu zmenšete.QKterý výstup modulu tento kód čte?