Bonjour
débutant sur Arduino, j'essaye un montage simple : le but : 3 boutons poussoir
chacun d'eux doit allumer une led (les autres doivent s'éteindre)
En fait sur 3 leds, une seule doit s'allumer
un Bp pour led verte
un Bp pour led rouge
un Bp pour led jaune
sachant qu'à la mise sous tension, seul la led verte doit être allumée : si on appuie sur le Bp Jaune pou Bp Rouge, la led verte s'éteint et la jaune ou la led rouge s'allume e,n fonction du Bp choisi et ainsi de suite
Ci-joint le code que j'ai essayé mais cela ne fonctionne pas
[code]
#include <OneButton.h>
const byte buttonPin1 = 4; // notre bouton est sur la pin 4 allume la verte
const byte buttonPin2 = 5; // notre bouton est sur la pin 5 allume la rouge
const byte buttonPin3 = 6; // notre bouton est sur la pin 6 allume la jaune
OneButton button1(buttonPin1, true); // true pour le mettre en INPUT_PULLUP
OneButton button2(buttonPin2, true); // true pour le mettre en INPUT_PULLUP
OneButton button3(buttonPin3, true); // true pour le mettre en INPUT_PULLUP
// les pins utilisées pour les LEDs
const byte pinLedVerte = 0;
const byte pinLedRouge = 1;
const byte pinLedJaune = 2;
// la liste des états possible de notre système
// ainsi qu'une variable etatCourant prenant une de ces valeurs
enum {REPOS, ETAT_R, ETAT_V} etatCourant1, etatCourant2, etatCourant3;
// ------------------------------------------------------
// Cette fonction installe l'état initial
// ------------------------------------------------------
void mettreAuRepos()
{
digitalWrite(pinLedVerte, HIGH);
digitalWrite(pinLedRouge, LOW);
digitalWrite(pinLedJaune, LOW);
etatCourant1 = REPOS;
etatCourant2 = REPOS;
etatCourant3 = REPOS;
}
// ------------------------------------------------------
// La fonction de call back, appellée automatiquement quand on clique
// ------------------------------------------------------
void simpleclick1()
{
switch (etatCourant1) {
case REPOS: // on était au repos et on a un appui, on allume la verte
digitalWrite(pinLedVerte, HIGH); // LED rouge ETEINTE, JAUNE eteinte
digitalWrite(pinLedRouge, LOW);
digitalWrite(pinLedJaune, LOW);
etatCourant1 = ETAT_R; // on note le nouvel état de notre système
break;
}
}
void simpleclick2()
{
switch (etatCourant2) {
case REPOS: // on allume la rouge
digitalWrite(pinLedRouge, HIGH); // LED rouge alluméee
digitalWrite(pinLedVerte, LOW);
digitalWrite(pinLedJaune, LOW);
etatCourant2 = ETAT_R; // on note le nouvel état de notre système
break;
}
}
void simpleclick3()
{
switch (etatCourant3) {
case REPOS: // on allume la jaune
digitalWrite(pinLedJaune, LOW); // LED jaune allumee
digitalWrite(pinLedRouge, LOW);
digitalWrite(pinLedVerte, LOW);
etatCourant3 = ETAT_R; // on note le nouvel état de notre système
break;
}
}
// ------------------------------------------------------
// On initialise notre système dans le setup
// ------------------------------------------------------
void setup() {
pinMode(pinLedVerte, OUTPUT);
pinMode(pinLedRouge, OUTPUT);
pinMode(pinLedJaune, OUTPUT);
mettreAuRepos();
button1.attachClick(simpleclick1);
button2.attachClick(simpleclick2);
button3.attachClick(simpleclick3);
}
void loop()
{
button1.tick();
button2.tick();
button3.tick();
}
[/code]
Quelqu'un peut-il m'aider ?
merci d'avance