// Se pide programar un perfil trapezoidal, en este caso que esté subiendo en rampa 0-255 durante un tiempo t1 (1s), se mantenga a 255 durante t2(1s) y descienda de 255-0 en t3(1s)
// Por cada iteración del bucle, el dutycicle subirá 1, y el delay será de 3.92ms
const int ledChannel = 0;
const int ledPin = 13;
const int frequency = 5000;
const int resolution = 8;
void setup() {
Serial.begin(115200);
ledcSetup(ledChannel, frequency, resolution);
ledcAttachPin(ledPin, ledChannel);
}
void loop() {
Serial.println("Inicio de la rampa 1");
// Incremento de 0-255, durante un tiempo de 1s : 1/255 = 3.92ms
for (int dutyCycle = 0; dutyCycle <= 255; dutyCycle++) {
ledcWrite(ledChannel, dutyCycle);
Serial.println(dutyCycle);
delay(3.92);
}
Serial.println("Fin de la rampa 1");
Serial.println("Inicio señal cte");
// Mantenimiento de la señal 255-255 duante un tiempo de 1s
for (int i = 0; i < 255; i++) {
Serial.println(255);
delay(3.92);
}
Serial.println("Fin señal cte");
Serial.println("Inicio de la rampa 2");
// Decremento de 255-0, durante un tiempo de 1s : 1/255 = 3.92ms
for (int dutyCycle = 255; dutyCycle >= 0; dutyCycle--) {
ledcWrite(ledChannel, dutyCycle);
Serial.println(dutyCycle);
delay(3.92);
}
Serial.println("Fin de la rampa 2");
delay(10);
}