Ver páginaRevisiones antiguasEnlaces a esta páginaExportar a PDFExportación a ODTVolver arriba Esta página es de solo lectura. Puedes ver la fuente pero no puedes cambiarla. Pregunta a tu administrador si crees que esto es incorrecto. ====== [I2C] Módulo sensor de color GY-33: Código para Arduino ====== * Primero vamos a averiguar, por curiosidad, su **dirección I2C**. Para ello lo conectamos al bus I2C del Arduino y cargamos en el microcontrolador el programa indicado en [[doc:tec:lab:bus_i2c:pcf8574_dir:inicio|[I2C] Código Arduino para localizar direcciones I2C]]. El resultado es la dirección **''0x29''** <code> Escaneando direcciones I2C... Encontrada dirección: 41 (0x29) Búsqueda finalizada. Encontrados 1 dispositivo(s). </code> ===== Comunicación directa con TCS34725 mediante I2C ===== * Conectamos el terminal ''SCL'' del sensor al SCL del Arduino Nano (pin ''A5'') y el terminal ''SDA'' del sensor al SDA del Arduino Nano (pin ''A4''). Programamos el microcontrolador con el siguiente código para leer los valores del sensor y los mostramos por puerto serie para su visualización. **Comprobado**. Funciona independientemente de si ''S0'' está a ''0'' o a ''1'' y lo mismo con ''S1'': Da siempre los mismos valores. Por ello dejamos S1 a ''0'' que es como tiene que estar en teoría para comunicarse directamente con el sensor sin el MCU. <WRAP center round download>**Librerías necesarias** * {{ doc:tec:lab:bus_i2c:color_gy33_ino:wire.zip |Wire.h}} * {{ doc:tec:lab:bus_i2c:color_gy33_ino:adafruit_tcs34725.zip |Adafruit_TCS34725.h}} </WRAP> <code c 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); } </code> doc/tec/lab/bus_i2c/color_gy33_ino/inicio.txt Última modificación: 2026/03/28 18:48por fepg