const byte ledPins[] = {40, 39, 38}; //define red, green, blue led pins
const byte chns[] = {0, 1, 2}; //define the pwm channels
int red, green, blue;
int frequency = 300; // frequence mini 160hz pour 8 bits de resolution
int resolution = 8;
int delaytime = 5;
int maxrandomize = 255;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32-S3!");
for (int i=0; i<3; i++){
ledcAttach(ledPins[i], frequency, resolution);
}
}
void setColor(int red, int green, int blue) {
// Serial.println((String)"rouge = "+red+" , vert = "+green+" , Bleue = "+blue);
ledcWrite(ledPins[0], 255-red); // la led est une anode commune 0= alumée, 1= eteinte
ledcWrite(ledPins[1], 255-green);
ledcWrite(ledPins[2], 255-blue);
}
void ledincrement(int colorled) {
for (int i=0; i<(maxrandomize+1); i++){
if (colorled==0) {
setColor(i, 0, 0); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
} else if(colorled==1){
setColor(0, i, 0); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
} else if(colorled==2){
setColor(0, 0, i); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
}
}
}
void leddecrement(int colorled) {
for (int i=maxrandomize; i>-1; i--){
if (colorled==0) {
setColor(i, 0, 0); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
} else if(colorled==1){
setColor(0, i, 0); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
} else if(colorled==2){
setColor(0, 0, i); // Red
delay(delaytime);
// Serial.println((String)"i = "+i);
}
}
}
void loop() {
for (int y=0; y<3; y++){
ledincrement(y);
leddecrement(y);
}
delay(delaytime+1000);
setColor(random(0, maxrandomize), random(0, maxrandomize), random(0, maxrandomize));
delay(delaytime+2000);
}