Hay dos tipos de sensores de color.
El que se usa en este instructable es un sensor de color "reflexivo" tiene una luz roja luz verde de la fuente de la fuente una fuente de luz azul (funciona un LED de R, G, B) y un sensor de luz. La forma en que funciona es primero la luz roja se enciende y se registra el valor del sensor de luz. a continuación, la fuente de luz roja se apaga esto sucede para el verdes y azules fuentes de luz así.
el R, G, B valor entonces se comparan finamente para salir con el color del objeto, pero ¿por qué hace esto? porque cuando la luz roja se pone en un objeto rojo refleja la luz más entonces cuando verdes son luz azul brilla en él. así que cuando un objeto verde se lleva a cabo sobre el sensor registrará el valor de verde es mayor entonces el rojo son valores de azul.
El otro tipo de sensor de color es un sensor de color "refractiva" funciona en el mismo concepto que el anterior excepto que es opuesto. tiene tres sensores de luz con filtros de color rojos, verdes, azul y una fuente de luz blanca. la forma en que funciona es se convierte en la fuente de luz blanca y compara el valor de los sensores de luz, si el valor rojo es mayor entonces los valores de verdes y azul y el color es rojo.
El código usé en este instructable mira hasta que ve un objeto verde entonces enciende un LED. Lo hace es tomar el rojo, verdes, azul los valores dividen por diez (para hacerlos más fácil de gestionar). luego colocar un objeto de color (en este caso es un objeto verde) y luego uso la variable val1, val2, val3 (hay tres variables para rojo, verde, azul) a sumar y restar de los valores rojos, verdes, azul para hacerlas todas el el mismo valor en el caso de este instructable el valor es 15 años.
red = (sensorValue / 10) + val1;
entonces tengo una "si declaración" que compara los valores con una broca pequeña de "espacio" alrededor del valor en este caso dos de cada lado. así que si los valores están alrededor de quince se enciende un LED si no resulta del LED.
if(blue > 13 and blue < 17 and green > 13 and green < 17 and red > 13 and red < 17)<br> digitalWrite(led4, HIGH); delay(1000); } else{ digitalWrite(led4, LOW); }
Así que ahora a la construcción.