KKM: TCS230 SENZOR ZA PREPOZNAVANJE BOJA

Početnik si s Dasduinom. 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 tvrtke soldered 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 Dasduinom 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 DASDUINO
Prema datasheetu, pinove smo spojili kao na slici gore:
GND – gnd
OE – gnd, LOW aktivira OUT pin
OUT – PIN10 Dasduina, 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 Dasduina, kombiniramo s S3 kako bi mijenjali filtere prema tablici dolje
S3 – PIN6 Dasduina, 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 */
/* techsupport@e-radionica.com */
/* */
/* */
/* 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