Bonsoir,
voilà j'aimerais intégrer dans mon sketch une fonction qui ferait varier le rapport cyclique du clignotement d'une led
j'ai tripatouiller à ma sauce le code de blink avec Millis()
qui fonctionne et qui fait ce que je veux
// Led clignotant avec rapport cyclique reglable
const int ledpin = 13; // n° de la Led de la carte
const int constante_temps = 1500; // rapport de clignotement , constante_temps = Led low, constante_temps =hight
const int long_Cycle_temps = 3000; // longueur du cycle de clignotement
// ici un cycle de 3000 ms avec 1500ms d'extinction
unsigned long mtempsAllumage = 0; // mémorisation du temps d'allumage
unsigned long mtempsEteint = 0; // mémorisation du temps d’extinction
void setup() {
pinMode(ledpin, OUTPUT); // la broche "13" est une sortie
}
void loop() {
// ne bloque pas le programme
unsigned long temps = millis(); // lecture du temps système, utiliser une variable comme "temps" permet de l'utiliser pour d'autres action dans le programme
if ( temps >= mtempsAllumage && Led) // si le temps d'allumage est écoulé et Led allumé
{
digitalWrite( ledpin , Led); // allume la led selon l'état du bit "Led"
Led = !Led; // inverse l'état de "Led"
mtempsAllumage = mtempsAllumage + (long_Cycle_temps - constante_temps); // mémorise le temps + constante
mtempsEteint = mtempsEteint + (long_Cycle_temps - constante_temps);
}
if ( temps >= mtempsEteint && !Led ) // si le temps d'extinction est écoulé et Led eteinte
{
digitalWrite( ledpin , Led); // allume la led selon l'état du bit "Led"
Led = !Led; // inverse l'état de "Led"
mtempsEteint = mtempsEteint + constante_temps; // mémorise le temps +constante
mtempsAllumage = mtempsAllumage + constante_temps;
}
}
je voudrais savoir s'il est possible de simplifier ce code?
je pensais à la fonction "modulo" mais je ne vois pas comment l’intégrer .
merci de vos conseils