#define ledChannel 0
#define pinSalida 5
#define frecuency 500 //500Hz
#define resolution 12
int dutycycle = 0;
void setup() {
Serial.begin(115200);
pinMode(pinSalida, OUTPUT);
ledcSetup(ledChannel, frecuency, resolution);
ledcAttachPin(pinSalida, ledChannel);
Serial.println("Numero de 12 bits a transmitir: ");
Serial.write(dutycycle);
}
void loop() {
//incremento
for(dutycycle; dutycycle <= 4095; dutycycle++){
ledcWrite(ledChannel, dutycycle);
delay(10);
}
//decremento
for(dutycycle; dutycycle >= 0; dutycycle--){
ledcWrite(ledChannel, dutycycle);
delay(10);
}
}
//Se desea transmitir un valor numérico de 12 bits (0...4095) entre dos microcontroladores que está aislados mediante un optoacoplador. La mejor opción para realizar esto es generar una señal PWM cuyo ancho de pulso sea equivalente al valor numérico que se desea transmitir. Además, el optoacoplador soporta una señal con una frecuencia máxima de 500Hz.
//Se pide, generar el código en C para el microcontrolador ESP32 que reciba un valor numérico de 12bits por el puerto serie, y con este valor configure el ancho de pulso de la una señal PWM para que pueda ser transmitida por el optoacoplador al otro microcontrolador.
//La siguiente figura ilustra lo que se solicita.