El atenuador de luz parpadea en esp32, mientras que no en esp8266

0

Estoy tratando de crear un módulo de atenuación con un detector de cruce por cero para luces incandescentes utilizando el siguiente código que está disponible en la red.

int dimming = 128;  // Dimming level (0-128)  0 = ON, 128 = OFF
void setup() {
 configureIOPins();
 // put your setup code here, to run once:
 Serial.begin(115200);
}

void configureIOPins() {
     pinMode(D8, INPUT);  // for ZCD input
     pinMode(D5, OUTPUT); // for load output
     attachInterrupt(D8, zero_crosss_int, RISING);
}

void zero_crosss_int()  //function to be fired at the zero crossing to dim the light
{
 // Firing angle calculation : 1 full 50Hz wave =1/50=20ms
 // Every zerocrossing thus: (50Hz)-> 10ms (1/2 Cycle)
 // For 60Hz => 8.33ms (10.000/120)
 // 10ms=10000us
 // (10000us - 10us) / 128 = 75 (Approx) For 60Hz =>65

 int dimtime = (75*dimming);    // For 60Hz =>65
 delayMicroseconds(dimtime);    // Wait till firing the TRIAC
 digitalWrite(D5, HIGH);        // Fire the TRIAC
 delayMicroseconds(35);         // triac On propogation delay
 digitalWrite(D5, LOW);         // No longer trigger the TRIAC (the next zero crossing will switch it off) TRIAC
}

void loop() {
 for (int i=5; i <= 128; i++){
     dimming=i;
     delay(10);
  }
}

El código anterior funciona todo encanto cuando uso el módulo esp8266 NodeMCU, pero falla si uso el módulo esp32 con parpadeo de luz. A continuación se muestra el esquema del circuito que utilicé.

Según mi análisis, siento que esp32 attachInterrupt se invoca incorrectamente como si utilizara RISING , D5 el pin debería ser '1' cada vez que ingrese el método zero_cross_int , que es el caso con esp8266 pero no con esp32.

¿Pero no puedo entender por qué sucede esto? Es porque la frecuencia de CPU de esp32 es más alta que la de esp8266 o por cualquier otra razón.

Soy un novato, por lo que podría estar equivocado en la parte de la frecuencia de la CPU, déjeme en claro por eso. : D

Sería una gran ayuda para obtener información sobre esto.

    
pregunta Mayank Agarwal

0 respuestas

Lea otras preguntas en las etiquetas