Paso 3: El código
En lugar de simplemente descarga el código en primer lugar voy a explicar un poco cómo funciona el código. Si usted no está interesado usted puede descargar el código al final de este paso.
El código requiere la biblioteca de Adafruit_Neopixel. Para instalarlo ir a bosquejo -> incluir Biblioteca -> Administrar bibliotecas tipo Neopixel en el cuadro de búsqueda, haga clic en el Adafruit NeoPixel y haga clic en instalar.
Con el sensor conectado ahora podemos intentar leer algunos valores de ella. Esto es realmente muy fácil. Todos tenemos que hacer es seleccionar el color que nos interesa y contar cuántas veces el pin de salida cambia de alto a bajo en un momento dado. Luego repetimos esto para cada color y tenemos nuestras mediciones. Descargar y descomprimir el código a seguir junto con la explicación de abajo.
Lectura del sensor:
La función de color medida hace todo el trabajo. El lazo externo es un bucle que coloca 3 veces, una vez para rojo, verde y azul. Dentro del bucle se almacena la hora y un tiempo de bucle se introduce por 25ms. En el tiempo bucle seguimos comprobando el estado del perno hacia fuera, si cambia de alto a bajo o de bajo a alto incrementa la cuenta y guardar el estado. Seguimos haciendo esto hasta que el tiempo de medición. Después salvar la cuenta como el valor bruto de ese color, restablecerla y seleccione el color siguiente. Cuando que esta función está terminada el ColorData estructura tiene los valores medidos crudos para rojo, verde y azul. Es así de simple.
Conversión de colores:
Para obtener los colores reales que tendremos que calibrar el sensor, esto lo haremos en el siguiente paso. Pero en primer lugar, permite explicar lo que estamos calibrando. Asumimos que el sensor es lineal, por lo que si la cuenta de salida aumenta la cantidad de luz aumenta al mismo ritmo. https://en.wikipedia.org/wiki/Linear_function Por lo tanto, el color está dado por una función en forma de color = a * (cuenta) + b. Esto se explica por el sensor en el https://arduinoplusplus.wordpress.com/2015/07/15/tcs230tcs3200-sensor-calibration/ y usaremos el mismo método para calibrar el sensor.
Lo último que haremos es escala el color que detecta. Hacemos esto para evitar que los LEDs dim. Así que tome el color más alto y establece en un máximo de 255 y los otros dos colores de la escala en consecuencia.
LED RGB:
Los LEDs están situados en el bucle principal. Después de leer el color vamos a recorrer todos los LEDs y establecer el color de los LEDs al color que leemos.