aller, c'est mon soir de bontés ]
ci-dessous un exemple de code qui t'aidera sans doute à bien structurer ton code. C'est la structure type que j'emploie dans mes projets domotiques.
/*
* Gromain59
* xPLDuino
*
* Structure type:
* - bit de cadencement
*
* - pre (màj des entrées)
* - calcul
* - post (màj des sorties)
*
*/
//############################### GESTION PULSE ##################################
long prevMillis1000=0;
boolean pulse_1000=0;
long prevMillis100=0;
boolean pulse_100=0;
long prevMillis500=0;
boolean pulse_500=0;
void setup()
{
// initialize the serial communication:
Serial.begin(115200);
Serial.println("exemple de gestion pulse");
}
// acquition de l'état des entrées, pre-calcul
void pre() {
pulse(); // call pulse generation.
}
void scenario() {
// ici les calculs à réaliser
}
// mis à jour des memoires de sorties
void post() {
if(pulse_1000){
Serial.println("déjà 1 seconde !");
}
if(pulse_500){
Serial.println("plus vite !");
}
if(pulse_100){
Serial.println("trop vite !");
}
}
void loop() {
pre(); // Call pre-traitement
scenario();
post(); // Call post-traitment
}
void pulse(){
pulse_1000=0;
if ((millis() - prevMillis1000) >= 1000 || (millis() - prevMillis1000) < 0){
prevMillis1000 = millis();
pulse_1000=1;
}
pulse_100=0;
if ((millis() - prevMillis100) >= 100 || (millis() - prevMillis100) < 0){
prevMillis100 = millis();
pulse_100=1;
}
pulse_500=0;
if ((millis() - prevMillis500) >= 500 || (millis() - prevMillis500) < 0){
prevMillis500 = millis();
pulse_500=1;
}
}
Gromain