hmmmmm, najjednostavnije (da ne kazem, najjeftinije) bi bilo da napravis obican senzor baziran na obicnoj (ne IR) foto-diodi ili foto-tranzistoru (ako ti treba jaca osetljivost)... Stavise, ako imas neki tranzistor tipa BC107 u metalnom kucistu, samo mu skini kapicu i dobices poprilicno solidan foto tranzistor
Foto dioda u mraku se ponasa kao i obicna dioda - struja moze ici samo od anode ka katodi, dok pri osvetljenju, katoda-anoda otpor se smanjuje, tako da pri jakom svetlu, fotodioda provodi struju od katode ka anodi... Dakle, stavis foto diodu redno na izvor od 5V (i minimum 60 mA), i to katodom na +V, posle toga stavis neki potenciometar (racunaj i sam kolikog otpora treba da bude) koji ce ti sluziti za regulaciju osetljivosti, i mozes da zakacis neki omanji kondenzator (naravno, paralelno) da ti neko vreme zadrzava napon (napravis kasnjenje od 1s npr.) i posle toga imas 2 varijante:
- Odmah da zakacis na paralelni port (jako nepreporucljivo ako nemas stabilni izvor napajanja)
- Sve odvojis opto-relejem na 5v, pa preko istog zakacis na paralelni port (jako fina stvar - nema teorije da unistis paralelni port)
Sta god odabrao, kolo poput ovog (da bi detektovalo pokret) mora biti uvek osvetljeno (tako da se prekid osvetljenosti detektuje, s' toga moras koristiti usmerenu LED diodu koja ce osvetljavati tvoj senzor non-stop jer ce se kretanje detektovati time sto se prekine snop svetlosti izmedju LED i PD dioda), pa samim tim, normalno stanje ce davati ~+5v na izlazu, i samim tim, prevedeno u digitalnu elektroniku, na izlazu ce biti jedinica ukoliko nema pokreta, dok ce biti 0 sve dok neko prekida to svetlo... Zato ces ga zakaciti na invertovani input pin na paralelnom portu, sto bi bio (u standardnom Centronics D-Type 25 pakovanju) pin 11... Mozes ga zakaciti i na pin 15 (to je I0), pa proveravati kasnije da li je input value 00001, pa ako nije - neko je krenuo... Ako stavis na pin 11 (to je I5) onda ces u normalnom stanju, input value imati 00000, dok kad neko prodje pored tvojeg kola, value ce skociti na 10000...
Dakle, kad odradis hardverski deo, ostaje ti softverski... Standardne adrese paralelnog porta su:
LPT1: 378h - 37Fh
LPT2: 278h - 27Fh
LLPT: 3BCh - 3BFh
... da bi saznao koja adresa je dodeljena od strane BIOS-a, mozes da pravis standardni probe program (posaljes na bilo koju od ovih adresa recimo 0xFF na data linije, a onda da procitas sa njih - ako se poklopi da neki port ima na data linijama 0xFF - to je tvoja adresa), ili da uzmes iz memorije adrese sa lokacija:
0000:0408 - LPT1
0000:040A - LPT2
0000:040C - LPT3
0000:040E - LPT4 (negde BIOS detektuje kao PS/2)
Uostalom, da ne gnjavim, evo na google-u sam ti nasao podoban dokument o softverskoj strani interfejsa:
http://www.beyondlogic.org/spp/parallel.htm
E sad, LED i PD se mogu zameniti IR-LED i IRD-om, i tako se nece ni videti svetlost (golim okom) te niko nece moci da vidi gde je senzor... Malo skuplja, ali daleko korisnija stvar jer je doza IR svetla u regularnim uslovima dosta mala, pa samim tim ne moras socivima usmeravati svetlost, ili koristiti laser umesto LED-a... IR moze slobodno da rasipa zrake oko sebe, a opet ce dioda 'uhvatiti' kad neko prekine IR svetlost...
Srecno...