Jakiś czas temu we wpisie Arduino i mikrofon elektretowy pokazałem wykorzystanie modułu z mikrofonem elektretowym KAmodMIC_ELECTRET do budowy włącznika sterowanego dźwiękiem, czyli popularnego „klaskacza”.
Teraz przyszła pora na trochę bardziej ambitne zadanie – budowa wskaźnika wysterowania (bargrafu) pokazującego na linijce diod LED poziom sygnału akustycznego. W „prehistorycznych” czasach takie konstrukcje były budowane w oparciu o specjalizowane układy scalone, np. LM3914. Obecnie możemy sobie pozwolić na lekką rozrzutność i takie trywialne zadanie powierzyć mikrokontrolerowi. Taki układ ma również walory edukacyjne, bo przy okazji można pobawić się wejściami analogowymi mikrokontrolera AVR.
Do zbudowania układu wykorzystałem:
– płytkę zgodną z Arduino Uno o oznaczeniu KAmduino
– moduł z mikrofonem elektretowym
– płytkę prototypową PPS0400
– diody LED dołączone przez rezystory ograniczające prąd o wartości ok. 680 Ohm
Całość połączyłem przewodami M-M i M-F tak jak pokazano na poniższym schemacie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#define Mic 0 // analogowa linia A0 - tu dołączyłem mikrofon #define LED0 8 // do tych linii są dołączone diody LED #define LED1 9 #define LED2 10 #define LED3 11 int val; void setup() { pinMode(LED0, OUTPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); } void loop() { val = analogRead( Mic ); if (val > 350 ) digitalWrite( LED0, HIGH ); if (val > 370 ) digitalWrite( LED1, HIGH ); if (val > 390 ) digitalWrite( LED2, HIGH ); if (val > 410 ) digitalWrite( LED3, HIGH ); delay( 20 ); digitalWrite( LED0, LOW ); digitalWrite( LED1, LOW ); digitalWrite( LED2, LOW ); digitalWrite( LED3, LOW ); } |
Oczywiście pasek diod LED można bez problemu wydłużyć – efekt jest wtedy jeszcze lepszy!
Bargraf w akcji można zobaczyć na filmie: