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
Maintenant je souhaite créer une fonction !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Les chose se compliquent. Pourquoi ma fonction renvoie "0" en permanence ?? :smiley-confuse: l
j'ai besoin d'aide:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Partager