Bonjour
je souhaite par le biais d'un seul BP, allumer une led : à savoir
au repos led verte allumée, 1 pression : led rouge allumée et led verte eteinte, une autre pression led rouge éteinte et led verte allumée, etc... avec un attiny 84.
mon code fonctionne bien pour un seul BP mais en le modifiant (en doublant) pour 2 BP, impossible de débloquer. Je suis novice en la matière
Si quelqu'un peut m'aider... merci d'avance
voici mon code
[code]
#include <OneButton.h>
const byte buttonPin = 0; // notre bouton est sur la pin 0
const byte buttonPin2 = 1; // notre bouton est sur la pin 1
OneButton button(buttonPin,buttonPin2, true); // true pour le mettre en INPUT_PULLUP
// les pins utilisées pour les LEDs
const byte pinLedRouge = 2;
const byte pinLedVerte = 3;
const byte pinLedRouge2 = 4;
const byte pinLedVerte2 = 5;
// 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,REPOS2, ETAT_R2, ETAT_V2} etatCourant, etatCourant2;
// ------------------------------------------------------
// Cette fonction installe l'état initial
// ------------------------------------------------------
void mettreAuRepos()
{
digitalWrite(pinLedRouge, LOW);
digitalWrite(pinLedVerte, HIGH);
digitalWrite(pinLedRouge2, HIGH);
digitalWrite(pinLedVerte2, HIGH);
etatCourant = REPOS;
etatCourant2 = REPOS2;
}
// ------------------------------------------------------
// La fonction de call back, appellée automatiquement quand on clique
// ------------------------------------------------------
void simpleclick()
{
switch (etatCourant) {
case REPOS: // on était au repos et on a un appui, on allume la rouge
digitalWrite(pinLedRouge, HIGH); // LED rouge alimentée
digitalWrite(pinLedVerte, LOW); // LED verte eteinte
etatCourant = ETAT_R; // on note le nouvel état de notre système
break;
case ETAT_R:// rouge allumées, on a un appui,ETEINTE
digitalWrite(pinLedRouge, LOW); // LED rouge ETEINTE
digitalWrite(pinLedVerte, HIGH); // LED verte alimentée
etatCourant = ETAT_V; // on note le nouvel état de notre système
break;
case ETAT_V:// verte allumées, on a un appui,ETEINTE
digitalWrite(pinLedVerte, LOW); // LED verte eteinte
digitalWrite(pinLedRouge, HIGH); // LED rouge all
etatCourant = ETAT_R; // on note le nouvel état de notre système
break;
}
{
switch (etatCourant2) {
case REPOS2: // on était au repos et on a un appui, on allume la rouge
digitalWrite(pinLedRouge2, HIGH); // LED rouge alimentée
digitalWrite(pinLedVerte2, LOW); // LED verte eteinte
etatCourant = ETAT_R2; // on note le nouvel état de notre système
break;
case ETAT_R2:// rouge allumées, on a un appui,ETEINTE
digitalWrite(pinLedRouge2, LOW); // LED rouge ETEINTE
digitalWrite(pinLedVerte2, HIGH); // LED verte alimentée
etatCourant = ETAT_V2; // on note le nouvel état de notre système
break;
case ETAT_V2:// verte allumées, on a un appui,ETEINTE
digitalWrite(pinLedVerte2, LOW); // LED verte eteinte
digitalWrite(pinLedRouge2, HIGH); // LED rouge all
etatCourant = ETAT_R2; // on note le nouvel état de notre système
break;
}
}
// ------------------------------------------------------
// On initialise notre système dans le setup
// ------------------------------------------------------
void setup() {
pinMode (pinLedRouge, OUTPUT);
pinMode(pinLedVerte, OUTPUT);
pinMode (pinLedRouge2, OUTPUT);
pinMode(pinLedVerte2, OUTPUT);
mettreAuRepos();
button.attachClick(simpleclick);
}
void loop()
[/code]