Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Bonton On/Off


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions
Previous topic :: Next topic  
Author Message
evilhard
Débutant

Offline

Joined: 28 Oct 2013
Posts: 6
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Tue 29 Oct - 02:21 (2013)    Post subject: Bonton On/Off Reply with quote

PublicitéSupprimer les publicités ?
Bonjour

J'aurais besoin d'aide à savoir quelle commande je dois écrire pour que quand j'appuie sur un bouton ma commande void loop démarre.

Je ne veux plus quelle démarre automatiquement. 

Merci

Eric
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Tue 29 Oct - 22:23 (2013)    Post subject: Bonton On/Off Reply with quote

  Tu ne peux pas faire ça directemment, il va falloir ruser, il te faut faire une boucle dans ta loupe, que tu execute seulement si le bouton a été appuyé du style :
  void setup() {
  boolean butonpres = false;
  int pinbuton = 4; // ton pin du boutton
pinMode(pinbuton, INPUT);
}
  void loop() {
    if(digitalRead(pinbuton) == HIGH)
{
butonpres = true;
delay(800);
}
   while(butonpres)
{
// tes instructions


//pour sortir de la boucle apres une deuxieme pression 
    if(digitalRead(pinbuton) == HIGH){
butonpres = false;

delay(800);}




}
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Wed 30 Oct - 10:11 (2013)    Post subject: Bonton On/Off Reply with quote

Si vous me cherchez,je suis déjà dehors


Nan mais Arnaud tu réponds trop vite !!!! j'allais dire pareil !  Mort de Rire
____________________________
http://simple-duino.com
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Thu 31 Oct - 10:17 (2013)    Post subject: Bonton On/Off Reply with quote

en fait on est deux sur le meme compte c'est pour ca  mdr
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Thu 31 Oct - 10:25 (2013)    Post subject: Bonton On/Off Reply with quote

  En plus propre : 





 
Code:
  void setup() {
    boolean butonpres = false;
    int pinbuton = 4; // ton pin du boutton
   pinMode(pinbuton, INPUT);
 }






  void loop() {
      if(digitalRead(pinbuton) == HIGH)
  {
   butonpres = true;
   delay(800)
  }




  while(butonpres){


  // tes instructions


  //pour sortir de la boucle apres une deuxieme pression 


     if(digitalRead(pinbuton) == HIGH){
   butonpres = false;
   delay(800);
  }
 }
 




____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Thu 31 Oct - 20:27 (2013)    Post subject: Bonton On/Off Reply with quote

Alors je te laisses faire  pffff
____________________________
http://simple-duino.com
Back to top
sticky
Débutant

Offline

Joined: 10 Jul 2013
Posts: 49
Niveau d'éléctronique: Débutant

PostPosted: Mon 4 Nov - 18:39 (2013)    Post subject: Bonton On/Off Reply with quote

Ah merci a toi arnaud39 j'avais exactement la même question :-). C'est dommage que y ait pas quelque chose de plus simple prévu par les développeurs arduino :-(
____________________________
un débutant
Back to top
QUINQUIN07
Débutant

Offline

Joined: 07 Nov 2013
Posts: 5
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Fri 8 Nov - 20:03 (2013)    Post subject: Bonton On/Off Reply with quote

Bonjour, je me suis posé la même question qu'Eric, mais les commandes avec sérial monitor. Malheureusement je n'y arrive pas.
Je vous joint ce que j'ai essayé d'écrire.
Merci.
Marc.

/*
  Clignotement d'une LED avec commande arret (serial monitor)
 */
int led = 13; //LED interne de l'Arduino sur pin 13
int arret=0;  // initialisé à la valeur 0
int octetRecu=0;  // initialisé à la valeur 0

// ****************FONCTION SETUP*****************************
void setup()
{               
  pinMode(led, OUTPUT);  // pin 13 de l'Arduino en fonction sortie
  Serial.begin(115200); // initialise connexion série à 115200 bauds
  Serial.println ("demande arret"); // affiche sur écran "demande arret"
}// ******************fin fonction SETPUP**************************

// ********************FONCTION LOOP*******************************
void loop()
{
  while (octetRecu=0);           // tant que arret=0 continuer (arret initialisé à 0)
  {
    digitalWrite(led, HIGH);   // Led eclairée
    delay(500);               // pause 0.5 seconde
    digitalWrite(led, LOW);    // Led éteinte
    delay(500);               // pause 0.5 seconde
    if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=Serial.read(); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    Serial.println("Arret");   // affiche a l'écrand "Arret"
    }
  }
}//*******************fin FONCTION LOOP******************************
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Sat 9 Nov - 15:51 (2013)    Post subject: Bonton On/Off Reply with quote

Alors il y a plusieurs faute : 
1) un test egal se fait toujours avec == et non =, ce qui donne while(octetRecu == 0);
2) ta liaison serie te transmet un type char et non int, ce qui donne : octetRecu= int(Serial.read());
  Je pense que ca devrait marcher avec ce code : 
 
Code:
 /*
  Clignotement d'une LED avec commande arret (serial monitor)
 */
int led = 13; //LED interne de l'Arduino sur pin 13
int octetRecu=0;  // initialisé à la valeur 0

// ****************FONCTION SETUP*****************************
void setup() 
{                
  pinMode(led, OUTPUT);  // pin 13 de l'Arduino en fonction sortie
  Serial.begin(115200); // initialise connexion série à 115200 bauds 
  Serial.println ("demande arret"); // affiche sur écran "demande arret"
}// ******************fin fonction SETPUP**************************

// ********************FONCTION LOOP*******************************
void loop() 
{
  while (octetRecu==0);           // tant que octetRecu=0 continuer (arret initialisé à 0)
  { 
    digitalWrite(led, HIGH);   // Led eclairée
    delay(500);               // pause 0.5 seconde
    digitalWrite(led, LOW);    // Led éteinte
    delay(500);               // pause 0.5 seconde
    if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu==1)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Arret"
    }
    if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu==1)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Arret"
    }
  }
}//*******************fin FONCTION LOOP******************************
 

____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Sat 9 Nov - 15:52 (2013)    Post subject: Bonton On/Off Reply with quote

pardon c'est ca : 
/*
  Clignotement d'une LED avec commande arret (serial monitor)
 */
int led = 13; //LED interne de l'Arduino sur pin 13
int octetRecu=0;  // initialisé à la valeur 0

// ****************FONCTION SETUP*****************************
void setup() 
{                
  pinMode(led, OUTPUT);  // pin 13 de l'Arduino en fonction sortie
  Serial.begin(115200); // initialise connexion série à 115200 bauds 
  Serial.println ("demande arret"); // affiche sur écran "demande arret"
}// ******************fin fonction SETPUP**************************

// ********************FONCTION LOOP*******************************
void loop() 
{
  while (octetRecu==0);           // tant que octetRecu=0 continuer (arret initialisé à 0)
  { 
    digitalWrite(led, HIGH);   // Led eclairée
    delay(500);               // pause 0.5 seconde
    digitalWrite(led, LOW);    // Led éteinte
    delay(500);               // pause 0.5 seconde
    if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu==1)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Arret"
    }
    
  }
if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu==1)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Arret"
    }
}//*******************fin FONCTION LOOP******************************
 
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
QUINQUIN07
Débutant

Offline

Joined: 07 Nov 2013
Posts: 5
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Mon 11 Nov - 10:56 (2013)    Post subject: Bonton On/Off Reply with quote

  Bonjour, je pense qu'il y a un autre problème avec while, j'ai mis un ; alors qu'il faut le mettre que quand on l'utile avec do.
Je pense que la seconde partie de condition (si) redémarre le clignotement des diodes? mais l'essai sur ma plaque ARDUINO UNO avec logiciel ARDUINO0022 n'est pas concluant. Il y a peut-être encore des erreurs.
Salutations.
Marc.

/*
  Clignotement d'une LED avec commande arret (serial monitor)
 */
int led = 13; //LED interne de l'Arduino sur pin 13
int octetRecu=0;  // initialisé à la valeur 0

// ****************FONCTION SETUP*****************************
void setup()
{               
  pinMode(led, OUTPUT);  // pin 13 de l'Arduino en fonction sortie
  Serial.begin(115200); // initialise connexion série à 115200 bauds
  Serial.println ("demande arret"); // affiche sur écran "demande arret"
}// ******************fin fonction SETPUP**************************

// ********************FONCTION LOOP*******************************
void loop()
{
  while (octetRecu==0)  //pas de ; utilisation avec do // tant que octetRecu=0 continuer (arret initialisé à 0)
  {
    digitalWrite(led, HIGH);   // Led eclairée
    delay(500);               // pause 0.5 seconde
    digitalWrite(led, LOW);    // Led éteinte
    delay(500);               // pause 0.5 seconde
    if (Serial.available()>0)  // si un octet est réceptionné
   
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu!=0)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Marche"
   
   
  }
if (Serial.available()>0)  // si un octet est réceptionné
    {
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu!=0)Serial.println("Arret");   // affiche a l'écrand "Arret"
    if(octetRecu==0)Serial.println("Marche");   // affiche a l'écrand "Marche"
   }
   
}//*******************fin FONCTION LOOP******************************
Back to top
QUINQUIN07
Débutant

Offline

Joined: 07 Nov 2013
Posts: 5
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Mon 11 Nov - 16:11 (2013)    Post subject: Bonton On/Off Reply with quote

Re bonjour, après quelques recherche je suis arrivé à cette solutions qui n'est peut-être pas la plus simple, mais ça fonctionne.
Salutations.
Marc.

  Clignotement d'une LED avec commande arret (serial monitor)
 */
int led = 13; //LED interne de l'Arduino sur pin 13
int octetRecu=77;  // initialisé à la valeur 77 ASCII

// ****************FONCTION SETUP*****************************
void setup()
{               
  pinMode(led, OUTPUT);  // pin 13 de l'Arduino en fonction sortie
  Serial.begin(115200); // initialise connexion série à 115200 bauds
  Serial.println ("demande arret entrer : A"); // affiche à lécran "demande arret"
}// ******************fin fonction SETPUP**************************

// ********************FONCTION LOOP*******************************
void loop()
{
  while (octetRecu==77)  //pas de ; utilisation avec do // tant que octetRecu=0 continuer (arret initialisé à 0)
  {
    digitalWrite(led, HIGH);   // Led eclairée
    delay(500);               // pause 0.5 seconde
    digitalWrite(led, LOW);    // Led éteinte
    delay(500);               // pause 0.5 seconde
    if (Serial.available()>0)  // si un octet est réceptionné
    octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
    Serial.println(octetRecu);      // affiche le caractère
    if(octetRecu==65)Serial.println("Arret");   // affiche à l'écran "Arret"
    if(octetRecu==65)Serial.println("Remise en marche entrer : M");// affiche à l'écran
  }
if (Serial.available()>0)  // si un octet est réceptionné
    {
      octetRecu=int(Serial.read()); // Lit le 1er octet reçu et le met dans la variable
      Serial.println(octetRecu);      // affiche le caractère
      if(octetRecu==77)Serial.println("Marche");   // affiche à l'écran "Marche"
      if(octetRecu==77)Serial.println ("demande arret entrer : A"); // affiche à lécran "demande arret"
    }
}//*******************fin FONCTION LOOP******************************
Back to top
evilhard
Débutant

Offline

Joined: 28 Oct 2013
Posts: 6
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Wed 13 Nov - 04:28 (2013)    Post subject: Bonton On/Off Reply with quote

Bonjour

J'aimerais savoir si il y a une facon d'arrêter un void loop pour que le programme la lise juste une fois.

Merci
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sat 16 Nov - 21:25 (2013)    Post subject: Bonton On/Off Reply with quote

Oui :
 
Ceci n'est qu'un exemple évidemment !!
Code:
 //les déclarations
void setup(){
   //initialisation
}
void loop(){
   //suspense : ici la void loop
   int i = 1 ;
   While(i == 1){
      stop();
   }
}
void stop(){



____________________________
http://simple-duino.com
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino