KKM: Photointerrupter (fotoprekidnik)

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

UVOD

Sigurno ste puno puta vidjeli neki brojač okretaja ili senzor koji detektira prolaz predmeta, a niste znali kako oni rade sada ćemo se upoznati s jednim takvim senzorom koji se najčešće koristi za ove dvije primjene ali i puno drugih. Za početak radi se o fotoprekidniku (photointerrupter) ITR9608 koji može detektirati predmet koji se pojavi unutar njega. Njegovo korištenje je jednostavno, a mogućnosti koje nam daje su raznolike i možemo ga koristiti u raznim projektima.


 
Karakteristike senzora:

  • Napon diode: 1.5V
  • Struja diode: 50mA
  • Maksimalni napon tranzistora kolektor emiter: 30V
  • Maksimalni napon tranzistora emiter-kolektor: 5V
  • Maksimalna struja tranzistora: 20mA

KAKO RADI?

Fotoprekidnik ima IR diodu koja konstantno emitira svjetlost prema fototranzistoru koji je kalibriran samo za tu svjetlost. Dioda se nalazi s jedne strane senzora, a fototranzistor s druge te je među njima prorez kroz koji mogu prolaziti predmeti. Kada nema predmeta fototranzistor prima svjetlost IR diode i nalazi se u stanju vođenja, no kada imamo između IR diode i fototranzistora predmet onda se fototranzistor nalazi u stanju zapiranja. Ako fototranzistor spojimo sa Croduinom možemo očitavati kada tranzistor vodi, a kada ne i tako saznati dali se između IR diode i fototranzistora nalazi neki predmet. S ovim senzorom možemo brojati predmete ili iskoristiti da dobijemo jednostavan brojač okretaja.
 

KAKO POVEZATI?

Senzor je jednostavno za povezati sa Croduinom jer imamo samo fototranzistor koji nam se povezuje sa Croduinom, a IR diodu povezujemo na napajanje kao i klasičnu LED diodu. IR dioda mora konstantno svijetliti te ju zbog toga spajamo na napajanje preko otpornika odgovarajuće vrijednosti (150-200Ω) kako bi ograničili struju kroz diodu. Fototranzistor spajamo na napajanje kao sklopku, ali preko otpornika veće vrijednosti ( 10kΩ ili više) i s kolektora spajamo signal na Croduino pin kako bi očitavali kada foto tranzistor vodi, a kada ne. Na senzoru imamo označeno stranu na kojoj je IR dioda a na kojoj foto tranzistor, a na slici vidimo i oznake nožica.

Shema nam pokazuje kako trebamo spojiti senzor sa Croduinom.

CRODUINO KOD

Prvi primjer koda možemo koristiti za brojanje raznih predmeta koji prolaze unutar senzora.

int senzor=2; //pinu na koji spajamo senzor dodijelili smo ime senzor
int stanjeSenzora; //varijabla u koju spremamo stanje senzora
int zastavica=0; //pomoćna varijabla za if petlju
int brojac=0; //varijabla u koju spremamo broj predmeta koji su prošli kroz senzor
void setup() {
pinMode(senzor,INPUT); //postavljanje pina na koji je spojen senzor kao ulazni pin
Serial.begin(9600); //započinjemo serijsku komunikaciju
}
void loop() {
stanjeSenzora=digitalRead(senzor); //u varijablu stanjeSenzora spremamo vrijednost senzora koju očitavamo s pina 2
if ((stanjeSenzora==LOW)&&(zastavica==0)){ //if petlja u kojoj provjeravamo dali je senzor LOW i dali je zastavica jednaka 0
zastavica=1; //postavljamo zastavicu na 1 i ona će biti jedan sve dok je predmet unutar senzora te nam osigurava da se isti predmet ne broji više puta
brojac++; //povećavamo brojač jer je predmet prošao kroz senzor
Serial.println(brojac); //na Serial monitor ispisujemo stanje brojača
}
else if(stanjeSenzora==HIGH){ //ispitujemo dali ima predmet unutar senzora i ako nema vrijednost će biti HIGH i izvršit će se ova petlja
zastavica=0; //postavljamo zastavicu na 0 jer je predmet prošao kroz senzor te time osiguravamo da se pri sljedećem prolazu predmet može izvršiti prva if petlja
}
delay(50); //pauza od 50 ms
}
Drugi primjer možemo iskoristiti za detekciju predmeta ili kao alarm koji nam detektira prolaz nečega između senzora. Kako bi imali signalizaciju alarma na pin 3 spojimo LED diodu preko odgovarajućeg otpornika.
int senzor=2; //pinu na koji spajamo senzor dodijelili smo ime senzor
int ledica=3; //pinu na koji spajamo LED diodu dodijelili smo ime ledica
int stanjeSenzora; //varijabla u koju spremamo stanje senzora
void setup() {
pinMode(senzor,INPUT); //postavljanje pina na koji je spojen senzor kao ulazni pin
pinMode(ledica,OUTPUT); //postavljanje pina na koji je spojen senzor kao izlazni pin
}
void loop() {
stanjeSenzora=digitalRead(senzor); //u varijablu stanjeSenzora spremamo vrijednost senzora koju očitavamo s pina 2
if (stanjeSenzora==LOW){ //ako je senzor LOW odnosno ima predmet između diode i fototranzistora izvršava se petlja
digitalWrite(ledica,HIGH); //palimo LED diodu kada imamo predmet unutar senzora
}
else {
digitalWrite(ledica,LOW); // ako nema predmeta gasimo LED diodu
}
}
Leave a Reply