Bonsoir,
J'ai ce code pour faire d'un bouton poussoir un interrupteur ON / OFF
Il est fonctionnel et marche nickel.
Ce que je voudrais c'est faire de ce code c'est une fonction afin de simplifier la vie si je manipule plusieurs boutons poussoirs en interrupteurs ON/OFF.
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 const int buttonPin = 2; //pin pour le bouton const int ledPin = 13; //pin pour la lED int interrupteur = LOW; //valeur de l'interrupeteur int toggle = 0; //valeur pour changement d'état du bouton int buttonState = 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(buttonPin, INPUT); } void loop(){ // Lecture de l'état du bouton buttonState = digitalRead(buttonPin); //On regarde si le bouton est pressé if (buttonState == HIGH) { //on regarde si il y a un changement d'état if (toggle == 1) { // on change l'état du bouton interrupteur=!interrupteur; // on reinitialise le toggle toggle=0; // on affiche l'état de l'interupteur virtuel sur la led digitalWrite(ledPin, interrupteur); } } else { //le bouton n'est pas pressé, on active le toggle toggle=1; } }
J'ai donc essayé de créer une fonction et ça me donne le code suivant, malheureusement, ça ne marche pas.
D'après le Serial.print, la valeur interrupteur reste bloquée sur 0.
Je dois avoir un problème de return (d'ailleurs elle ne retourne rien cette fonction...)
Donc si quelqu'un avait une petite idée elle serait bien venue
PS : je débute ....
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 const int buttonPin = 2; //pin pour le bouton const int ledPin = 13; //pin pour la lED int interrupteur = LOW; //valeur de l'interrupeteur int toggle = 0; //valeur pour changement d'état du bouton int buttonState = 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(buttonPin, INPUT); } void loop(){ onOffSwitch(ledPin, buttonPin, toggle, interrupteur); } int onOffSwitch(int ledPin, int buttonPin, int toggle, int interrupteur) { buttonState = digitalRead(buttonPin); // DEBUG Serial.print("buttonState: "); Serial.println(buttonState); //On regarde si le bouton est pressé if (buttonState == HIGH) { //on regarde si il y a un changement d'état if (toggle == 1) { // on change l'état du bouton interrupteur=!interrupteur; // on reinitialise le toggle toggle=0; // on affiche l'état de l'interupteur virtuel sur la led digitalWrite(ledPin, interrupteur); } } else { //le bouton n'est pas pressé, on active le toggle toggle=1; } // DEBUG Serial.print("ledPin : "); Serial.println(ledPin) ; Serial.print("buttonPin : "); Serial.println(buttonPin) ; Serial.print("toogle : "); Serial.println(toggle) ; Serial.print("interrupteur : "); Serial.println(interrupteur) ; }
Partager