Bonjour,

Je suis face à un casse-tête insolvable. J'ai 1 LED et 1 bouton poussoir.
Quand j'allume mon Arduino, je veux que ma LED clignote, puis la rendre fixe après avoir pressé un bouton poussoir.

1) Pas d'appui sur le bouton poussoir: la led clignote à interval régulier.
2) J'appui sur le bouton poussoir et le relâche: la led ne clignote plus et reste à l'état haut en continu.

Je ne sais pas comment résoudre ce problème... Rien y fait. La fonction millis() tourne en boucle sans interruption et delay ne semble pas être la solution...

Comment faire ? Je n'ai pas spécialement de programme à vous proposer à part celui-ci, vraiment barbare.


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
 
 
//Led clignotante n°1
int ledPin = 2; 
int ledValue = LOW;
long ledStartTime = 0;          
long ledBlinkInterval = 250;  
int buttonPin = 3;             
int buttonValue = HIGH;
long buttonPressTime = 0; 
 
 
void setup()
{
 pinMode(ledPin, OUTPUT); 
 pinMode(ledPin1, OUTPUT); 
 
 digitalWrite(ledPin1, LOW);
 
}
 
void loop()
 
 
 
//Led clignotante n°1
{
 buttonValue = digitalRead(buttonPin);
 
 
 // Bouton non pressé
 if (buttonValue==HIGH && buttonPressTime!=0) {
   ledBlinkInterval = millis() - buttonPressTime;  
   buttonPressTime = 0;                           
 }
 
 // Je presse et relâche le bouton
 if (buttonValue==LOW) {
   ledBlinkInterval = 0;
 }
 
 
 if (millis() - ledStartTime > ledBlinkInterval) {
   ledStartTime = millis(); 
 
   if (ledValue == LOW)
     ledValue = HIGH;
   else
     ledValue = LOW;
 
   digitalWrite(ledPin, ledValue);
 }
 
}
J'amène ma fonctionne millis() à un intervalle de 0 entre deux états pour la garder fixe en mettant

Mais ça me semble faux car si la led se fige, sa luminosité diminue et je ne peux pas agir avec d'autres leds que je souhaite ajouter et allumer quand cette dernière passe en état fixe...



Je veux repartir du tout début. Si quelqu'un pouvait m'aider........