Tu déplaces cette ligne avant le setup
Adafruit_TCS34725 tcs0 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); // initialisation du capteur N°0
idem pour tcs1
Merci beaucoup à tous pour votre aide
![]()
j'ai enfin un programme qui fonctionne !! bon très certainement pas optimisé mais ça fonctionne, je poste le code pour ceux a qui ça intéresse :
#include <Wire.h>
#include "Adafruit_TCS34725.h"
#include <SparkFun_I2C_Mux_Arduino_Library.h>
QWIICMUX myMux;
Adafruit_TCS34725 tcs0 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); // initialisation du capteur N°0
Adafruit_TCS34725 tcs1 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); // initialisation du capteur N°1
/* Example code for the Adafruit TCS34725 breakout library */
/* Connect SCL to analog 5
Connect SDA to analog 4
Connect VDD to 3.3V DC
Connect GROUND to common ground */
void setup(void) {
Serial.begin(9600);
while (!Serial);
Wire.begin();
if (myMux.begin() == false)
{
Serial.println("Mux not detected. Freezing...");
while (1)
;
}
Serial.println("Mux detected");
// **** Initialisation capteur N°0 ****
TCA9548A(0); // ouverture du port 0 du multiplexeur à l'adresse 0x70
// initialisation du capteur N°0
Adafruit_TCS34725 tcs0 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); // initialisation du capteur N°0
delay(500);
if (tcs0.begin()) {
Serial.println("Capteur N°0 disponible");
} else {
Serial.println("No TCS34725 N°0 found ... check your connections");
while (1);
}
// **** Initialisation capteur N°1 ****
TCA9548A(1); // ouverture du port 1 du multiplexeur à l'adresse 0x70
// initialisation du capteur N°1
Adafruit_TCS34725 tcs1 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); // initialisation du capteur N°1
delay(500);
if (tcs1.begin()) {
Serial.println("Capteur N°1 disponible");
} else {
Serial.println("No TCS34725 N°1 found ... check your connections");
while (1);
}
}
void loop(void) {
TCA9548A(0); // ouverture du port 0 du multiplexeur à l'adresse 0x70
uint16_t CR0, CV0, CB0, C0;
tcs0.getRawData(&CR0, &CV0, &CB0, &C0);
delay(500);
Serial.print("R0: "); Serial.print(CR0, DEC); Serial.print(" ");
Serial.print("V0: "); Serial.print(CV0, DEC); Serial.print(" ");
Serial.print("B0: "); Serial.print(CB0, DEC); Serial.print(" ");
Serial.print("C0: "); Serial.print(C0, DEC); Serial.print(" ");
Serial.println(" ");
delay(1000);
TCA9548A(1); // ouverture du port 1 du multiplexeur à l'adresse 0x70
uint16_t CR1, CV1, CB1, C1;
tcs1.getRawData(&CR1, &CV1, &CB1, &C1);
delay(500);
Serial.print("R1: "); Serial.print(CR1, DEC); Serial.print(" ");
Serial.print("V1: "); Serial.print(CV1, DEC); Serial.print(" ");
Serial.print("B1: "); Serial.print(CB1, DEC); Serial.print(" ");
Serial.print("C1: "); Serial.print(C1, DEC); Serial.print(" ");
Serial.println(" ");
delay(1000);
}
void TCA9548A(uint8_t bus){
Wire.beginTransmission(0x70);
Wire.write(1<<bus);
Wire.endTransmission();
}