const int LED_PINS[] = {5,18,19,21};
const int NUM_LEDS = sizeof(LED_PINS)/sizeof(int);
#define OFF (LOW)
#define ON (HIGH)
void setup() {
}
const int PWM_RESOLUTION = 8;
const int PWM_FREQ = 1000;
const int DUTY_MAX = (1 << PWM_RESOLUTION);
void turn_on() {
for ( int i=0; i < NUM_LEDS; i++ ) {
ledcSetup( i /*channel*/, PWM_FREQ, PWM_RESOLUTION );
ledcAttachPin( LED_PINS[i] /*pin*/, i /*channel*/ );
for ( int x=0; x < DUTY_MAX; x++ ) {
ledcWrite( i, x );
delay(5);
}
ledcDetachPin( LED_PINS[i] );
digitalWrite( LED_PINS[i], ON );
delay(200);
}
}
void turn_off() {
for ( int i=0; i < NUM_LEDS; i++ ) {
ledcSetup( i /*channel*/, PWM_FREQ, PWM_RESOLUTION );
ledcAttachPin( LED_PINS[i] /*pin*/, i /*channel*/ );
for ( int x=0; x < DUTY_MAX; x++ ) {
ledcWrite( i, DUTY_MAX-1-x );
delay(5);
}
ledcDetachPin( LED_PINS[i] );
digitalWrite( LED_PINS[i], OFF );
delay(200);
}
}
void loop() {
turn_on();
turn_off();
}