KKM: TCS230 SENZOR ZA PREPOZNAVANJE BOJA

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
Ovaj modul senzora boja sadrži TCS230, programibilni konverter svjetlosti u frekvenciju. Može filtrirati RGB iz izvora svjetlosti i pretvoriti ga u pravokutne valove s frekvencijom direktno proporcionalnom s intenzitetom svjetlosti. Koristi se u robotici za prepoznavanje objekata, praćenje “linija”, u dizajnu za kameleon efekt i drugo.
Karakteristike:
Napon: 2.7 – 5.5V
Preciznost: 0.2% na 50kHz
Dimenzije: 29x21mm
KAKO RADI?
TCS230 kombinira fotodiode i napon-u-frekvenciju konverter. Sadrži 8×8 niz fotodioda, i to: 16 s plavim, 16 s zelenim, 16 s crvenim filterom i 16 bez filtera. Ako uzmete povećalo i naciljate centar čipa moći ćete vidjeti ove filtere. Veličine su 120x120um, a služe kako bi se filtrirala “slučajna” zračenja. Na modulu se nalaze 4 širokokutne 5mm hladno bijele LED diode kako bi se povećalo zračenje te ostale pasivne komponente koje su nužne za direktno čitanje izlaznog pina.
Pinout
GND – gnd
OE – Output enable, aktivan LOW
OUT – izlazna frekvencija (fo)
S0, S1 – pinovi za skaliranje izlazne frekvencije (0%, 2%, 20%, 100%)
S2, S3 – pinovi za odabir RGB filtera (crveni, plavi, zeleni, bez)
Vcc – 2.7 – 5.5 VDC
Za više pogledaj datasheet.
MODUL I CRODUINO
Prema datasheetu, pinove smo spojili kao na slici gore:
GND – gnd
OE – gnd, LOW aktivira OUT pin
OUT – PIN10 Croduina, jedini ulazni pin možemo koristiti bilo koji
S0, S1 – +5V, kombinacija kada su oba pina HIGH skalira nam izlazni pin na 100%. Za veću preciznost koristite manji [%]. U tom slučaju, uz Arduino, nužno je koristiti neku Timer library.
S2 – PIN7 Croduina, kombiniramo s S3 kako bi mijenjali filtere prema tablici dolje
S3 – PIN6 Croduina, kombiniramo s S2 kako bi mijenjali filtere prema tablici dolje
Vcc – +5V
Kombinacija S2/S3 za mijenjanje filtera :
NAPOMENA: kod ispod prikazuej princip rada modula, za preciznije podatke nužne su kalibracije i točnije mjerenja koja možete dobiti uz pomoć TimerOne librarya.
///////////////////////////////////////////////////////////////////////////////
/* */
/* */
/* (c) e-radionica.com 2015 - http://e-radionica.com/hr/faq/#privatnost */
/* [email protected] */
/* */
/* */
/* TCS230 - KKM tutorial */
///////////////////////////////////////////////////////////////////////////////
/*
GND - GND, OE
+5V - Vcc, S0, S1
D10 - OUT
D7 - S2
D6 - S3
*/
const
int
s2 = 7;
const
int
s3 = 6;
const
int
out = 10;
byte crvena, zelena, plava;
void
setup
() {
pinMode
(s2,
OUTPUT
);
pinMode
(s3,
OUTPUT
);
pinMode
(out,
INPUT
);
Serial.begin(9600);
}
void
loop
() {
ProvjeriBoje();
Serial.print(
"Crvena = "
+
String
(crvena) +
"\t"
);
Serial.print(
"Zelena = "
+
String
(zelena) +
"\t"
);
Serial.print(
"Plava = "
+
String
(plava) +
"\n"
);
delay
(100);
}
void
ProvjeriBoje() {
// bez crvenog filtera
digitalWrite
(s2,
LOW
);
digitalWrite
(s3,
LOW
);
crvena =
pulseIn
(out,
digitalRead
(out) ==
HIGH
?
LOW
:
HIGH
);
delay
(10);
// bez plavog filtera
digitalWrite
(s2,
LOW
);
digitalWrite
(s3,
HIGH
);
plava =
pulseIn
(out,
digitalRead
(out) ==
HIGH
?
LOW
:
HIGH
);
delay
(10);
// bez zelenog filtera
digitalWrite
(s2,
HIGH
);
digitalWrite
(s3,
HIGH
);
zelena =
pulseIn
(out,
digitalRead
(out) ==
HIGH
?
LOW
:
HIGH
);
}
Korišteni proizvodi
No products found