la fonction tone avec arduino
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

la fonction tone avec arduino



  1. #1
    inviteb8a59782

    la fonction tone avec arduino


    ------

    Bonjour, je souhaite incrémenter une variable, lors d'un appuie sur un bouton poussoir à un intervalle de 10 secondes .

    C'est dire , lorsque j'appuie sur un bouton une variable s'incrémente , si je ré appuie sur le bouton en moins de 10 secondes, la variable ne s'incrémente pas, je dois attendre 10 secondes .
    Mais à chaque appuie sur le bouton fait sonner un buzzer .

    Pour faire sonner le buzzer j'utilise la fonction "tone" .
    lorsque je code comme ce-ci:
    tone (buzzer,411);
    delay(150);
    tone(buzzer,611);
    delay(150);
    noTone(buzzer);


    Avec ce code la le buzzer ne sonne pas du tout, mais lorsque j'enleve "noTone(buzzer);" le buzzer sonne lors d'un appuie sur le bouton mais il ne s’arrête pas .
    Ou sinon l'incrémentation de la variable à intervalle de temps de 10 secondes fonctionne bien, je le vérifie sur le Sérial Monitor .

    Voici mon code .

    Code:
    int buzzer = 9;
    int bouton = 2;
    long temps=0 ;
    int i=0 ;
    
    
    void setup()
    {
      attachInterrupt(0,inc,FALLING);
      Serial.begin(9600);
      pinMode(bouton,INPUT);
      pinMode(buzzer,OUTPUT);
     
    }
    
    void inc ()
    {
     tone(buzzer,411);
     delay(150);
     tone(buzzer,611);
     delay(150);
     noTone(buzzer);
        if ((millis()-temps) >10000)
      {
          i++;
         temps =millis();
      }
    }
    
    void loop()
    {
      Serial.println(i);
    }
    Pouvez-vous m'aider svp, car je comprend pas pourquoi mon buzzer ne sonne pas correctement lors d'un appuie sur un bouton poussoir .

    -----
    Dernière modification par JPL ; 15/02/2015 à 15h57. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    invite1d577638

    Re : la fonction tone avec arduino

    La fonction delay n'est pas active lors d'une interruption...

    Inside the attached function, delay() won't work and the value returned by millis() will not increment. Serial data received while in the function may be lost. You should declare as volatile any variables that you modify within the attached function. See the section on ISRs below for more information.
    Source : http://arduino.cc/en/Reference/AttachInterrupt

    Du coup, le buzzer n'a pas le temps d'être entendu !

  3. #3
    inviteb8a59782

    Re : la fonction tone avec arduino

    je vais essayer avec la fonction milis alors.

  4. #4
    inviteb8a59782

    Re : la fonction tone avec arduino

    le buzzer y sonne continuellement quand je ne met pas la fonction "noTone" mais dans ce cas la y le buzzer sonne sans cesse .

  5. A voir en vidéo sur Futura
  6. #5
    invite1d577638

    Re : la fonction tone avec arduino

    Citation Envoyé par hagi Voir le message
    le buzzer y sonne continuellement quand je ne met pas la fonction "noTone" mais dans ce cas la y le buzzer sonne sans cesse .
    Normal...

    Et la fonction millis() ne fonctionne pas non plus. Il va falloir faire autrement...

Discussions similaires

  1. Arduino anti rebond avec arduino
    Par invited0bffa74 dans le forum Électronique
    Réponses: 13
    Dernier message: 23/10/2014, 18h04
  2. arduino fonction void
    Par Lycaon dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 01/02/2014, 21h16
  3. Convertisseur "pulse to tone" utilisable avec une box fibre ?
    Par invite2ee6c482 dans le forum Électronique
    Réponses: 7
    Dernier message: 31/01/2014, 15h36
  4. Communication arduino-arduino avec module Xbee
    Par inviteda9a8a4b dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 18h24
  5. Fonction arduino sur Led addressable
    Par bypbop dans le forum Électronique
    Réponses: 12
    Dernier message: 10/11/2013, 20h34
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...