Bonjour a tous
Alors voila j'ai un projet en classe qui me demande de lire des valeur RGB avec un capteur de couleur ( tcs34725 : RGB Color Sensor with IR filter and White LED - TCS34725 : ID 1334 : $7.95 : Adafruit Industries, Unique & fun DIY electronics and kits )
Mais j'ai un probleme : La led de ce capteur est trop puissante et je voudrais la rendre moins puissante, donc j'ai compris grace a mon prof qu'il fallait que j'utilise un port PWM de mon arduino uno pour controler ça mais je sais pas ou la relier sur mon capteur ( peut etre sur le 3.3v port ) mais n plus vu que je suis novice sur le codage arduino je ne sais pas comment faire ça ![]()
Mon programme :
#include <Wire.h>
#include "Adafruit_TCS34725.h"
#define commonAnode true
byte gammatable[256];
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
const int sLED = 3; //Control LED brightness on PWM pin for added calibration
void setup() {
Serial.begin(9600);
Serial.println("Color View Test!");
if (tcs.begin()) {
Serial.println("Found sensor");
} else {
Serial.println("No TCS34725 found ... check your connections");
while (1); // halt!
}
for (int i=0; i<256; i++) {
float x = i;
x /= 255;
x = pow(x, 2.5);
x *= 255;
if (commonAnode) {
gammatable[i] = 255 - x;
} else {
gammatable[i] = x;
}
}
}
void loop()
{
uint16_t clear, red, green, blue;
tcs.setInterrupt(false);
delay(6000);
tcs.getRawData(&red, &green, &blue, &clear);
tcs.setInterrupt(true);
Serial.print("C:\t"); Serial.print(clear);
Serial.print("\tR:\t"); Serial.print(red);
Serial.print("\tG:\t"); Serial.print(green);
Serial.print("\tB:\t"); Serial.print(blue);
uint32_t sum = clear;
float r, g, b;
r = red; r /= sum;
g = green; g /= sum;
b = blue; b /= sum;
r *= 256; g *= 256; b *= 256;
Serial.println();
Serial.print("C:\t"); Serial.print(clear);
Serial.print("\tR255:\t"); Serial.print((int)r);
Serial.print("\tG255:\t"); Serial.print((int)g);
Serial.print("\tB255:\t"); Serial.print((int)b);
Serial.println();
}
En espérant que vous pourrez m'aider, merci ![]()