This is an old revision of the document!
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 nimetatatakse 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.
PIR andurite 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).
PIR anduri kasutamine kontrolleriga tähendab sisuliselt, et anduri lugemine ei erine palju tavalise lüliti lugemisest. Anduri lugemiseks tuleks andur ühendada mõne kontrolleri digitaal- või ka analoogsisendiga. Anduri ühendamise puhul on oluline jälgida viikude paigutust. Need võivad anduritel erineda ja on oluline, et toide oleks anduril ikka toite viikudega ja signaal signaaliviikudega ühendatud.
Kodulabor III puhul tuleb andur ühendada Kombo mooduli koodrite sisendisse, kuna andur vajab töötamiseks 5 V sisendpinget. PIR anduri kasutamisel koodri sisendis tuleb jälgida, et oleks ühendatud ka Kodulabori väline toiteallikas.
// Kodulabori PIR anduri näidisprogramm #include <homelab/pin.h> // PIR anduri 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 viigud väljundiks seadmine pin_setup_output(led_green); pin_setup_output(led_red); // PIR anduri viik sisendiks seadmine pin_setup_input(pir_pin); // Lõputu tsükkel while (true) { // Kui PIR andur ei ole rakendunud põleb roheline LED // Kui andur 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); } } }