[I2C] Módulo sensor de color GY-33: Código para Arduino

Comunicación directa con TCS34725 mediante I2C

Librerías necesarias

gy33_sda_scl.ino
/*
Finalidad: Leer las medidas de color del sensor y mostrarlas por puerto serie
Conexiones:
  SCL sensor con pin A5 (SCL) del Arduino Nano
  SDA sensor con pin A4 (SDA) del Arduino Nano
  VCC y GND sensor a fuente alimentación (5V y masa)
  S1 =0
*/
 
#include <Wire.h>
#include "Adafruit_TCS34725.h"
 
/*
El sensor tiene un array de fotosensores, que convierten la luz en una señal eléctrica.
La ganancia del sensor es la relación entre la señal eléctrica y la luz recibida.
Más ganancia significa mayor sensibilidad a ambientes oscuros y más ruido.
El tiempo de integración es la cantidad de tiempo que el sensor captura luz.
Mayor tiempo de integración significa medición más lenta, mayor sensibilidad a ambientes oscuros, menor ruido.
La orden que inicializa con valores por defecto (int time = 2.4ms, gain = 1x) es:
Adafruit_TCS34725 tcs = Adafruit_TCS34725();
*/
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X);
 
void setup(void) {
  Serial.begin(9600);
  // Comprobación de comunicación con el sensor de color
  if (!tcs.begin()) {
    // No se encontró
    Serial.println("Error al iniciar TCS34725");
    while(1){}; //Bucle infinito, parada del programa
  } // Final comprobación
} // Final setup
 
void loop(void) {
  // uint16_t: Enteros de 2 bytes sin signo, de 0 a 65535
  uint16_t r, g, b, c, colorTemp, lux;
  // Guardar valores medidos por el sensor en las direcciones de las variables
  tcs.getRawData(&r, &g, &b, &c);
  // Cálculo de la temperatura de color
  colorTemp = tcs.calculateColorTemperature(r, g, b);
  // Cálculo de los lux
  lux = tcs.calculateLux(r, g, b);
  // Visualización de datos
  Serial.print("Temperatura color: "); Serial.print(colorTemp,DEC); Serial.println(" K");
  Serial.print("Lux : "); Serial.println(lux,DEC);
  Serial.print("Clear: "); Serial.println(c,DEC);
  Serial.print("Rojo: "); Serial.println(r,DEC);
  Serial.print("Verde: "); Serial.println(g,DEC);
  Serial.print("Azul: "); Serial.println(b,DEC);
  Serial.println(" ");
  delay(1500);
}