When you shine a red, blue, and green light on a red paper, the red light reflects back most brightly, on a blue paper, the blue reflects back most, etc. How this circuit works is that we have a 3 color LED and a CdS cell connected to a pic microcontroller. The 3 colors take turns lighting in sequence and the pic reads the brightness reflected for each one. It then does a comparison of the 3 reflected values and determines what color the object being illuminated is.
The "screenshot" is the serial message i got when holding a green card in front of the sensor, so it works!
I put electrical tape around the CdS cell and LED to reduce error and noise caused by ambient light.
My code:
high 0,1,2,3,4,5
pause 1000
main:
debug
w3 = 0
low 1
high 2,3
pause 50
readadc 0,b0
low 2
high 1,3
pause 50
readadc 0,b1
b1=b1+20
low 3
high 1,2
pause 50
readadc 0,b2
w3 = b0 + b1 +b2
if w3 > 450 then nocolor
if w3 < 220 then nocolor
if b0<b1 and b0<b2 then red
if b1<b0 and b1<b2 then green
if b2<b0 and b2<b1 then blue
goto main
nocolor:
serout 0,N2400,("nocolor",13,10)
high 4,5
goto main
red:
serout 0,N2400,("red",13,10)
low 4
high 5
goto main
blue:
serout 0,N2400,("blue",13,10)
high 4
low 5
goto main
green:
serout 0,N2400,("green",13,10)
low 4,5
goto mainFor this test version, I had a pair of LED's that would light in different pattern to indicate color.


No comments:
Post a Comment