Bonjour à tous !
Jusqu'à présent, j'ai toujours réussi à coder mes énigmes avec la théorie, mais là je sèche ! Je suis sûr que c'est facile en plus ...
Je vous explique le principe !!!
Il y a 16 vis enfoncée au max. Celles-ci appuient sur des boutons. Quand quelqu'un dévisse une vis, le bouton est donc relâché.
Par défaut, j'ai donc 16 bouton en HIGH.
C'est 16 boutons contrôle 16 relais. Quand les boutons sont en HIGH, les relais sont en LOW. Quand les vis bougent, les boutons passent en LOW et les relais en HIGH.
Jusqu'ici c'est simple, mais là où ça se complique, c'est que certains boutons contrôlent le même relais !
Du coup imaginons, le bouton 1 et 2, contrôlent tous les 2 le relais 6, au pif ...
A l'état initial, le relais 6 est LOW. Je dévisse la vis 1, le relais passe en HIGH. Je revisse la vis, il repasse en LOW.
Idem pour la vis 2.
PAR CONTRE, si je dévisse la vis 1, le relais passe en HIGH et si ensuite je dévisse la vis 2, le relais passe en LOW !!!
Et c'est là que je galèèèère !
Je ne peux évidemment pas enchaîner les :
if (etatBouton1 == HIGH) {
digitalWrite(relayPin6,LOW);
}
else
{
digitalWrite(relayPin6,HIGH);
}
if (etatBouton2 == HIGH) {
digitalWrite(relayPin6,LOW);
}
else
{
digitalWrite(relayPin6,HIGH);
}
Je peux enchaîner les if en comparant les boutons qui contrôlent le même relais :
if (etatBouton1 == HIGH)
{
if (etatBouton2 == LOW)
{
digitalWrite(relayPin1,HIGH);
}
else
{
digitalWrite(relayPin1,LOW);
}
}
else
{
if (etatBouton2 == LOW)
{
digitalWrite(relayPin1,LOW);
}
else
{
digitalWrite(relayPin1,HIGH);
}
}
Sauf que j'ai certains relais sont contrôlés par 5 boutons !!! Et j'ai pas trop envie d'enchaîner un if dans un if dans un if ...
Je me dis qu'il y a surement un truc plus simple auquel je ne pense pas.
En espérant que ce soit le cas =p
Merci !