
Chciałem przedstawić bardzo prosty akustyczny odstraszacz kun do samochodu zbudowany w oparciu o Arduino Pro Mini (ATMega 328P) oraz moduł przetwornicy step-down na układzie MP1584. Inspiracją do konstrukcji był używany dotychczas analogowy odstraszacz akustyczny zbudowany w oparciu o układ UL1111. Działał on bardzo skutecznie, niestety z wiekiem stawał się coraz mniej odporny na niskie temperatury. Przy ostatnich przymrozkach, w połączeniu ze słabym akumulatorem niestety przestał działać i "kosztowało" mnie to konieczność wymiany wygłuszenia maski. W sumie to dziwne, bo kuny zazwyczaj wchodzą pod maskę kiedy silnik jeszcze jest ciepły, a wtedy odstraszacz powinien był jeszcze działać - w kilka minut od wniesienia go do ciepłego pomieszczenia zaczął poprawnie działać.
Oryginalny układ pobierał ok 18mA, prezentowany tutaj - zaledwie 2mA. Obudowa (KM-36) jak i przetwornik akustyczny ("zegarkowy" głośnik piezoelektryczny z nakładką rezonansową) pozostały z oryginalnego odstraszacza produkcji PPUH PAI z Bielska-Białej. Odstraszacz generuje dźwięki w paśmie akustycznym, tak jak oryginał, z przemiataniem częstotliwości w zakresie 7kHz - 11kHz. Czas przemiatania to 0,5s, po czym następuje 0,5s ciszy. Jak widać na zdjęciu wkładka piezoelektryczna z membraną rezonansową jest przyklejona na środku kratki głośnika obudowy, a cały otwór wraz z głośnikiem jest oddzielony od wnętrza obudowy kawałkiem "folii" PET (np. z okładki teczki), tak aby zapobiec dostaniu się wody do środka obudowy. Układ jest przymocowany w górnej części obudowy, tak by w razie gdyby jednak do środka dostała się woda, układ w niej nie "stał".
Płytka Arduino jest połączona z płytką przetwornicy przy pomocy 2 goldpinów, łączących - przetwornicy z pinem GND złącza programatora i + przetwornicy z pinem 5V Arduino.
Z płytki Arduino usunąłem rezystory 1k (102) zasilające diody POWER i USER, oraz stabilizator napięcia (nie można więc korzystać z pinu RAW). Używane przeze mnie klony Pro Mini nie mogą być zasilane napięciem wyższym niż 11V, nie było więc możliwe zasilenie układu bezpośrednio z instalacji elektrycznej samochodu (przy uruchomionym silniku panuje w niej napięcie 14,4V, a w stanie spoczynku ok 12,6V). Sumaryczny pobór prądu z akumulatora na postoju nie powinien przekraczać 80mA, dlatego w tego typu układzie warto powalczyć o każdy mA. Z tego powodu zdecydowałem się na użycie wysokosprawnej przetwornicy step-down typu GW1584 na układzie MP1584, kluczującej z częstotliwością ok 0,9MHz. Przerobiona płytka Pro Mini (zwracam uwagę, na odwrotną kolejność pinów złącza programowania w tym konkretnym klonie - dwie masy są po prawej stronie) oraz moduł przetwornicy:

Wykaz rzeczy:
Arduino Pro Mini 5V/8MHz - 11zł
Przetwornica GW1584 - 6zł
Przetwornik dźwiękowy KPR-2310 - 1zł
2 goldpiny - ?
Obudowa KM-36 - 6zł
Bezpiecznik z oprawką - 5zł
W moim samochodzie układ jest zasilany przez dodatkowy sterownik zasilania, posiadający dwa wyjścia - na jednym występuje napięcie gdy alternator nie ładuje (styk N.C. przekaźnika, więc sam układ praktycznie nie pobiera prądu w tym stanie), a na drugim gdy ładuje (styk N.O., ale pobór kilkudziesięciu mA gdy silnik pracuje nie jest problemem). Sterownik jest podłączony wprost do akumulatora, przez bezpiecznik 5A.
Układ jest wystarczająco głośny, bez żadnego wzmacniacza, ale możliwe jest sterownie głośnika przez dodatkowy tranzystor i zasilanie go wprost z 12V. Celem poprawy głośności można też dołączyć do niego równolegle cewkę o indukcyjności kilkunastu-kilkudziesięciu mH.
Generowanie dźwięku odbywa się sprzętowo, pin 6 (PD6) jest sterowany wprost z układu timera 0 - stan tego pinu jest zmieniany na przeciwny w momencie zrównania się licznika z rejestrem porównawczym, odpowiada za to ustawienie flagi COM0A0 w rejestrze TCCR0A. Równolegle generowane jest przerwanie TIMER0_COMPA, za co odpowiada flaga OCIE0A w rejestrze TIMSK0. Wewnątrz procedury obsługi tego przerwania zmniejszana jest zawartość rejestru porównawczego, tym samym zwiększana jest częstotliwość generowanego dźwięku i skracany czas trwania kolejnego tonu, dodatkowo co 2gi cykl zerowana jest flaga COM0A0, co powoduje zaprzestanie generowania dźwięku w danym cyklu. W pętli głównej programu mikrokontroler jest przełączany do stanu oszczędzania energii. Jest to najniższy ze stanów oszczędzania energii - SLEEP_MODE_IDLE, gwarantujący działanie TIMER0 oraz obsługę jego przerwań.
W przypadku wersji 8MHz należy zmienić wartość bazową OCR0A ze 140 na 70, oraz linie:
++cnt %= 180; --> ++cnt %= 90;
++tdev %= 53; --> ++tdev %= 27;
Wersje 8MHz Pro Mini pracują z napięciem 3,3V, które przy braku drivera głośnika piezoelektrycznego może okazać się zbyt niskie do jego prawidłowego wysterowania, lepiej więc użyć 16MHz wersji na 5V (oczywiście można ją przestawić na 8MHz poprzez wymianę rezonatora kwarcowego lub przełączenie się na wewnętrzny oscylator RC - da to dalszą redukcję zapotrzebowania na prąd).
Kod źródłowy:
Code: c
W moim samochodzie odstraszacz jest zamocowany do ściany grodziowej podszybia w okolicy akumulatora. Teoretycznie nie jest to optymalne miejsce ze względu na umiejscowienie źródła dźwięku, ale pisk słychać w odległości ponad metra od samochodu jak i we wnętrzu kabiny, niemniej w tym miejscu jest najmniej narażony na wodę i pył drogowy. Widoczne na zdjęciu uszkodzenie wygłuszenia ściany grodziowej powstało przed założeniem odstraszacza.

***
Sprawdziłem inny typ przetwornika i spisuje się on nawet lepiej. Opisany był jako KPR-2310 przetwornik dźwiękowy piezo 12V 80dB 3mA 23x,6mm PBF.
Cool? Ranking DIY