A12. Comunicacions I2C. Sensor de colors
En aquesta pràctica farem servir el sensor de color RGB TCS34725 que funciona mitjançant el bus I2C. Però, primer necessitem saber com funciona aquest sistema de comunnicacions.
L'estàndard I2C (Inter-integrated Circuit) va ser desenvolupat per Philips en 1982 per la comunicació interna de dispositius electrònics. Posteriorment va ser adoptat per altres fabricants fins que es va convertir en un sistema estàndard. El bus I2C necessita només dos cables per al seu funcionament, un per al senyal de rellotge (SCL) i l'altre per l'enviament de les dades (SDA).
En general, cada dispositiu connectat al bus només tindrà una direcció única. Si tenim elements iguals els haurem de canviar el direccionalment d'alguna forma. El bus I2C és una arquitectura de tipus master-slave. El dispositiu master inicia la comunicació amb els esclaus, i pot enviar o rebre dades dels esclaus.
A aquest dispositiu li podem connectar molts dispositius diferents:
- Pantalla LCD
- Pantalla OLED
- Matriu de leds
- Acceleròmetres
- Giroscopis
- Sensors de temperatura
- Controladors de servomotors
A continuació, procedirem a programar el sensor de colors. El sensor pot reconèixer el color de la superfície d'un objecte a través de la detecció òptica. El sensor s'il·lumina amb llum brillant i emet els valors RGB corresponents per ajudar a restaurar el color. A més, per evitar la interferència de l'entorn i augmentar la precisió, porta un sistema de llum infraroja a la part inferior del sensor, de manera que l'element d'espectre infraroig de la llum incident es minimitza per fer que la gestió del color sigui més precisa. A la part inferior del sensor es pot veure els 4 LEDs de color groc, que poden garantir que el sensor es pugui fer servir normalment en condicions de poca llum ambiental, realitzant la funció de llum de farciment. El sensor té un filtre d'alta sensibilitat, ampli rang dinàmic i ombrejat infraroig. És una solució ideal per a components sensibles al color.
ArduinoBlocks disposa de tres blocs específics per poder controlar aquest sensor dintre dels blocs de “Sensors”.
És molt important que primer feu una “Captura color” per poder saber el color.
Farem un programa que identifiqui si el color que detecta és el vermell. Si és correcte s'encendrà el led i sinó estarà apagat.
Activitat d'ampliació: fes un programa que en funció dels colors faci una nota musical i indiqui la nota en la pantalla per la consola. Podeu fer servir els calors de les notes o directament la nota.
Do = 262
Re = 294
Mi = 330
Fa = 349
Sol = 392
La = 440
Si = 494
Podeu fer servir el circuit de proves per provar el programa ja que té totes les notes i colors proposats.
Solució: