1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
const int RELAIS1 = 0; //declaration broche 0 output
boolean etatRelais1 = 0; // Etat du relais (on / off)
// Numéro de la pin du bouton
const int pinBtn = 13;
// État d'activation de la tempo
int tempoActive = 0;
// Temps à l'activation de la tempo
unsigned long tempoDepart = 0;
// Temps à l'activation de la tempo pause
unsigned long tempoPause = 0;
// État d'activation de la tempo Pause
int tempoPauseActive = 0;
void setup() {
pinMode(RELAIS1, OUTPUT); //Configure la broche RELAIS en sortie
digitalWrite(RELAIS1,1); // met la broche de commande dans l'état voulu
pinMode(pinBtn, INPUT);
}
void loop() {
// Si le bouton est enfoncé,
if ( (digitalRead(pinBtn) == 1) && (tempoActive==0) ) {
// Alors on active la temporisation
tempoActive = 1;
tempoDepart = millis();
digitalWrite(RELAIS1,0); // met la broche de commande dans l'état voulu
}
// Si la temporisation est active,
if ( (tempoActive) && (tempoPauseActive==0) && ((millis() - tempoDepart + tempoPause) >= 10000 ) ) { {
digitalWrite(RELAIS1,1); // met la broche de commande dans l'état voulu
// Et on désactive la temporisation pour ne pas afficher ce message une seconde fois
tempoActive = 0;
tempoPause = 0;
}
}
if ( (digitalRead(pinBtn) == 1)&& (tempoPauseActive==0) && (tempoActive) && (millis() - (tempoDepart+200) < 10000) ){
tempoPause = millis();
tempoPauseActive = 1;
digitalWrite(RELAIS1,1); // met la broche de commande dans l'état voulu
}
if ( (digitalRead(pinBtn) == 1) && (tempoPauseActive) && (tempoActive) ) {
tempoPauseActive = 0;
digitalWrite(RELAIS1,0); // met la broche de commande dans l'état voulu
}
} |
Partager