Vajalikud teadmised:
[HW] Kasutajaliidese moodul, [HW] Kombomoodul,
[AVR] Digitaalsed sisendid-väljundid,
[LIB] Sisend-väljundviigud
Passiivne infrapunaandur (inglise keeles passive infrared sensor, lühend PIR) mõõdab vaateväljas olevate objektidelt eralduvat infrapunakiirgust. Kõik kehad, mille temperatuur on kõrgem absoluutsest nullist eraldavad soojust, mis avaldub tavaliselt infrapunakiirgusena. Infrapunakiirgust inimese silm küll ei näe, kuid selleks spetsiaalselt ehitatud anduritega on võimalik infrapunakiirgust mõõta. Anduri muudab passiivseks see, et andur ise ei eralda mõõtmiseks kiirgust vaid tegeleb ainult mõõtmisega.
Enamlevinud kasutus on PIR anduri baasil töötavad elusolendi liikumise tuvastusandurid, mida nimetatakse ka liikumisdetektoriteks (inglise keeles passive infrared detector, lühend PID).
PID koosneb tavaliselt kolmest komponendist:
PIR andur on piisavalt tundlik, et tuvastada mitte ainult soojuskiirguse muutust vaid registreerib ka sellele, kui soojusallikas vaateväljas liigub.
PID andurite ehk detektorite väljundsignaal on üldjuhul lihtne digitaalsignaal, kus tüüpiliselt väljastab andur soojusallika tuvastamisel kõrge impulsi. Selle impulsi alusel on võimalik läbi relee lülitada ruumi valgust või on anduri väljund ühendatud kontrolleriga, mis vastavalt olukorrale lülitab lampe või tekitab alarmi (kui andurit kasutatakse nt vargavastase alarmi osana).
Detektori kasutamine kontrolleriga tähendab sisuliselt, et anduri lugemine ei erine palju tavalise lüliti lugemisest. Detektori lugemiseks tuleks see ühendada mõne kontrolleri digitaal- või ka analoogsisendiga. Detektori ühendamise puhul on oluline jälgida viikude paigutust. Need võivad detektoritel erineda ja on oluline, et toide oleks detektoril ikka toite viikudega ja signaal signaaliviikudega ühendatud.
Kodulabor III puhul tuleb detektor ühendada Kombomooduli koodrite sisendisse, kuna detektor vajab töötamiseks 5 V sisendpinget. Detektori kasutamisel koodri sisendis tuleb jälgida, et oleks ühendatud ka Kodulabori väline toiteallikas.
// Kodulabori PID anduri (detektori) näidisprogramm #include <homelab/pin.h> // Detektori sisendviigu defineerimine // Kodulabor II //pin pir_pin = PIN(F, 0); // Kodulabor III pin pir_pin = PIN(C, 4); // Põhiprogramm int main(void) { // LED-i viikude väljundiks seadmine pin_setup_output(led_green); pin_setup_output(led_red); // Detektori signaaliviigu sisendiks seadmine pin_setup_input(pir_pin); // Lõputu tsükkel while (1) { // Kui detektor ei ole rakendunud põleb roheline LED // Kui detektor rakendub, süttib punane if(pin_get_value(pir_pin) == 0) { led_on(led_green); led_off(led_red); } else { led_on(led_red); led_off(led_green); } } }