Ah que ! comme disait le chanteur !
Je commence à comprendre ... que j'ai encore de nombreux jours de lecture sur Locoduino !
Avant de passer à l'anti rebond, j'ai une dernière erreur que je n'arrive pas à solutionner :
=======================
F:\PROGRAMMATION PERSO\TEST_Boutons-poussoirs-et-Aiguillages\TEST_Boutons-poussoirs-et-Aiguillages.ino: In function 'void loop()':
TEST_Boutons-poussoirs-et-Aiguillages:43:17: error: switch quantity not an integer
switch (bp) // debut de la structure
^
exit status 1
switch quantity not an integer
=======================
Pourtant la variable "bp" est bien en integer !! pourquoi "switch" ne l'accepte pas ? merci pour l'aide, je m'instruis de + en + !
ci-joint le code modifié avec la boucle loop()
// déclaration des boutons poussoirs et des aiguillages
uint8_t bp[] = {5, 6, 7, 8, 9, 10, 11, 12} ; // Boutons poussoirs Normalement Ouvert (NO)
uint8_t aig[] = {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38} ;
int buttonState = 0 ;
int timer = 50 ;
void setup() {
// Initialisation
for (uint8_t bp = 0; bp <= 12; bp++) {
pinMode(bp, INPUT) ;
}
for (uint8_t aig = 0; aig <= 38; aig++) {
pinMode(aig, OUTPUT) ;
}
// initialisation de la gare
// C1_V1
digitalWrite(22, HIGH) ; // aiguillage G1 D
digitalWrite(23, HIGH) ; // aiguillage A1 G
digitalWrite(28, HIGH) ; // aiguillage A3 G
// C2_V2
digitalWrite(31, HIGH) ; // aiguillage B1 G
digitalWrite(36, HIGH) ; // aiguillage B3 D
digitalWrite(26, HIGH) ; // aiguillage A2 D
digitalWrite(29, HIGH) ; // aiguillage A4 G
// C3_V3
digitalWrite(34, HIGH) ; // aiguillage B2 D
digitalWrite(37, HIGH) ; // aiguillage B4 G
}
void loop()
{
loop() ;
{
for (int i = 0; i < 12; i++)
{
buttonState = digitalRead(bp[i]) ;
// l'instruction break est en option
switch (bp) // debut de la structure
{
case 5: // bouton C1_V1
digitalWrite(22, HIGH) ; // aiguillage G1_D
delay(timer);
digitalWrite(23, HIGH) ; // aiguillage A1_G
delay(timer);
digitalWrite(28, HIGH) ; // aiguillage A3_D
break;
case 6: // bouton C1_V2
digitalWrite(22, HIGH) ; // aiguillage G1_D
delay(timer);
digitalWrite(24, HIGH) ; // aiguillage A1_D
delay(timer);
digitalWrite(30, HIGH) ; // aiguillage A4_D
break;
case 7: // bouton C2_V1
digitalWrite(31, HIGH) ; // aiguillage B1_G
delay(timer);
digitalWrite(36, HIGH) ; // aiguillage B3_D
delay(timer);
digitalWrite(25, HIGH) ; // aiguillage A2_G
delay(timer);
digitalWrite(27, HIGH) ; // aiguillage A3_G
break;
case 8: // bouton C2_V2
digitalWrite(31, HIGH) ; // aiguillage B1_G
delay(timer);
digitalWrite(36, HIGH) ; // aiguillage B3_D
delay(timer);
digitalWrite(26, HIGH) ; // aiguillage A2_D
delay(timer);
digitalWrite(29, HIGH) ; // aiguillage A4_G
break;
case 9: // bouton C2_V3
digitalWrite(32, HIGH) ; // aiguillage B1_D
delay(timer);
digitalWrite(38, HIGH) ; // aiguillage B4_D
break;
case 10: // bouton C3_V1
digitalWrite(33, HIGH) ; // aiguillage B2_G
delay(timer) ;
digitalWrite(35, HIGH) ; // aiguillage B3_G
delay(timer) ;
digitalWrite(25, HIGH) ; // aiguillage A2_G
delay(timer) ;
digitalWrite(27, HIGH) ; // aiguillage A3_G
break;
case 11: // bouton C3_V2
digitalWrite(33, HIGH) ; // aiguillage B2_G
delay(timer) ;
digitalWrite(35, HIGH) ; // aiguillage B3_G
delay(timer) ;
digitalWrite(26, HIGH) ; // aiguillage A2_D
delay(timer) ;
digitalWrite(29, HIGH) ; // aiguillage A4_G
break;
case 12: // bouton C3_V3
digitalWrite(33, HIGH) ; // aiguillage B2_G
delay(timer) ;
digitalWrite(37, HIGH) ; // aiguillage B4_G
break;
// default: // cas par d�faut
// si aucune condition n'est vraie, le code par d�faut sera ex�cut�
// le cas default est optionnel (non -obligatoire)
}
}
}
}