- Wymagany materiał
- Schemat obwodu
- Mikrokontroler PIC:
- Kod i wyjaśnienie
- Współpraca czujnika PIR z mikrokontrolerem PIC:
PIR (pasywna podczerwień) lub czujnik ruchu służy do wykrywania ruchu poruszającego się ciała lub przedmiotów. Ilekroć ktoś znajdzie się w zasięgu czujnika PIR, na swoim pinie wyjściowym podaje High. Wcześniej połączyliśmy PIR z innymi mikrokontrolerami:
- Arduino Motion Detector wykorzystujący czujnik PIR
- Domowy system bezpieczeństwa Raspberry Pi oparty na IOT z alertem e-mail
- Automatyczne oświetlenie schodów z mikrokontrolerem AVR
Dzisiaj po prostu połączymy PIR z mikrokontrolerem PIC PIC16F877A. W tym obwodzie, jeśli jakieś poruszające się obiekty znajdą się w zasięgu czujnika PIR, brzęczyk zacznie wydawać dźwięk.
Wymagany materiał
- PicKit 3
- Czujnik PIR.
- PIC16F877A IC
- 40 - uchwyt na pin IC
- Płyta Perf
- Crystal OSC 20 MHz
- Żeńskie i męskie szpilki Bergstick
- Kondensator 33pf - 2Nos, 100 uf i 10 uf cap.
- Rezystor 680 omów, 10 K i 560 omów
- LED dowolnego koloru
- 1 zestaw do lutowania
- IC 7805
- Adapter 12V
- Brzęczyk
- Przewody łączące
- Płytka prototypowa
Czujnik PIR:
Czujnik PIR to niedrogi, energooszczędny i łatwy w użyciu czujnik ruchu Sesnor. Czujnik PIR odbiera tylko promienie podczerwone, a nie emituje, dlatego nazywa się go pasywnym. PIR wyczuwa każdą zmianę ciepła, a jeśli jest zmiana, daje WYSOKI na MOCY. Czujnik PIR nazywany również piroelektrycznym lub IR.
Każdy obiekt po podgrzaniu emituje pewną ilość podczerwieni, podobnie jak ciało ludzkie emituje podczerwień z powodu ciepła ciała. Podczerwień wytwarzana przez każdy obiekt z powodu tarcia między powietrzem a przedmiotem. Głównym elementem czujnika PIR jest czujnik piroelektryczny. Oprócz tego BISS0001 („Micro Power PIR Motion Detector IC”), niektóre rezystory, kondensatory i inne komponenty użyte do budowy czujnika PIR. Układ scalony BISS0001 pobiera dane wejściowe z czujnika i przetwarza, aby pin wyjściowy był odpowiednio WYSOKI lub NISKI.
Dowiedz się więcej o czujniku PIR tutaj. Możesz także ustawić czułość na odległość i czas, przez który pin wyjściowy będzie wysoki po wykryciu ruchu. Posiada dwa potencjometry do regulacji tych dwóch parametrów.
Schemat obwodu
Mikrokontroler PIC:
Aby zaprogramować mikrokontroler PIC do współpracy z PIR, będziemy potrzebować IDE (Integrated Development Environment), w którym odbywa się programowanie. Kompilator, gdzie nasz program zostanie przekształcony MCU postaci czytelnej zwanych plików HEX. IPE (Zintegrowane środowisko programistyczne), który jest używany do zrzutu nasz plik hex do naszego mikrokontrolerów PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Kompilator: XC8
Firma Microchip udostępniła wszystkie te trzy programy za darmo. Można je pobrać bezpośrednio z ich oficjalnej strony. Podałem również link dla Twojej wygody. Po pobraniu zainstaluj je na swoim komputerze. Jeśli masz z tym jakiś problem, możesz obejrzeć wideo podane na końcu.
Zrzucić lub przesłać na nasz kod PIC, musimy PICkit 3. PICKIT 3 programator / debugger jest prostym, tanim debugger w obwodzie, który jest sterowany za pomocą komputera z systemem MPLAB IDE v8.20 (lub wyższej) oprogramowania na platforma Windows. PICkit 3 programator / debugger jest integralną częścią pakietu narzędzi inżyniera deweloperskich. Oprócz tego będziemy również potrzebować innego sprzętu, takiego jak płyta perf, stacja lutownicza, układy scalone PIC, oscylatory kryształowe, kondensatory itp. Ale będziemy je dodawać do naszej listy w miarę postępów w naszych samouczkach.
Będziemy programować nasz PIC16F877A przy użyciu opcji ICSP, która jest dostępna w naszym MCU.
Aby wypalić kod, wykonaj poniższe czynności:
- Uruchom MPLAB IPE.
- Podłącz jeden koniec PicKit 3 do komputera, a drugi koniec do pinów ICSP na płycie perf.
- Połącz się ze swoim urządzeniem PIC, klikając przycisk Połącz.
- Wyszukaj plik Blink HEX i kliknij Program.
Jeśli jesteś nowy w mikrokontrolerze PIC, najpierw zapoznaj się z poniższymi samouczkami, aby dowiedzieć się, jak używać i programować PIC:
- Pierwsze kroki z mikrokontrolerem PIC: Wprowadzenie do PIC i MPLABX
- Pisanie pierwszego programu z mikrokontrolerem PIC i konfigurowanie bitów konfiguracyjnych
- Miga dioda LED z mikrokontrolerem PIC
Kod i wyjaśnienie
Najpierw musimy ustawić bity konfiguracyjne w mikrokontrolerze pic, a następnie zacząć od void main function.
W poniższym kodzie „XC.h” jest plikiem nagłówkowym zawierającym wszystkie przyjazne nazwy pinów i urządzeń peryferyjnych. W poniższym kodzie zdefiniowaliśmy również częstotliwość oscylatora kwarcowego, połączenie pinów PIR i Buzzera.
#zawierać
W void main (), ' TRISB = 0X00' jest używane do poinstruowania MCU, że piny PORTB są używane jako OUTPUT, 'TRISC = 0Xff' jest używane do poinstruowania MCU, że piny PORTB są używane jako INPUT. A „PORTB = 0X00” jest używane do poinstruowania MCU, aby wszystkie wyjścia OUTPUT RB3 były niskie.
TRISB = 0X00; TRISC = 0Xff; PORTB = 0X00; // Spraw, aby wszystkie dane wyjściowe RB3 były LOW
Zgodnie z poniższym kodem, za każdym razem, gdy PIR osiągnie WYSOKI, brzęczyk stanie się WYSOKI lub pozostanie WYŁĄCZONY.
while (1) // Wejdź do pętli Infinie While {if (PIR == 1) {Buzzer = 1; __delay_ms (1000); // Czekaj} else {Buzzer = 0; }}}
Kompletny kod wraz z filmem demonstracyjnym jest podany na końcu tego projektu.
Współpraca czujnika PIR z mikrokontrolerem PIC:
Ten projekt nie ma skomplikowanej konfiguracji sprzętowej, ponownie używamy tej samej płytki mikrokontrolera PIC (jak pokazano poniżej), którą stworzyliśmy w samouczku migania diod LED. Wystarczy podłączyć moduł czujnika PIR do płytki mikrokontrolera PIC zgodnie ze schematem połączeń. Po zakończeniu połączeń po prostu zrzuć kod za pomocą programatora PicKit 3, jak wyjaśniono w poprzednim samouczku i ciesz się wynikami.
Po wgraniu programu czujnik PIR jest gotowy do podania WYJŚCIA. Ilekroć w zasięgu PIR znajdzie się człowiek lub obiekt emitujący podczerwień, na WYJŚCIU WYJŚCIOWO daje WYSOKI poziom. I na podstawie tego wyjścia będzie działał brzęczyk. Jeśli wyjście PIR jest wysokie, wejście brzęczyka staje się wysokie i na odwrót.
Możesz kontrolować odległość wykrywania i opóźnienie czasowe za pomocą dwóch potencjometrów zamocowanych na module PIR. Aby dowiedzieć się więcej o czujniku PIR, kliknij link.