Pause dans un programme

Bonjour à tous !

Je voudrais réaliser un programme dans lequel une led s'allume pendant une seconde lorsqu'on appuis sur le bouton poussoir puis s'éteins jusqu'à ce que l'on appuis une nouvelle fois sur le bouton. Voici ce que j'aimerais faire :

void loop(){
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {     
    
    digitalWrite(ledPin, LOW);  
  } 
  else {
    
    digitalWrite(ledPin, HIGH);                  //La led s'allume...
    Attente (1000);                                    //pendant une seconde...
    DigitalWrite(ledPin,, LOW);                // puis s'éteins jusqu'à ce que l'on appuis une nouvelle fois sur le boutton.
  }
}

bonjour,

Je voudrais réaliser un programme dans lequel une led s'allume pendant une seconde lorsqu'on appuis sur le bouton poussoir puis s'éteins jusqu'à ce que l'on appuis une nouvelle fois sur le bouton.

je vais dire, réfléchis 1 seconde à ton code :) et modifie le en fonction appuie=>1 s ON=>éteint la fonction delay, ca ne te dit rien, surtout dans les exemples de l'IDE ;)

pourquoi mettre un LOW si tu appuie et un else avec un HIGH et un LOW

void loop(){
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {     
        digitalWrite(ledPin, HIGH);                
    delay (1000);                               
    DigitalWrite(ledPin,, LOW);             
  }else{
DigitalWrite(ledPin,, LOW);      
}
}

Bonjour !

Merci de ta réponse ! J'ai une deuxième et dernière question pour réaliser un code me permettant de : Lorsque l'on relache le bouton, la led s'éteint une seconde puis se rallume.

Merci d'avance

Antoine_debuire: Bonjour !

Merci de ta réponse ! J'ai une deuxième et dernière question pour réaliser un code me permettant de : Lorsque l'on relache le bouton, la led s'éteint une seconde puis se rallume.

Merci d'avance

heuuuu c'est une blague ou tu le fais exprès? aller un peu de jugeotte par toi même ;)

J’ai passé 2h dessus aujourd’hui ! je débute tout juste en programmation !

alors, ce sont les bases qui sont dans les exemples de l'ide. tu prends ton papier et crayon tu décompose ce que tu veux faire tu transcrit en code HIGH = contact LOW = relaché delay(x) = temps de pause

j'appuie sur le bouton je relache le bouton led off attente 1s led on

Quand j'appuie sur le boutton, la led s'allume ; Quand je relache le bouton, la led clignote par intervale d'une seconde alors que je voudrais qu' 1 seconde après avoir relaché le bouton , elle s'allume continuellement.

Voici mon code :

void loop(){ buttonState = digitalRead(button);

if (buttonState == LOW) { digitalWrite(ledPin, HIGH); } if (buttonState == HIGH) {

digitalWrite(ledPin, LOW); delay (1000); digitalWrite(ledPin, HIGH); } }

mets TOUT ton code

const int button = 2;  
const int ledPin = 13;


int buttonState = 0; 

void setup() {

  pinMode(ledPin, OUTPUT);
  pinMode(button, INPUT);
}

void loop(){
  buttonState = digitalRead(button);
  
  if (buttonState == LOW)
{     
  digitalWrite(ledPin, HIGH); 
}
  if (buttonState == HIGH)
{  
  digitalWrite(ledPin, LOW);
  delay (1000);                               
  digitalWrite(ledPin, HIGH);      
 }
}

y a un exemple dans l'ide qui pourrait te servir et t'apprendre. StateChangeDetection il suffit de changer 2-3 variables

Merci de ton aide mais je n'ai pas réussit à faire mon programme avec StateChangeDetection.

Bonsoir,

Antoine_debuire: J'ai une deuxième et dernière question pour réaliser un code me permettant de : Lorsque l'on relache le bouton, la led s'éteint une seconde puis se rallume.

Bah moi je ne vois pas trop l'utilité, c'est comme si tu disais : - Quand je relâche le bouton éteint-toi pendant 1 seconde puis rallume-toi ensuite; - Quand j'appui sur le bouton, allume-toi.

Sinon ...

int ledpin = 12;
int boutonpin=2;
int etat;

void setup()
{
  pinMode(12, OUTPUT);
 pinMode(2, INPUT); 
 digitalWrite(12, LOW);
}

void loop()
{
  etat= digitalRead(2);

if(etat == HIGH)
{
   digitalWrite(12, HIGH);
   delay(3000);
   while(etat == HIGH)
   {
     digitalWrite(12, LOW);
     etat= digitalRead(2);
   }
}   
}

@uzuma pourquoi déclarer

int [b]ledpin[/b] = 12;
int [b]boutonpin[/b]=2;

si c'est pour uiliser après

  pinMode([b]12[/b], OUTPUT);
 pinMode([b]2,[/b] INPUT); 
 digitalWrite([b]12[/b], LOW);

..............................
   digitalWrite([b]12[/b], HIGH);
...................
   digitalWrite([b]12[/b], LOW);
     etat= digitalRead([b]2[/b]);

:grin: mais comme toi, le pourquoi de relacher le bouton, etc... je vois pas trop. si le gars laisse le bouton appuyé, on fait quoi? :) on détecte l'appui sur le bouton ce qui change l'état (voir boolean) et on lance la séquence led off 1s seconde led on

Coucou les copains, Bon, je viens mettre mon petit grain de sel : La difficulté pour t'aider, c'est que le comportement que tu désires n'est pas clairement exprimé. J'ai bien compris que l'action sur un bouton poussoir doit modifier l'état d'une LED avec temporisation. Mais je n'arrive plus à savoir si, étant allumée elle doit s'éteindre durant une seconde puis éclairer à nouveau en permanence. Surtout, tu ne précises pas si l'action sur le bouton poussoir est de courte durée ou pouvant être prolongé. Enfin, il faut aussi préciser ce qui doit se passer s'il y a recouvrement. C'est à dire, si au moment de rallumer la LED le poussoir est toujours enfoncé, on prolonge l'état "noir" ou on passe en priorité le rallumage ? Il est impossible de traduire du code, si au départ on n'a pas une idée bien arrêtée sur ce que l'on désire obtenir. Reste que les aléas que tu rencontre sont probablement dus aux "faux rebonds" sur le bouton poussoir. C'est un aspect électronique ou informatique absolument incontournable pour gérer un poussoir ou un inverseur. Il te faut donc : * Étudier ce que sont ces rebonds sur tout contact électrique, * Voir comment est contournée habituellement cette difficulté : Condensateur d'amortiqquement aux bornes du contact, séquence de code pour faire de l'anti rebonds, association des deux etc. Amicalement : Nulentout.

Bonjour à tous !

D'abord je tiens à vous remercier pour votre aide et votre implication pour mon projet.

Mon projet : Je possède un simulateur de conduite d'un train et, pour reproduire la réalité, je voudrais recréer le système de la Veille Automatique. Quand j'appuie sur la pédale, 55 secondes plus plus tard, il y a un son qui me demande de realcher la pedale. Théoriquement, quand je relache la pedale il y a un autre son qui me demande de rappuyer dessus 2,5 plus tard.(je ne pense pas utiliser cette fonction sinon voir plus bas*).

Je vais commander le module sonore par relais. Quand je lance un son par appuie sur le bouton poussoir, pour l'arrêter il faut que le module sonore redémarre en s'éteignant environ 1 sec. C'est "alimentation du module sonore" que j'ai appelé led dans mon programme.

Voila le programme idéal que je voudrais réaliser :

Si j'appuie sur la pedale, Son RA = LOW (RA = relachement d'appui) module sonore = LOW attente 1 sec (* redemarrage du module sonore si possible pour utiliser le son de relachement de la pedale) module sonore = HIGH Son MA = HIGH (MA : Maintient d'appui)

Si je relache la pedale, Son CA = LOW module sonore = LOW attente 1 sec module sonore = HIGH Son RA = HIGH

Voila

Merci d'avance pour votre aide

Antoine

salut,

En gros tu veux juste un interrupteur qui fais changer d état un son ...et bien c'est comme la led allumer ou eteint mais tu change les actions par son A et son B. Tu fais un digitalRead pour connaitre l’état du bouton et après tu allume ou éteint tes son... c'est tout bête

Mais pour arrêter un son, il faut que le module sonore s'arrête 1 seconde et redémarre. Et c'est précisement cette étape que je n'arrive pas à réaliser. Il faut que le module sonore s'éteigne 1 sec quand j'appuie sur la pedale ensuite il doit de rallumer. Il doit aussi s'éteindre une séconde quand je relache la pedale.

Antoine_debuire: Mais pour arrêter un son, il faut que le module sonore s'arrête 1 seconde et redémarre. Et c'est précisement cette étape que je n'arrive pas à réaliser. Il faut que le module sonore s'éteigne 1 sec quand j'appuie sur la pedale ensuite il doit de rallumer. Il doit aussi s'éteindre une séconde quand je relache la pedale.

en gros, il doit s'arrêter une seconde dès qu'il y a un évènement "pédale"? regarde du côté des PCINTxx, ton bonheur est là.