Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Bonton On/Off


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
evilhard
Débutant

Hors ligne

Inscrit le: 28 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mar 29 Oct - 02:21 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Mar 29 Oct - 22:23 (2013)    Sujet du message: Bonton On/Off Répondre en citant

  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
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Mer 30 Oct - 10:11 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Jeu 31 Oct - 10:17 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Jeu 31 Oct - 10:25 (2013)    Sujet du message: Bonton On/Off Répondre en citant

  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
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 31 Oct - 20:27 (2013)    Sujet du message: Bonton On/Off Répondre en citant

Alors je te laisses faire  pffff
____________________________
http://simple-duino.com
Revenir en haut
sticky
Débutant

Hors ligne

Inscrit le: 10 Juil 2013
Messages: 49
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 4 Nov - 18:39 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
QUINQUIN07
Débutant

Hors ligne

Inscrit le: 07 Nov 2013
Messages: 5
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Ven 8 Nov - 20:03 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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******************************
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Sam 9 Nov - 15:51 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Sam 9 Nov - 15:52 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
QUINQUIN07
Débutant

Hors ligne

Inscrit le: 07 Nov 2013
Messages: 5
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Lun 11 Nov - 10:56 (2013)    Sujet du message: Bonton On/Off Répondre en citant

  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******************************
Revenir en haut
QUINQUIN07
Débutant

Hors ligne

Inscrit le: 07 Nov 2013
Messages: 5
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Lun 11 Nov - 16:11 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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******************************
Revenir en haut
evilhard
Débutant

Hors ligne

Inscrit le: 28 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mer 13 Nov - 04:28 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Sam 16 Nov - 21:25 (2013)    Sujet du message: Bonton On/Off Répondre en citant

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
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 23:44 (2017)    Sujet du message: Bonton On/Off

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino