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 infrapunakirgusena. 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 liikumisandurid.
PIR andur 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 digitaalsisendiga. 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 puluh tuleb andur ühendada Komboplaadi koodrisisendisse, kuna andur vajab töötamiseks 5V sisendpinget. Jälgi, et oleks ühendatud ka kodulabori väline toiteallikas.
// PIR anduri näidisprogramm #include <homelab/pin.h> //PIR anduri viigu defineerimine //pin pir_pin = PIN(A, 1); // Kodulabor 2561 kontrolleriga pin pir_pin = PIN(C, 4); // Kodulabor III kontrolleriga // 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); } } }