/* en respuesta a "Problema de pines PWM"
/ https://forum.arduino.cc/t/problema-de-pines-pwm/1376359
*/
const int PWM_OUT = 3;
const int SALTO_BRILLO = 3;
const unsigned long INTERVALO = 10000UL; // microsegundos
void setup() {
for (int pin = 4; pin <= 13; pin++) {
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH); // "deshabilita" el LED conectado a pin
}
}
void loop() {
// *** Ping ***
for (int pin = 4; pin <= 13; pin++) {
digitalWrite(pin, LOW); // "habilita" el LED conectado al pin "pin"
for (int brillo = 0; brillo < 256; brillo += SALTO_BRILLO){ // sube el brillo del LED seleccionado
analogWrite(PWM_OUT, brillo);
delayMicroseconds(INTERVALO);
}
for (int brillo = 255; brillo >= 0; brillo -= SALTO_BRILLO){ // baja el brillo del LED seleccionado
analogWrite(PWM_OUT, brillo);
delayMicroseconds(INTERVALO);
}
digitalWrite(pin, HIGH); // "deshabilita" el LED conectado al pin "pin"
}
// *** Pong ***
for (int pin = 12; pin >= 5; pin--) {
digitalWrite(pin, LOW); // "habilita" el LED conectado al pin "pin"
for (int brillo = 0; brillo < 256; brillo += SALTO_BRILLO){ // sube el brillo del LED seleccionado
analogWrite(PWM_OUT, brillo);
delayMicroseconds(INTERVALO);
}
for (int brillo = 255; brillo >= 0; brillo -= SALTO_BRILLO){ // baja el brillo del LED seleccionado
analogWrite(PWM_OUT, brillo);
delayMicroseconds(INTERVALO);
}
digitalWrite(pin, HIGH); // "deshabilita" el LED conectado al pin "pin"
}
}