Bonjour,
Voila je voudrais faire fonctionner deux capteurs de couleur TCS34725 avec un multiplexeur TCA9548A et stoker les valeurs RVB ( R0, V0, B0, R1, V1, B1 )
J'ai essayé de composer un programme avec ce que j'ai trouvé comme exemple mais visiblement j'ai déjà des erreurs de compilation alors que j'en suis qu'a l'initialisation....
Il me dit: variable or field 'TCA9548A' declared void
C'est le nom de mon sous programme, je sent bien une erreur de gros débutant, mais il est vrai que j'ai jamais utilisé de sous programme encore ( honte à moi )
(( Je me demande si ça serait pas plus simple de piloter le TCA9548A via ses entrées A0 A1 et A2,
si je mets A0=5v A1=0v A2=0v je sélectionne mon capteur 1 sur sda1 et scl1 et si je mets A0=0v A1=5v A2=0v je sélectionne mon capteur 2 sur sda2 et scl2 exact?? ))
voici mon programme : ( par avance merci à ceux qui pourront m'aider )
#include <Wire.h>
#include "Adafruit_TCS34725.h"
#include <SparkFun_I2C_Mux_Arduino_Library.h>
/* 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();
// **** Initialisation capteur N°0 ****
TCA9548A(0); // ouverture du port 0 du multiplexeur à l'adresse 0x70
// initialisation du capteur N°0
/* Initialise with default values (int time = 2.4ms, gain = 1x) */
Adafruit_TCS34725 tcs = Adafruit_TCS34725();
/* Initialise with specific int time and gain values */
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X);
delay(500);
if (tcs.begin()) {
Serial.println("Capteur N°0 disponible");
} else {
Serial.println("No TCS34725 found ... check your connections");
while (1);
}
// **** Initialisation capteur N°1 ****
TCA9548A(1); // ouverture du port 0 du multiplexeur à l'adresse 0x70
// initialisation du capteur N°0
/* Initialise with default values (int time = 2.4ms, gain = 1x) */
// Adafruit_TCS34725 tcs = Adafruit_TCS34725();
/* Initialise with specific int time and gain values */
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X);
delay(500);
if (tcs.begin()) {
Serial.println("Capteur N°1 disponible");
} else {
Serial.println("No TCS34725 found ... check your connections");
while (1);
}
int R0 = 0; // Rouge capteur N°0 à zero
int V0 = 0; // Vert capteur N°0 à zero
int B0 = 0; // Bleu capteur N°0 à zero
int R1 = 0; // Rouge capteur N°1 à zero
int V1 = 0; // Vert capteur N°1 à zero
int B1 = 0; // Bleu capteur N°1 à zero
}
void loop(void) {
uint16_t r, g, b, c, colorTemp, lux;
tcs.getRawData(&r, &g, &b, &c);
// colorTemp = tcs.calculateColorTemperature(r, g, b);
colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
lux = tcs.calculateLux(r, g, b);
Serial.print("Color Temp: "); Serial.print(colorTemp, DEC); Serial.print(" K - ");
Serial.print("Lux: "); Serial.print(lux, DEC); Serial.print(" - ");
Serial.print("R: "); Serial.print(r, DEC); Serial.print(" ");
Serial.print("G: "); Serial.print(g, DEC); Serial.print(" ");
Serial.print("B: "); Serial.print(b, DEC); Serial.print(" ");
Serial.print("C: "); Serial.print(c, DEC); Serial.print(" ");
Serial.println(" ");
}
void TCA9548A(unit8_t bus){
Wire.beginTransmission(0x70);
Wire.write(1<<bus);
Wire.endTransmission();
}