Carte Arduino et capteur à ultrasons
Affichage des résultats 1 à 22 sur 22

Carte Arduino et capteur à ultrasons



Mode arborescent

  1. #1
    invite4eb44ba1

    Carte Arduino et capteur à ultrasons

    Bonjour,

    J'ai réalisé un avertisseur sonore couplé à un capteur à ultrasons de type HC-SR04 à l'aide d'une carte Arduino et d'un buzzer piézoélectrique. Je pense que j'ai un problème dans le programme que j'ai entré dans la carte car le buzzer émet des sons sans prendre en compte le capteur à ultrasons. Je l'ai vérifié de nombreuses fois mais je ne vois pas ce qui cloche. Voici le programme :

    Code:
    int BUZZERPIN = 11;  
    int ECHOPIN = 8;    
    int TRIGPIN = 7;
    int distanceMin = 20; // en cm
    
    void setup()
    {  
      Serial.begin(9600);
      pinMode(BUZZERPIN, OUTPUT);
      pinMode(ECHOPIN,INPUT);
      pinMode(TRIGPIN,INPUT);
    }
    
    //Boucle principale :
    void loop()
    {
      int distanceObstacle = Distance();
      Serial.println(distanceObstacle);
      if (distanceObstacle < distanceMin) {
        playNote('c', 10);
      } 
    }
    
    //Calcul de la distance de l’objet au capteur :
    float Distance () {
      
      digitalWrite(TRIGPIN, LOW); 
      delayMicroseconds(2); 
      digitalWrite(TRIGPIN, HIGH); 
      delayMicroseconds(10); 
      digitalWrite(TRIGPIN, LOW);
      
      
      float distance = pulseIn(ECHOPIN, HIGH); 
      distance= distance/58; 
      return(distance);
    }
    
    	//Déclenchement et choix de fréquence du signal sonore du buzzer
    void playTone(int tone, int duration)
    {
      for (long i = 0; i < duration * 1000L; i += tone * 2) {
        digitalWrite(BUZZERPIN, HIGH);
        delayMicroseconds(tone);
        digitalWrite(BUZZERPIN, LOW);
        delayMicroseconds(tone);
      }
    }
    
    void playNote(char note, int duration)
    {
      char names[ ] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; // Do Ré Mi Fa Sol La Si Do
      int tones[ ] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // Demi-périodes en ms
      for (int i = 0; i < 8; i++) {
        if (names[i] == note) {
          playTone(tones[i], duration);
        }
      }
    }
    Est-ce que vous pourriez me dire ce qui peut être à l'origine du dysfonctionnement ? Merci d'avance.
    Dernière modification par JPL ; 30/06/2014 à 17h35. Motif: Ajout de la balise Code (#) pour garder l'indentation

Discussions similaires

  1. Utiliser un capteur à effet Hall avec une carte Arduino mega
    Par invite8dba34f7 dans le forum Électronique
    Réponses: 15
    Dernier message: 20/05/2014, 15h35
  2. capteur et arduino
    Par invite1c27b92a dans le forum Technologies
    Réponses: 3
    Dernier message: 04/03/2014, 10h22
  3. Capteur infrarouge ou capteur à ultrasons ?
    Par invite08e91122 dans le forum Technologies
    Réponses: 6
    Dernier message: 24/01/2013, 17h56
  4. Capteur à ultrasons + Arduino ADC
    Par inviteacc86bf5 dans le forum Électronique
    Réponses: 8
    Dernier message: 17/02/2011, 18h53
  5. différence ultrasons/lasers niveau capteur ?
    Par inviteb9716521 dans le forum Électronique
    Réponses: 6
    Dernier message: 24/03/2009, 18h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...