Regulation par train d'onde

Bonjour.

Je voudrai faire une régulation d'une résistance de four en 240V AC à partir d'un relais statique avec détection de passage de la tension par zéro (zero crossing detection).

Je voudais faire un PID et un genre de PWM mais à fréquence beaucoup plus faible que les 490Hz disponible sur Arduino.

Quelqu'un aurais t-il quelques idées et conseil pour m'orienter et comment faire celà ?

Tout ce que je troue sont des régulations par décalage de phase, type gradateur par angle de phase.

Merci.

Bonsoir,
Un petit exemple qui permet de faire une commande PWM via un relais statique qui permet d’avoir entre 0 et 255 périodes complètes de 20 ms.

#define PERIODE_PWM 5100L               //période pwm en ms
#define SORTIE_RELAIS 12                //pin 12
int duty = 0;                           //impulsion PWM (0<= duty <= 255)
long millisActuel = 0L;                 //millis actuel

/* ************************************************************************** */
void cdePwm(){
/* ************************************************************************** */
/*simule une sortie pwm pour la commande du relais statique*/
  millisActuel = millis();              //sauve millis()
  if(millisActuel - millisPrecedentPwm >= PERIODE_PWM){
    millisPrecedentPwm = millisActuel;  //sauve millis()
    digitalWrite(SORTIE_RELAIS, HIGH);  //sortie active
  }else if(millisActuel - millisPrecedentPwm >= PERIODE_PWM * duty / 255){
                                        //fin duty > à durée impulsion
    if(duty == 255){                    //chauffage total
      digitalWrite(SORTIE_RELAIS, HIGH);//sortie active
    } else {
      digitalWrite(SORTIE_RELAIS, LOW); //sortie inactive
    }
  }
}

@+

Je regarde ce code et ne comprend pas :

5100L

ou

long millisActuel = 0L;

Que signifie ce L à la fin ?

"long"

Bonsoir, En complément de la réponse de Xavier, tu trouveras des explications sur le type Long, voir l'exemple.