Sygnalizator akustyczny
Rys. Sygnalizator akustyczny.
Cele
Projekt miał na celu budowę konfigurowalnego sygnalizatora akustycznego. Układ działa w oparciu o mikrokontroler PIC16F87. Jako sygnalizator akustyczny został użyty głośnik piezoelektryczny. Wyprowadzenie ICSP ułatwia szybkie przeprogramowanie układu; zmianę zestawu generowanych sygnałów akustycznych, reakcję układu na stan dwóch linii sterujących oraz sygnalizację za pośrednictwem LED.
Wybrane zastosowania układu.
- sygnalizator w układach alarmowych,
- prosta centrala alarmowa wraz z sygnalizatorem,
- odstraszacz psów, ptaków.
Szerszy opis wybranych zastosowań.
1. Układ docelowo będzie pełnił funkcję sygnalizatora akustycznego umieszczonego na zewnątrz budynku i współpracującego z centralką alarmową. Po podaniu zasilania przez centralę do sygnalizatora (w przypadku naruszenia strefy chronionej) sygnalizator uruchomi kilkuminutowy sygnał o zmiennej częstotliwości. Po kilku minutach przez następne kilkanaście minut sygnał będzie pulsacyjny, by po jego wyłączeniu zasygnalizować naruszenie strefy za pomocą lampki LED – do czasu rozbrojenia alarmu.
2. Przewiduje się, że czasowo układ przejmie funkcję centrali alarmowej (zanim system alarmowy zostanie w pełni uruchomiony w obiekcie). Układ będzie dozorował dwie linie z czujnikami PIR sygnalizując naruszenie stref. Jedna ze stref znajduje się wewnątrz budynku, jej naruszenie spowoduje uruchomienie sygnału o zmiennej częstotliwości przez kilkanaście minut i zasygnalizowanie tego faktu poprzez zapalenie LED po wyłączeniu syreny. Druga strefa chroniona znajduje się na zewnątrz budynku. Jej naruszenie (np. przez zwierzęta) będzie skutkować uruchomieniem kilkusekundowych impulsów sygnału dźwiękowego o częstotliwości 22kHz.
3. Istnieje możliwość wykorzystania układu w celu odstraszania zwierząt. Układ będąc podłączonym do centrali alarmowej i pełniąc funkcję syreny alarmowej, może również generować w losowych odstępach czasu dźwięki niesłyszalne dla człowieka a odstraszające zwierzęta np. na częstotliwości 22kHz. Istnieje możliwość podłączenia dodatkowej linii dozorującej wtargnięcie zwierząt na obszar chroniony (czujnik PIR, mikrofalowy, bariera optyczna) co będzie skutkowało uruchomieniem sygnału odstraszającego.
Obsługa urządzenia
Po wgraniu oprogramowania sygnalizator jest gotowy do pracy. Podając stan wysoki (np. z detektora ruchu) na wejście „pre alarmu” zostaje uruchomiony krótki sygnał odstraszający o stałej częstotliwości. Podanie stanu wysokiego na wejście „panic” uruchamia alarm o modulowanej częstotliwości. Fakt wywołania alarmu jest sygnalizowany przez dłuższe zapalenie LED. Stan gotowości sygnalizowany jest krótkimi błyskami LED.
Projekt PCB
Rys. Wizualizacja PCB.
Zaprojektowana PCB urządzenia ma rozmiary 40mm na 63mm i wykonana jest w technologii THT (montaż przewlekany).
Płytka została udostępniona w fabryce PCBWay, gdzie można zamówić jej wykonanie pod tym linkiem.
Rys. Projekt PCB.
Podzespoły urządzenia
Rys. Rozmieszczenie podzespołów na płycie PCB.
Tab. Wartości podzespołów.
Oznaczenie | Opis |
C1, C2 | 220uF |
R1,R3,R5 | 1k |
R2 | 1M |
R4 | 540 |
Q1 | BD137 |
Q2 | BC547 |
Q3 | 2N3904 |
U1 | PIC16F87 |
U2 | LM7805 |
Transformator | brak danych |
Głośnik | brak danych |
Program dla mikrokontrolera
Program dla mikrokontrolera został napisany w CCS C i jest dostępny do pobrania z repozytorium.
Plik programu „main.c” rozpoczyna się od definicji częstotliwości pracy zegara i fuse bitów.
Następnie zdefiniowane zostały piny sprawdzające stan wywołania typu alarmu i definicji pinu z LED.
#use delay(internal=4MHz)
#define SND PIN_B3
#define LED PIN_B0
#define PRE PIN_B1
#define PANIC PIN_B2
Podanie stanu wysokiego na pin B1 mikrokontrolera odpowiada za wywołanie „pre-alarmu”, natomiast B2 uruchamia alarm typu „panic”.
Funkcja „play” odtwarza dźwięk o danej częstotliwości:
void play(int16 d){
output_high(SND);
delay_us(d);
output_low(SND);
delay_us(d);
}
Za wywołanie mignięcia LED odpowiada funkcja:
void blink(int16 x){
delay_ms(800);
output_high(LED);
delay_ms(x);
output_low(LED);
}
W kodzie zostały zdefiniowane przykładowe funkcje odpowiedzialne za ton alarmu; dziou(), uoidz(), sarna(). Przykładowo funkcja generująca sygnał o narastającej częstotliwości:
void dziou(){
for(int16 x=100; x<1000; x++){
play(x);
}
}
Powyższe funkcje wywoływane są przez program:
void main()
{
output_low(SND);
//zerowanie wykrytych alarmów
char was_alarm = 0;
while(true){
//jesli był wywolany alarm
if (was_alarm==1){
blink(400);
}
//stan czuwania, alarmu nie było
else{
blink(10);
}
//wywołanie pre alarmu
if(input(PRE)==true){
was_alarm=1;
sarna();
}
//wywolanie alarmu
if(input(PANIC)==true){
blink(900);
was_alarm=1;
for (int x=0; x<4; x++){
//sekwencja dziou uoidz trwa 2,5 sekundy
dziou();
uoidz();
}
}
}
}
Odnośniki
Pliki projektu:
- Repozytorium z plikami projektu
- Projekt PCB w formacie PDF.
- Rozmieszczenie elementów na płycie PCB w formacie PDF.
- Źródło programu
Noty katalogowe:
- PIC16F87 – mikrokontroler
- LM7805 – stabilizator napięcia
- BD137 – tranzystor
- BC547 – tranzystor
- 2N3904 – tranzystor
Linki: