Ma première fonction ne fonctionne pas
Bonjour,
j'ai ce petit bout de code qui créer un ON/OFF avec un poussoir.
si on appui la LED s'allume est reste allumé si on relâche le bouton.
Si on appui encore une fois la LED s'éteint.
ça fonctionne parfaitement
Code:
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
| const int boutonPin = 2; //pin pour le bouton
const int ledPin = 13; //pin pour la lED
int interrupteur = LOW; //valeur de l'interrupeteur
int etatBouton = 0; //valeur pour changement d'état du bouton
int boutonState = 0; //etat fugitif du bouton
void setup() {
Serial.begin(9600);
// Initialisation de la LED en sortie
pinMode(ledPin, OUTPUT);
// Initialisation du bouton en entrée
pinMode(boutonPin, INPUT);
}
void loop(){
Serial.println(interrupteur);
// Lecture de l'état du bouton
boutonState = digitalRead(boutonPin);
//On regarde si le bouton est pressé
if (boutonState == HIGH) {
//on regarde si il y a un changement d'état
if (etatBouton == 1) {
// on change l'état du bouton
interrupteur=!interrupteur;
// on reinitialise le etatBouton
etatBouton=0;
// on affiche l'état de l'interupteur virtuel sur la led
digitalWrite(ledPin, interrupteur);
delay(50);
}
} else {
//le bouton n'est pas pressé, on active le etatBouton
etatBouton=1;
}
} |
Maintenant je souhaite créer une fonction !
Les chose se compliquent. Pourquoi ma fonction renvoie "0" en permanence ?? :smiley-confuse: l
j'ai besoin d'aide:
Code:
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
| const int boutonPin = 2; //pin pour le bouton
const int ledPin = 13; //pin pour la lED
void setup() {
Serial.begin(9600);
// Initialisation de la LED en sortie
pinMode(ledPin, OUTPUT);
// Initialisation du bouton en entrée
pinMode(boutonPin, INPUT);
}
void loop(){
Serial.println(interrupteur());
}
bool interrupteur() {
bool interrupteur = LOW;//valeur de l'interrupeteur
int etatBouton = 0; //valeur pour changement d'état du bouton
int boutonState = 0;//Dernier etat du bouton
// Lecture de l'état du bouton
boutonState = digitalRead(boutonPin);
if (boutonState == HIGH) {
//si il y a un changement d'état
if (etatBouton == 1) {
// on change l'état du bouton
interrupteur=!interrupteur;
// on reinitialise le etatBouton
etatBouton=0;
}
}
else {
//le bouton n'est pas pressé, on active le etatBouton
etatBouton=1;
}
return (interrupteur);
} |