IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Projet d'alarme au buzzer


Sujet :

Arduino

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2021
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Projet d'alarme au buzzer
    bonjour à tous, j'ai pour projet de faire sonner une alarme avec Arduino en fonction d'une contrainte. je suis débutant et je ne comprend pas pourquoi mon programme ne marche pas :

    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
     
    float sinVal;                     // crée une variable de type "float" appelée "SinVal" et qui contient la valeur sinusoïdale qui fera monter et descendre la tonalité.
    int toneVal;                      // crée une variable de type "int" appelée "toneVal" et qui représente la fréquence de la note produite en hertz (Hz).
     
    void setup() {
      pinMode(13, OUTPUT);                // Buzzer
     
     
    void loop () {            
    if (currentTime - flowStartTime >= 2000ul) {  // condition quelconque
       for(int x=0; x<180; x++){                         // crée une variable "x" de type "int" dont la valeur de départ est de 0 et qui lorsqu'elle est inférieur 
          sinVal = (sin(x*(3.1412/180)));                // permet de convertir la valeur de x en radians pour la suite du programme.
          toneVal = 2000+(int(sinVal*1000));             // formule qui permet de convertir la variable en une nouvelle varianble "toneVal" qui défénira la fréquence du Buzzer.
          tone(13, toneVal);                             // utilise la fonction tone, constituer du numéro de la Broche (13) et de la fréquence (toneVal)
         delay(2); 
         }
      }

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    parce que vous n'avez pas mis l'accolade fermante de la fonction setup?
    parce que currentTime, flowStartTime n'est pas déclarée (ni mise à jour)
    (PI c'est 3.1415926... pas 3.1412)


    un truc comme cela doit fonctionner (j'ai migré le buzzer sur la pin 6 car la pin 13 c'est aussi la LED intégrée)
    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
    const byte pinBuzzer = 6;                            // buzzer sur pin 6 (éventuellement avec une résistance de limitation de courant)
     
    void setup() {
      pinMode(pinBuzzer, OUTPUT);
    }
     
    void loop () {
      static uint32_t previousTime;
     
      if (millis() - previousTime >= 2000ul) {          // toutes les 2 secondes
        for (int x = 0; x < 180; x++) {
          float sinVal = sin((3.1415926 / 180.0) * x);   // permet de convertir la valeur de x en radians puis on en prend le sinus
          int toneVal = 1000 + 500 * sinVal;             // formule de calcul de fréquence du Buzzer centrée autour de 1000Hz avec la sinusoide en plus (donc entre 500 et 1500 Hz)
          tone(pinBuzzer, toneVal);                      // génération de fréquence (numéro de la Broche, fréquence)
          delay(5);                                      // on joue cette fréquence pendant 5ms
        }
        noTone(pinBuzzer);                              // on arrête le buzzer
        previousTime = millis();                       // on mémorise le moment de fin
      }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Projet Alarme : Besoin de conseils
    Par Spirit94 dans le forum Périphériques
    Réponses: 4
    Dernier message: 10/05/2016, 22h54
  2. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  3. Réponses: 6
    Dernier message: 21/06/2002, 14h48
  4. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo