Bonjour,
j'espère que mon message passera et que je n'aurais pas de retour négatif ...
(Hier, 09:54 AM)michy a écrit : "mon ssr gère déjà le zéro cross, j’ai juste « normalement » à ajouter la détection de passage à zéro"
Si le SSR gère le ZC, c'est pas la peine de chercher à le récupérer aussi ...
est ce qu'on ne risque pas de louper des périodes si on ne détecte pas, pour se synchroniser en quelques sortes ?
voila un bout de mon code arduino :
Code :
if (now - windowStart >= WINDOW_MS) {
windowStart += WINDOW_MS;
}
unsigned long onTime = (WINDOW_MS * (unsigned long)powerPercent) / 100;
if ((now - windowStart) < onTime) {
digitalWrite(SSR_PIN, HIGH); // cycles ON
} else {
digitalWrite(SSR_PIN, LOW); // cycles OFF
}
powerPercent est récupéré de mon application web qui sous API envoi le pourcentage à lancer.
Exemple :
Code :
{"surplus_chauffeeau":100,"production":2.5,"consumption":0.4,"surplus":2.1}
code serveur qui permet de générer le pourcentage de la puissance à envoyer :
Code :
/**
* Méthode qui renvoie le pourcentage du surplus par rapport à la puissance du chauffe eau
*
* @param float $production
* @param float $consumption
* @return int
*/
public static function estOKDeclenchementChauffeEau(float $production, float $consumption): int
{
// *** gestion données à 0
if($production <= 0 || $consumption <= 0){
return 0;
}
$surplus = round($production - $consumption,1);
// *** on produit plus qu'on consomme
if($surplus > 0){
// *** assez pour lancer le chauffe eau
if($surplus >= Site::$ChauffeEauSeuilDeclenchement) {
// *** on est entre la consommation et 100%
if($surplus <= Site::$ChauffeEauPuissance){
return round(($surplus / Site::$ChauffeEauPuissance) * 100);
} else {
// *** on est à au moins 100%
return 100;
}
} else {
// *** mais pas assez pour lancer le chauffe eau
return -99;
}
} else {
if($surplus <= Site::$ChauffeEauSeuilDeclenchementHaut*-1){
// *** on coupe car on dépasse la production + limite
return 0;
} else {
// *** on est dans la limite autorisé
return -99;
}
}
}
enfin :
(Hier, 09:54 AM)michy a écrit : extraire ces parties de programme pour réduire drastiquement la taille du programme du RMS et que ça compile sur du UNO, c'est faisable (mais est ce que ça en vaut la peine ?)
je n'ai pas extrait de code du programme F1ATB, il me manquait quelques connaissances en "chauffe eau", j'ai juste récupéré la logique multi sinus expliqué sur ce site et avec l'aide de vos explications j'ai un peu réfléchi pour aboutir à un résultat satisfaisant. J'avais déjà conçu une application web pour suivre la production de mes panneaux + météo + stats.
Je trouve cela un peu plus gratifiant que d'acheter, copier coller un programme et faire 2-3 clics pour le configurer.
quand on est passionné d'électronique et ingénieur en développement de métier on essaie de créer les choses soit même et puis ça occupe pendant les vacances

.