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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| const int button = 7;
int compteur = 0;
const int S0 = 4;
const int S1 = 3;
const int S2 = 2;
int state0; //Il s'agit de la variable qui lira l'état de S0
int state1; //Il s'agit de la variable qui lira l'état de S1
int state2; //Il s'agit de la variable qui lira l'état de S2
void setup() {
// put your setup code here, to run once:
pinMode(button, INPUT);
pinMode(S0 , OUTPUT);
pinMode(S1 , OUTPUT);
pinMode(S2 , OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int buttonstate = digitalRead(button);
delay(100); //On éxecute un delay de 100 ms pour éviter les rebonds
state0 = digitalRead(S0);
state1 = digitalRead(S1);
state2 = digitalRead(S2);
if (buttonstate == HIGH)
{
if (compteur == 6)
{
compteur = 0;
}
else
{
compteur = compteur + 1; //On utilise un compteur pour sélectionner les entrées
//On incrémente le compteur de 1 afin d'incrémenter la combinaison envoyée au select du multiplexeur
}
}
if (compteur == 1)
{
digitalWrite(S0,LOW);
digitalWrite(S1,LOW);
digitalWrite(S2,LOW);
}
if (compteur == 2)
{
digitalWrite(S0,LOW);
digitalWrite(S1,LOW);
digitalWrite(S2,HIGH);
}
if (compteur == 3)
{
digitalWrite(S0,LOW);
digitalWrite(S1,HIGH);
digitalWrite(S2,LOW);
}
if (compteur == 4)
{
digitalWrite(S0,LOW);
digitalWrite(S1,HIGH);
digitalWrite(S2,HIGH);
}
if (compteur == 5)
{
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
digitalWrite(S2,LOW);
}
if ((state0 == LOW)&&(state1 == LOW)&&(state2 == LOW))
{
analogWrite(12,980);
}
if ((state0 == LOW)&&(state1 == LOW)&&(state2 == HIGH))
{
analogWrite(12,490);
delay(2000);
analogWrite(12,0);
}
if ((state0 == LOW)&&(state1 == HIGH)&&(state2 == LOW))
{
analogWrite(12,245);
}
if ((state0 == LOW)&&(state1 == HIGH)&&(state2 == HIGH))
{
analogWrite(12,122);
}
if ((state0 == HIGH)&&(state1 == LOW)&&(state2 == HIGH))
{
analogWrite(12,61);
}
Serial.print(digitalRead(12));
} |
Partager