INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Witam wszystkich majsterkowiczów. Dziś pokarze wam jak zrobić dźwiękowy wyłącznik/włącznik na arduino. Zabawę z arduino zacząłem jakieś trzy miesiące temu. Gdy kupiłem pierwszą płytkę na myśl przyszedł mi taki pomysł aby zrobić ten projekt. Od razu wziąłem się do pracy. Właśnie tym oto sposobem powstał ten post. Będzie on krótki, ponieważ nie chciałem się rozpisywać.
Potrzebne materiały:
- płytka arduino http://botland.com.pl/arduino-moduly-glowne/1060-arduino-uno-r3.html
- przekaźnik http://botland.com.pl/przekazniki/2170-dwukanalowy-modul-przekaznikow-rm5-z-izolacja-optoelektroniczna-5v-10a125vac.html
- czujnik dźwięku http://botland.com.pl/mikrofony-i-detektory-dzwieku/4457-czujnik-dzwieku-analogowy-modul-waveshare.html
- płytka stykowa http://botland.com.pl/plytki-stykowe/55-plytka-stykowa-a-830-otworow.html
- dioda prostownicza 10A http://botland.com.pl/diody-prostownicze/2728-dioda-prostownicza-p1000-10a-1000v-10-szt.html
- żarówka wraz z oprawką
Wykonanie:
Cyfrowe wyprowadzenie z czujnika dźwięku należy podłączyć pod pin 2 w arduino. Przekaźnik jest podłączony poprzez diodę prostowniczą pod pin 8. Do przekaźnika należy podpiąć żarówkę lub domowe oświetlenie tak jak podłączamy ją pod przełącznik. Prościej mówiąc przełącznik należy zastąpić przekaźnikiem. Po podpięciu wszystkiego należy najpierw zasilić arduino, a dopiero później podpiąć oświetlenie do przekaźnika. Gdyby arduino nie reagowało na nasze klaśnięcie wtedy trzeba potencjometrem umieszczonym koło mikrofonu wyregulować czułość.
Oto zmontowany układ
Jeszcze schemat i sketch:
int mic=2;
int led=8;
boolean lastMic=LOW;
boolean nowMic=LOW;
boolean ledON=false;
void setup () {
pinMode (mic, INPUT);
pinMode (led, OUTPUT);
}
void loop () {
nowMic =digitalRead(mic);
if (lastMic==LOW && nowMic == HIGH)
{ledON = !ledON; }
digitalWrite (led, ledON);
}
INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Z tego co zauważyłem na płytce z przekaźnikami znajdują się transoptory, więc nie ma chyba potrzeby stosowania diody.
Lepiej dmuchać na zimne ;)
Fajny pomysł. A zamiast żarówki można podłączyć pasek led?
Jasne możesz podłączyć pasek led, tylko pamiętaj aby podpiąć zasilanie od led-ów.
Jak co to na tym się wzorowałem.
“if (lastMic==LOW && nowMic == HIGH)”
pierwszy warunek jest całkowicie bezsensowny, bo i tak nie wpływa na działanie układu
Tak, w takiej postaci jak jest program, to ten pierwszy warunek nie ma wpływu na działanie. Ale tak to powinno zostać, a dopisane powinno być na przykład na początku loop() lastMic = nowMic. Dzięki temu przy wykryciu dźwięku if wykona się tylko raz, a nie wielokrotnie.
Na zdjęciu mikrofon podłączony jest pod pin 4.
Piszesz, że lepiej dmuchać na zimne z diodą. W ten sposób podłączona dioda nie wnosi nic do układu. Przekaźnik zabezpiecza się diodą, ale szybką, a nie prostowniczą, i wpiętą równolegle do cewki (w module przekaźnikowym takie zabezpieczenie już jest
Ja jak widzicie na zdjęciach nie dałem diody, ponieważ jak mówicie ją mam, ale jak ktoś niema na przekaźniku to może ją sobie dodać.
Diodę dałem na schemat, ponieważ są przekaźniki które nie mają transoptory. A schemat jest mój. Zrobiłem we fritzingu.
Ma być podłączone pod pin 2. Pomyłka :)
Ale jednak masz błąd na schemacie, bo to nie tam ma być ta dioda. Wyżej też pisałem razem z Krapi, że program nie jest do końca prawidłowy. Przy pierwszym wykryciu dźwięku będzie dobrze, ale przy każdym następnym przy wykryciu dźwięku będzie kilka zmian stanu przekaźnika. Ostatni stan z tych kilku będzie losowy, a nie przeciwny do poprzedniego (poprzedniego ostatniego).
Robić coś takiego na Arduino to grzech. Poco się męczyć jak można to zrobić na CD4017. Nawet na Majsterkowo było: https://majsterkowo.pl/przelacznik-reagujacy-na-klasniecie-avt-7212-konkurs/
Chciałem zrobić coś na arduino.
Zostaw sobie na jedną noc ten Twój wynalazek i zobacz co się będzie działo. Z własnego doświadczenia powiem Ci, że byle potencjometr warunek w Arduino nie wystarczy, żeby dobrze to wysterować.
Mam podłączony w pokoju do lampki nocnej i wszystko działa.
Jak zmieni się ten kod gdy przycisk zastąpię szeregowym monitorem tak, aby ta sama komenda zapalała, a po ponownym wpisaniu gasiła diodę? Próbowałem to zrobić i nawet wyszło, ale dioda dawała mało światła po zapaleniu z monitora szeregowego, nie wiem czemu.
załączam swój kod do mojego problemu