Вы находитесь на странице: 1из 11

Ing Edison V

1
1. Sensor conversor de luz a frecuencia TCS 3210/3200

Es un sensor del color programable convertidor de luz a frecuencia, puede filtrar los
datos RGB de la luz fuente y convertirlo a una onda cuadrada con frecuencia
directamente proporcional a la intensidad de luz irradiada. La frecuencia de salida a
escala completa se puede escalar con (SO, S Opciones seleccionables !", !#", ##"
de frecuencia$, y pin S!, S% controlar el filtro de RGB. Las entradas y salidas digitales
permiten interfaz con un microcontrolador o arduino directamente.
&aracter'sticas(
. )e alta resoluci*n de &onversi*n de Luz
!. +ntensidad de ,recuencia
%. -rogramable al color y escala total deseado
.. Se comunica directamente con un microcontrolador
/. 0limentaci*n 1nica Operar (!,2 3 a /,/ 3$
4. Error de no linealidad 5'picamente #,!" a /# 67z
2. monta8e superficial
9. En el 5&S%!#, el convertidor de luz a frecuencia lee una matriz 9 : 9 de
fotodiodos. )iecis;is fotodiodos tienen filtros azules, 4 fotodiodos tienen filtros
verdes, 4 fotodiodos tienen filtros ro8os, y 4 fotodiodos son claras sin filtros


Ing Edison V
2
2. Pines de configuracin y seleccin


Los pines S# y S nos permite seleccionar la frecuencia de traba8o






Ing Edison V
3
3. Recepcin de datos

La salida del sensor es una onda cuadrada con frecuencia directamente proporcional a
la intensidad del color <ue incida sobre los fotodiodos .=na manera de contar los ciclos
para determinar la frecuencia es usar una interrupci*n e:terna 5immer o con arduino
mediante la instrucci*n pulse+n.
El sensor convierte la luz captada a pulsos de luz RGB(red, Green, blue, ro8o, verde azul$,
mediante la combinaci*n de los colores primarios obtenemos los colores verde,
naran8a, violeta <ue nos permiten obtener un plano general de los colores m>s
importantes del circulo crom>tico
-ara lograr obtener todas las tonalidades de color del circulo crom>tico es necesario
realizar la conversi*n de 5SL(tono, saturaci*n, luminancia$ a RGB seg1n los c>lculos de
modelo de color.

. Propiedades del color

Las propiedades del color son b>sicamente, elementos diferentes <ue ?acen 1nico un
determinado color, le ?acen variar su aspecto y definen su apariencia final.
Matiz (Hue o Tonalidad, se representa en grados 0-360)
)enominado ta!"i#n tono$ tinte y color$ es la propiedad del color <ue se
refiere al estado puro del color, el color puro al cual m>s se acerca. Es la
cualidad por la cual diferenciamos y da!os su no!"re al color.
El matiz nos permite distinguir el ro8o del azul, y se refiere al recorrido <ue ?ace
un tono ?acia uno u otro lado del c'rculo crom>tico
Los tres colores primarios representan los tres !atices pri!arios, y mezclando
;stos podemos obtener los dem>s matices o colores.
Valor o luminosidad
Es un t;rmino <ue se usa para describir cuan claro o cuan oscuro parece un
color y se refiere a la cantidad de luz perci"ida (una camisa en el sol o en la
sombra$.


Ing Edison V
4
Saturacin o brillo
Este concepto representa la viveza o palidez de un color, su intensidad$ y puede
relacionarse con el anc?o de banda de la luz <ue estamos visualizando.
describe la pureza del color, es decir, la intensidad o palidez del mismo (una
camisa nueva o descolorida$,



Ing Edison V
5
En la imagen del c'rculo crom>tico se observa las diferentes tonalidades de color <ue se
obtienen en los %4# grados, colores <ue son percibidos s*lo por el o8o ?umano.

%. &odelos de Color

Modelo !"
Este es el modelo de definici*n de colores usado en traba8os digitales tomando valores
de # a !//
#l modelo HS$ o TS$ (Matiz (T%&%), Saturacin, $uminosidad)
Es un modelo de representaciones considerado @natural@, ya <ue se acerca bastante a la
percepci*n fisiol*gica del color <ue tiene el o8o ?umano, sus valores van de # a %4#
grados
El modelo 7SL consiste en descomponer el color seg1n criterios fisiol*gicos(
7SL es parecido a 7S3
El color ro8o, e<uivale en RGB es (!//,#,#$, y en 7SL (#,##",/#"$ con una saturaci*n
del ##" y una luminosidad del /#".









Ing Edison V
6
'. &onta(e en arduino




Ing Edison V
7




Ing Edison V
8
). Cdigo de *rduino
9. AB
C. programa <ue lee el sensor de color 5&S%!#A%!## por medio de cambios de frecuencia,
#. cuando detecta los colores ro8o, verde y azul, lee tinte, luminancia y RGB
. programa adaptado de los publicados por el fabricante, -aralla:, 5aos y stratDnum.fr
!.
%.
.. configuracion de escala o frecuencia ::::::::::::::: configuracion para deteccion de color
/. S#ES :: S!ES%
4. #E# poFer doFn :: #E# red
2. #E escala A/# fre ,OG #H?z :: #E blue
9. E# scaling A/ fre ,OG ##H?z :: E# clear (no filter$
C. E scaling A (default$ fre ,OG /##H?z :: E green
!#.
!. s% s! out vdd
!!. 9 2 4 /
!%. +IIII+IIII+IIII+
!.. + +
!/. + +
!4. +IBIIIIIIIIIIII+
!2. + + + +
!9. ! % .
!C. S# S OE GJ)
%#.
%. BA
%!. AA pines de arduino para conectar el sensor
%%. AAtslG tono(tinte$ saturacion luminancia
%.. AA tinte ?ace referencia a un tono s*lido o plano,
%/. AA esto es, <ue no contiene degradaciones.
%4. struct 5SLKdouble tL double sL double lLMLAAse define una funcion tipo estructura <ue nos permite definir y tomar
varias variables
%2. int out G !L AA definicion de salida
%9. int S# G %L
%C. int S G .L
.#. int S! G /L
.. int S% G 4L
.!. int OE G 2L AA salida ?abilitada
.%. int LE) G 9L AA pulso de activacion de un led para deteccion de color(opcional$
...
./. int L5 G %L AA indicador de ad<uisicion de color segun codificacion RGB
.4. int sombrasInb G 4L
.2. double sombrasIvalNO G K%#.#,4#.#,!#.#,9#.#,!.#.#,%%#.#ML
.9. c?arB sombrasIidNO G K@ro8o@,@amarillo@,@verde@,@cyan@,@azul@,@magenta@ML
.C.
/#. void setup($ K
/. 5&S%!#setup($LAAsalta a configurar el sensor
/!. Serial.begin(/!##$LAAconfigura la velocidad
/%. Serial.print(@Pnleyendo sensor %!#Pn@$LAAimprime un mensa8e
/.. delay(##$L
//. M
/4.
/2. void loop($ K
/9. struct 5SL tsl G detector&olor($LAAtoma los datos de la funcion de los colores y lo almacena en struct
/C. double t G tsl.tL
4#.
4. Serial.println($L
4!. AA esta escala es apro:imada al valor real. esto depende de la cantidad de luz <ue incida en el sensor
4%. if (tsl.l Q %9.#$ K Serial.println(@tendencia( negro@$L M
4.. else if (tsl.s Q ..# RR tsl.l S 4#.#$ K Serial.println(@tendencia( blanco@$L M
4/. else if (tsl.s Q ..! RR tsl.l S .#.#$ K Serial.println(@tendencia( gris@$L M
44. else AA d;terminacion de la tinta
42. if(tSGsombrasIvalN#O RR tQsombrasIvalNsombrasInbDO$
49. K
4C. for(int id:G#L id:QsombrasInbDL TTid:$

Ing Edison V
9
2#. K
2. if(tSGsombrasIvalNid:O RR tQsombrasIvalNid:TO$
2!. K
2%. Serial.print(@tendencia( @$L
2.. Serial.println(sombrasIidNid:TO$L
2/. brea6L
24. M
22. M
29. MelseK
2C. Serial.println(@tendencia( ro8o@$L
9#. M
9.
9!. Serial.println(@PnPn@$L
9%. delay(###$L
9.. M
9/.
94. AA comando para detectar si ?ay color alfrente del sensor.
92. bool is-resent($
99. K
9C. AAse cataloga el grado de luminosidad segun la ?o8a de datos
C#. AApara determinar el grado de luminosdad o oscuridad
C. double is-resent5olerance G !L
C!. AA n1mero se ?ace grande cuando algo est> en frente del sensor.
C%. double is-resent G colorRead(out,#,#$AcolorRead(out,#,$L
C..
C/. if(is-resent Q is-resent5olerance$K
C4. Serial.println(@no ?ay nada en frente del sensor@$L
C2. return falseL
C9. M
CC. return trueL
##. M
#.
#!. AA retorna 5SL segun color detectado
#%. AA
#.. struct 5SL detector&olor($K
#/. struct 5SL tslL
#4. double F?ite G colorRead(out,#,$LAAout es el pin ! del arduino
#2. double red G colorRead(out,,$L
#9. double blue G colorRead(out,!,$L
#C. double green G colorRead(out,%,$L
#. Serial.print(@datos capturados blanco ( @$L Serial.println(F?ite$L
. Serial.print(@datos capturados R ( @$L Serial.println(red$L
!. Serial.print(@datos capturados G ( @$L Serial.println(green$L
%. Serial.print(@datos capturados B ( @$L Serial.println(blue$LSerial.println($L
..
/. double r,v,bL AA r,v,b U N#..O
4. double offset G %.#AF?iteL AA compensacion de luminosidad
2. rGmin(.#, offsetT(F?iteAred$$L
9. vGmin(.#, offsetT(F?iteAgreen$$L
C. bGmin(.#, offsetT(F?iteAblue$$L
!#. Serial.print(@ Ro8o ( @$L Serial.println( r$L
!. Serial.print(@ verde ( @$L Serial.println( v$L
!!. Serial.print(@ azul ( @$L Serial.println( b$L
!%. Serial.println($L
!..
!/. AA transformacion R3B DS 5SL
!4. AA r,v,b U N#..O
!2. AA t U N#V..%4#VOL s,l U N"O
!9. double t,s,lL
!C.
%#. double ma:R3B G ma:(ma:(r, b$,v$L
%. double minR3B G min(min(r, b$,v$L
%!. double delta G ma:R3BDminR3BL
%%. double somme G ma:R3BTminR3BL
%..

Ing Edison V
10
%/. AA luminancia basada en valores de colores segun softFare de diseWo grafico
%4. lG(sommeA!.#$L
%2.
%9. if(deltaGG#.#$ AA gris
%C. K
.#. tGsG#.#L
.. MelseK
.!. AAsaturacion
.%. if ( l Q #./ $ s G delta A sommeL
... else s G delta A ( !.# D delta $L
./.
.4. AA tinte
.2. double delIR G ( ( ( ma:R3B D r $ A 4.# $ T ( delta A !.# $ $ A deltaL
.9. double delIG G ( ( ( ma:R3B D v $ A 4.# $ T ( delta A !.# $ $ A deltaL
.C. double delIB G ( ( ( ma:R3B D b $ A 4.# $ T ( delta A !.# $ $ A deltaL
/#.
/. if ( r GG ma:R3B $ t G delIB D delIGL
/!. else if ( v GG ma:R3B $ t G ( .# A %.# $ T delIR D delIBL
/%. else if ( b GG ma:R3B $ t G ( !.# A %.# $ T delIG D delIRL
/..
//. if ( t Q # $ t TG .#L
/4. if ( t S $ t DG .#L
/2. M
/9.
/C. AA normalizacion
4#. tBG%4#.#L AA N#V..%4#VO
4. sBG##.#L AA N"O
4!. lBG##.#L AA N"O
4%. tsl.tGtL tsl.sGsL tsl.lGlL
4..
4/. Serial.print(@ tinte N#..%4#O( @$L Serial.println(t$L
44. Serial.print(@ saturacion N"O( @$L Serial.println(s$L
42. Serial.print(@ luminancia N"O( @$L Serial.println(l$L
49.
4C. return tslL
2#. M
2.
2!. ABBB
2%. Este m;todo devolver> el valor medido por el sensor seleccionado. )ado <ue la frecuencia
2.. es proporcional a la intensidad de la luz del filtro de color seleccionado, el valor m>s pe<ueWo es
2/. (&erca de # con setXode (!$$, adem>s de <ue es la luz.
24. params(
22. out-in( pin de salida
29. color( # G blanco, G ro8o, ! G azul, verde G %
2C. Los LE)s se encienden LE)state.
9#. BA
9. double colorRead(int out-in, int color, boolean LE)state$K
9!. setXode(!$L AA frecuencia ma: ##H?z GS #us
9%. AAs;lectiona el filtro
9.. if(color GG #$KAAclear
9/. digitalYrite(S%, LOY$L AAS%
94. digitalYrite(S!, 7+G7$L AAS!
92. Melse if(color GG $KAAred
99. digitalYrite(S%, LOY$L AAS%
9C. digitalYrite(S!, LOY$L AAS!
C#. Melse if(color GG !$KAAblue
C. digitalYrite(S%, 7+G7$L AAS%
C!. digitalYrite(S!, LOY$L AAS!
C%. Melse if(color GG %$KAAgreen
C.. digitalYrite(S%, 7+G7$L AAS%
C/. digitalYrite(S!, 7+G7$L AAS!
C4. M
C2.
C9. if(LE)state$K
CC. digitalYrite(LE), 7+G7$L

Ing Edison V
11
!##. digitalYrite(L5, 7+G7$L
!#. MelseK
!#!. digitalYrite(LE), LOY$L
!#%. digitalYrite(L5, LOY$L
!#.. M
!#/.
!#4. AAtiempo para <ue el sensor tome su lectura y se estabilice
!#2. int sensor)elay G #L AAms
!#9.
!#C. AA lee el pulso
!#. double read-ulseL
!. delay(sensor)elay$L
!!. read-ulse G pulse+n(out-in, LOY, !/######$L
!%. AAsi el tiempo es mayor de lo <ue lee pulsein regresa cero
!.. if(read-ulse Q .$K read-ulse G !/######L M
!/.
!4. AAdescativa el sensor para a?orrar energia
!2. setXode(#$L
!9. return read-ulseL
!C. M
!!#.
!!. ABBB selecciona el modo
!!!. BA
!!%. void setXode(int mode$K
!!.. if(mode GG #$K
!!/. AApoFer O,,
!!4. digitalYrite(LE), LOY$L
!!2. digitalYrite(L5, LOY$L
!!9. digitalYrite(S#, LOY$L AAS#
!!C. digitalYrite(S, LOY$L AAS
!%#. Melse if(mode GG $K
!%. AAescala (
!%!. digitalYrite(S#, 7+G7$L AAS#
!%%. digitalYrite(S, 7+G7$L AAS
!%.. Melse if(mode GG !$K
!%/. AAescala (/
!%4. digitalYrite(S#, 7+G7$L AAS#
!%2. digitalYrite(S, LOY$L AAS
!%9. MelseK AAif(mode GG %$
!%C. AAescala (/#
!.#. digitalYrite(S#, LOY$L AAS#
!.. digitalYrite(S, 7+G7$L AAS
!.!. M
!.%. M
!... AAAAAAAAAAAAAAAAAAAfuncion de configuracion de pinesAAAAAAAAAAAAAAAAA
!./. void 5&S%!#setup($K
!.4. AAconfiguracion de frecuencia en el setup estan los pines respectivos
!.2. pinXode(S#,O=5-=5$L
!.9. pinXode(S,O=5-=5$L
!.C. AAseleccion de color
!/#. pinXode(S!,O=5-=5$L
!/. pinXode(S%,O=5-=5$L
!/!. AAsalida
!/%. pinXode(out, +J-=5$L
!/.. AA?abilita la salida
!//. pinXode(OE,O=5-=5$L AA?abilita el modulo de luz
!/4. AA activa el led
!/2. pinXode(LE),O=5-=5$L
!/9. AA ?alita la deteccion de color
!/C. pinXode(L5,O=5-=5$L
!4#. M