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
const int boutonPin = 2; //pin pour le bouton
const int ledPin = 13; //pin pour la lEDint interrupteur = LOW; //valeur de l'interrupeteur
int etatBouton = 0; //valeur pour changement d'état du bouton
int boutonState = 0; //etat fugitif du boutonvoid 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 complique pourquoi ma fonction renvoie "0" en permanence ?? l
j'ai besoin d'aide:
const int boutonPin = 2; //pin pour le bouton
const int ledPin = 13; //pin pour la lEDvoid 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);
}