You are on page 1of 14

B CNG THNG

TRNG CAO NG CNG THNG TP.HCM


KHOA IN-IN T

BO CO
O LNG CM BIN
Nhm 12
TI: S DNG CM BIN MU TCS3200 PHN
BIT MU SC
GV: NGUYN KIM SUYN
SVTH: NGUYN VN BO
L QUC LU
V TH THU HNG
TRN MINH NHT

Tp .H CH MINH ngy14 thng 10 nm 2015

BI BO CO:
S DNG CM BIN MU TCS3200
PHN BIT MU SC

I.Module Cm Bin Mu TCS3200.


1.nh ngha.
Cm bin nhn bit mu sc v xut ra 3 tn s xung tng ng vi 3 mu c bn
l , Xanh l v Xanh dng, o 3 tn s xung ny v qua 1 vi bc chuyn i nht
nh l bn s c c thng tin ca mu sc cn o.
2.Thng tin k thut:
Ngun 2.7 -> 5.5VDC
Ng ra: 3 tn s xung tng ng 3 mu , xanh dng v xanh l.

3.Tnh nng :
+Chuyn i cng nh sng thnh tn s c phn gii cao.
+Lp trnh la chn b lc mu sc khc nhau v dng tn s xut ra.
+D dng giao tip vi vi iu khin.
+in p u vo 2.7-5.5V.
4. Nguyn l hot ng:
-Cu to cm bin TCS3200 gm 2 khi nh hnh v pha di:

+Khi u tin l mng ma trn 8x8 gm cc photodiode.Bao gm 16 photodiode


c th lc mu sc xanh dng (Blue),16 photodiode c th lc mu (Red),16
photodiode c th lc mu xanh l(Green) v 16 photodiode trng khng lc (Clear).Tt
c photodiode cng mu c kt ni song song vi nhau ,v c t xen k nhau nhm
mc ch chng nhiu.
Bn cht ca 4 loi photodiode trn nh l cc b lc nh sng c mu sc khc nhau .C
ngha n ch tip nhn cc nh sng c cng mu vi loi photodiode tng ng v khng
tip nhn cc nh sng c mu sc khc.

Vic la chn 4 loi photodiode ny thng qua 2 chn u vo S2,S3 :

+Khi th 2 l b chuyn i dng in t u ra khi th nht thnh tn s :

Tn s u ra c
rng

xung 50% v t l

vi nh sng c cng v mu sc khc nhau ,s u ra nm trong khong 2Hz500Khz .


Ta c th la chn t l tn s u ra cc mc khc nhau nh bng trn cho ph hp vi
phn cng o tn s .
V d : Tn s khi S0=H,S1=H -Fout=500Khz th:
S0=H,S1=L -Fout=100Khz
S0=L,S1=H -Fout=10Khz
S0=L,S1=L -Fout=0
-Nguyn l hot ng :
nh sng trng l hn hp rt nhiu nh sng c bc sng mu sc khc nhau .
Khi ta chiu nh sng trng vo mt vt th bt k .Ti b mt vt th s xy ra hin tng
hp th v phn x nh sng .
Mu sc bt k c tng hp t 3 mu c bn Blue,Green,Red :

Da trn nguyn l s phn x , hp th nh sng trng ca vt th v s phi


chn mu sc bi 3 mu c bn Blue,Green,Red th TCS3200 c cu to l 4 b lc
photodiode Blue,Green,Red v clear nhn bit mu sc vt th.
Vi iu kin test l nh sng c bc sng p = 470 nm(Di mu Blue),p = 524 nm(di
mu Green),p = 640 nm(di mu Red) th 4 b lc photodiode s cho ra tn s khc
nhau.Tn s ra ln nht khi nh sng chiu vo cm bin cng loi photodiode c chn
v khi photodiode s hp th nhiu nht.
II. Giao tip module cm bin mu TCS3200 vi Arduino :
1.nh Ngha Arduino:
LCD?

RS
RW
E

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14

1
2
3

vcc +5v

4
5
6

VSS
VDD
VEE

LM016L

SIM?

vcc +5v
AREF

ATMEL

www.arduino.cc
blogembarcado.blogspot.com

DIGITAL (PWM~)

SIMULINO

ANALOG IN

A0
A1
A2
A3
A4
A5

POWER

A0
A1
A2
A3
A4
A5

ATMEGA328P

5V
GND

13
12
~11
~10
~9
8

ARDUINO

RESET

7
~6
~5

4
~3
2
TX > 1
RX < 0

13
12
11
10
9
8
7
6
5
4
3
2
1
0

VCC
S0

VCC
S2

S1

S3

LED

OUT

GND

GND

SIMULINO UNO

Arduino l mt board mch vi x l, nhm xy dng cc ng dng tng tc vi


nhau hoc vi mi trng c thun li hn. Phn cng bao gm mt board mch
ngun m c thit k trn nn tng vi x l AVR Atmel 8bit, hoc ARM Atmel 32-bit.
Nhng Model hin ti c trang b gm 1 cng giao tip USB, 6 chn u vo analog,
14 chn I/O k thut s tng thch vi nhiu board m rng khc nhau.
2. Arduino tm thi chia lm 3 phn:
Th nht l mch phn cng c lm chun ca chun, thng dng cc chip ca

atmel, cc chn ca vi iu khin c ni mt ra cc hng ro theo th t v v tr , cc


v tr ny cn chnh xc gn cc bo m rng m ta gi l shield. Nh vy ai nhn vo
mt bo arduino cng bit u l chn ngun, u l chn t, u l chn analog hay
pwm... Trn bo mch chnh c h thng n nh ngun vi nhiu mc la chn ngun.
Ch hot ng ca chip cng c nh sn, c nhng thit k m rng cho nhng
giao tip c th (UART, SPI, I2C...). C nhng tn hiu hot ng ca mch....
Th hai l firm ware cho chip iu khin, ngha l trn bo Arduino c con chip iu
khin, v con chip ny c np sn mt chng trnh bootloader. Ci gi l bootloader
ny c nhim v chnh l chuyn t phng thc np ISP truyn thng ca avr sang mt
kiu chung l np qua uart. Nh vy ngha l sao, ngha l bn khng cn phi mua
thm mch np ring, ch cn mch giao tip USB2COM rt thng dng, ri khi ang
vit chng trnh, bm np, nhai mt ci ko cao su, sau khi ng chng trnh
terminal ln, nh vy l sn sng cho iu khin cc thit b in di qua my tnh,
sn sng cho debug, sn sng cho kim sot chng trnh dng nh Serial.println
Th ba l phn mm trn my tnh vi giao din n gin, vit chng trnh,
bm np, xong :Chng trnh ca Arduino c thit k nhng ngi thm ch cha
bit lp trnh cng c th lm c. Thm na vic dng th vin n gin, nht l h
thng th vin ny lun c nhiu example hay cn gi l v d. Nh vy ch cn gi ra
mt ci v d, copy thm code, save as, th l c mt ci project ca ring bn. Tt c
phm mm ca arduino u l open source, ngha l kh nng ty chnh rt cao.
Mt h thng Arduino c th cung cp cho bn rt nhiu s tng tc vi mi
trng xung quanh vi:

H thng cm bin a dng v chng loi (o c nhit , m, gia tc, vn tc,


cng nh sng, mu sc vt th, lu lng nc, pht hin chuyn ng, pht hin
kim loi, kh c,),

Cc thit b hin th (mn hnh LCD, n LED,).

Cc module chc nng (shield) h tr kt ni c dy vi cc thit b khc hoc cc


kt ni khng dy thng dng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,),

nh v GPS, nhn tin SMS, v nhiu th th v khc ang ch bn khm ph.


3.ng dng:
- phn loi cc sn phm mu sc trong cng
nghip..v..v
- mt s my phn loi nh sau|:
My tch mu ng cc
M code:
/*
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int red;
int green;
int blue ;
/*
// TCS230 color recognition sensor
Color Sensor
-----------

Arduino

--------

VCC

5V

GND

GND

s0

s1

s2

12

s3

11

OUT
OE

10
GND

*/
const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;

void setup()

{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(" COLOR SENSOR ");
lcd.setCursor(1,1);
lcd.print(" TCS3200 ");
delay(3000);
lcd.setCursor(0,0);
lcd.print("

NHOM 12 ");

lcd.setCursor(1,1);
lcd.print("BAO LUU HUONG NHAT");
for(int x=0; x < 3; x++)
{
lcd.noDisplay();
delay(500);
lcd.display();
delay(300);
}
for(int x=0; x<14; x++) {
lcd.scrollDisplayLeft(); // cuon man hinh sang trai
delay(500);
}

Serial.begin(9600);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
lcd.clear();
}
void loop()
{
color();
Serial.print("R Intensity:");
Serial.print(red, DEC);
Serial.print(" G Intensity: ");
Serial.print(green, DEC);
Serial.print(" B Intensity : ");
Serial.print(blue, DEC);
if (red < blue && red < green && red < 20 && red >8)
{ Serial.println(" - (Red Color)");
lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");

lcd.setCursor(1,1);//Thiet lap con tro cot 0 hang thu 0


lcd.print(" RED Color ");//Xut ra mn hnh
delay (1500);
}
else if (blue < red && blue < green )
{ Serial.println(" - (Blue Color)");
lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");
lcd.setCursor(1,1);
lcd.print(" BLUE Color ");
delay (1500);
}
else if (green < red && green < blue)
{ Serial.println(" - (Green Color)");
lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");
lcd.setCursor(1,1);
lcd.print(" GREEN Color ");
delay (1500);
}
else if (red = green && green < blue)
{

Serial.println(" - (Yellow Color)");


lcd.setCursor(0,0);

lcd.print(" SENSOR-TCS3200 ");


lcd.setCursor(1,1);
lcd.print(" YELLOW Color ");
delay (1500);
}
else if (green = blue && green < red)
{ Serial.println(" - (Cyan Color)");
lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");
lcd.setCursor(1,1);
lcd.print(" CYAN Color ");
delay (1500);
}
else if (blue = red && blue > green)
{ Serial.println(" - (Magenta Color)");
lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");
lcd.setCursor(1,1);
lcd.print(" MAGENTA Color ");
delay (1500);
}
else
{ Serial.println();

lcd.setCursor(0,0);
lcd.print(" SENSOR-TCS3200 ");
lcd.setCursor(1,1);
lcd.print(" NO Color ");
delay (1000);
}
}
void color()
{
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//count OUT, pRed, RED
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//count OUT, pBLUE, BLUE
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//count OUT, pGreen, GREEN
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}

Ht./.

You might also like