Last active
September 8, 2018 02:59
-
-
Save danjperron/807d19cd362733e797fff8bfacd394d1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const int GAUCHE = 11; | |
const int BARRE = 10; | |
const int DROITE = 9; | |
const int button = A0; | |
const int DEFAULT_DEBOUNCE_MS = 20; | |
int Val; | |
int oldVal=HIGH; | |
int counter = 1; | |
int delay1 = 1250; | |
int mscounter=0; //compteur de milli seconde | |
int mode=0; // quel est le mode des flashers | |
void setup() { | |
pinMode(GAUCHE,OUTPUT); | |
pinMode(BARRE,OUTPUT); | |
pinMode(DROITE,OUTPUT); | |
pinMode(button,INPUT); | |
} | |
int debounce=DEFAULT_DEBOUNCE_MS; | |
void loop() { | |
// partie de lecture du bouton avec debounce | |
Val = digitalRead(button); | |
if(Val != oldVal) | |
{ | |
if(debounce == 0) | |
{ | |
if(Val == LOW) | |
counter++; | |
oldVal= val; | |
} | |
else | |
debounce--; | |
} | |
else | |
debounce=DEFAULT_DEBOUNCE_MS; | |
// verification du compteur | |
if(counter>4) | |
counter=1; | |
// commande selon compteur | |
// il serait mieux de faire des fonctions pour chaque commande | |
// ok pour le compteur de 1 seconde | |
// il est possible de partir un timer en interrupt | |
// ou de tout simplement faire un delay 1ms | |
// et d'ajuster un compteur pour les secondes | |
// de cette façcon tu ne bloques pas ta vérification de bouton | |
mscounter++; | |
if(mscounter < delay1) | |
mode = 0; | |
else if(mscounter < (2*delay1)) | |
mode = 1; | |
else | |
{ | |
mode = 0; // ok deux modes seulement | |
mscounter=0; | |
} | |
if (counter == 1){ | |
if(mode == 0) | |
{ | |
digitalWrite(GAUCHE,HIGH); | |
digitalWrite(BARRE,HIGH); | |
digitalWrite(DROITE,LOW); | |
} | |
else | |
{ | |
digitalWrite(GAUCHE, LOW); | |
digitalWrite(BARRE, LOW); | |
digitalWrite(DROITE, LOW); | |
} | |
} | |
if (counter == 2){ | |
if(mode == 0) | |
{ | |
digitalWrite(GAUCHE,LOW); | |
digitalWrite(BARRE,HIGH); | |
digitalWrite(DROITE,LOW); | |
} | |
else | |
{ | |
digitalWrite(GAUCHE, LOW); | |
digitalWrite(BARRE, LOW); | |
digitalWrite(DROITE, LOW); | |
} | |
} | |
if (counter == 3){ | |
if(mode ==0) | |
{ | |
digitalWrite(GAUCHE,LOW); | |
digitalWrite(BARRE,HIGH); | |
digitalWrite(DROITE,HIGH); | |
} | |
else | |
{ | |
digitalWrite(GAUCHE, LOW); | |
digitalWrite(BARRE, LOW); | |
digitalWrite(DROITE, LOW); | |
} | |
} | |
if (counter == 4){ | |
if(mode ==0) | |
{ | |
digitalWrite(GAUCHE,HIGH); | |
digitalWrite(BARRE,HIGH); | |
digitalWrite(DROITE,HIGH); | |
} | |
else | |
{ | |
digitalWrite(GAUCHE, LOW); | |
digitalWrite(BARRE, LOW); | |
digitalWrite(DROITE, LOW); | |
} | |
} | |
delay(1); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment