A12. Comunicaciones I2C. Sensor de colores
En esta práctica utilizaremos el sensor de color RGB TCS34725 que funciona mediante el bus I2C. Sin embargo, primero necesitamos saber cómo funciona este sistema de comunicaciones.
El estándar I2C (Inter-integrated Circuit) fue desarollado por Philips en 1982 por la comunicación interna de dispositivos electrónicos. Posteriormente fue adoptado por otros fabricantes hasta convertirse en un sistema estándar. El bus I2C necesita sólo dos cables para su funcionamiento, uno para la señal de reloj (SCL) y el otro para el envío de los datos (SDA).
En general, cada dispositivo conectado al bus sólo tendrá una dirección única. Si tenemos elementos iguales deberemos cambiar el direccionalmente de alguna forma. El bus I2C es una arquitectura tipo master-slave. El dispositivo master inicia la comunicación con los esclavos, i puede enviar o recibir datos de los esclavos.
A este dispositivo podemos conectarle muchos dispositivos diferentes:
- Pantalla LCD
- Pantalla OLED
- Matriz de leds
- Acelerómetros
- Giroscopios
- Sensores de temperatura
- Controladores de servomotores
A continuación, procederemos a programar el sensor de colores. El sensor puede reconocer el color de la superficie de un objeto mediante la detección óptica. El sensor se ilumina con luz brillante y emite los valores RGB correspondientes para ayudar a restaurar el color. Además, para evitar la interferencia del entorno y aumentar la precisión, lleva un sistema de luz infrarroja en la parte inferior del sensor, de modo que el elemento de espectro infrarrojo de la luz incidente se minimiza para hacer que la gestión del color sea más precisa. En la parte inferior del sensor se pueden ver los 4 LEDs de color amarillo, que pueden garantizar que el sensor se pueda utilizar normalmente en condiciones de poca luz ambiental, realizando la función de luz de relleno. El sensor tiene un filtro de alta sensibilidad, amplio rango dinámico y sombreado infrarrojo. Es una solución ideal para componentes sensibles al color.
ArduinoBlocks dispone de tres bloques específicos para poder controlar este sensor dentro de los bloques de “Sensores”.
Es muy importante que primero haga una “Captura color” para poder saber el color.
Realizaremos un programa que identifique si el color que detecta es el rojo. Si es correcto se encendrá el led y si no estará apagado.
Actividad de ampliación: realiza un programa que en función de los colores haga una nota musical e indique la nota en la pantalla por la consola. Puede utilizar los calores de las notas o directamente la nota.
Do = 262
Re = 294
Mi = 330
Fa = 349
Sol = 392
La = 440
Si = 494
Puede utilizar el circuito de prueba per probar el programa ya que tiene todas las notas y colores propuestos.
Solución: