Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino] Problème de driver-Alarme avec un capteur ultrason

    29 avril 2012 à 18:39:36

    Bonjour,
    Avec un ami, nous voudrions faire une alarme qui se déclanche lorsq'une porte s'ouvre.
    Mais nous avons un problème dans le driver et après multiple recherche, nous ne trouvons toujours pas d'où le problème vient! :(
    Voila ce que nous avions penssez faire:
    • -Mettre un capteur ultra-son devant une porte
    • - Dès que la distance se réduit, un buzzers= s'enclenchent avec 2 LED


    Voici notre schéma de montage: Schéma 1 Schéma 2

    Voici notre driver:
    #define trigPin 12 
    #define echoPin 13 
    int ledRouge = 10; 
    int ledBleue = 11;
    int Buzzer = 8;
    
    
    int PrendreDistance ( int trigPin, int echoPin)  
    { 
      int DistanceObjet; 
      int duration; 
      int distance; 
      
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(1000);
      digitalWrite(trigPin, LOW);
      duration = pulseIn(echoPin, HIGH);
      distance = (duration/2) / 29.1;
      return (distance);
     }
      
    void alarme(int Buzzer, int Pin_Led_Rouge, int attente, int Pin_Led_Bleue)
    {
     
      int DistanceObjet2;
      DistanceObjet2 = PrendreDistance( int trigPin, int echoPin) ;
      
      
      
       if( DistanceObjet2 > DistanceObjet2) 
      {
      digitalWrite( Pin_Led_Rouge,LOW);
      tone( Buzzer, 880, attente);
      digitalWrite( Pin_Led_Bleue,HIGH); 
      delay( attente );                                
      digitalWrite( Pin_Led_Bleue, LOW );
      tone( Buzzer, 1320, attente);
      digitalWrite( Pin_Led_Rouge, HIGH); 
      delay( attente);   }
      }
    
    
    
    void setup() {
       pinMode(ledRouge, OUTPUT);
      pinMode(ledBleue, OUTPUT);
    }
    
    void loop()
    
    { 
    delay(1000); 
    PrendreDistance ( trigPin,echoPin);
    alarme( Buzzer,  ledRouge, 650,  ledBleue);
     }
    


    Voici les erreurs affichés

    alarmes_ultrasons:-1: error: expected ',' or '...' before numeric constant
    alarmes_ultrasons:7: error: expected ',' or '...' before numeric constant
    alarmes_ultrasons.cpp: In function 'void alarme(int, int, int, int)':
    alarmes_ultrasons:24: error: expected primary-expression before 'int'
    alarmes_ultrasons:24: error: expected primary-expression before 'int'
    alarmes_ultrasons.cpp: In function 'void loop()':
    alarmes_ultrasons:7: error: too many arguments to function 'int PrendreDistance(int)'
    alarmes_ultrasons:51: error: at this point in file



    Merci d'avance
    LaClu :)
    • Partager sur Facebook
    • Partager sur Twitter
      29 avril 2012 à 19:00:25

      Bonjour,
      Tu essaye d’instancier une variable avec comme nom un define :
      7 int PrendreDistance ( int trigPin, int echoPin)
      26 DistanceObjet2 = PrendreDistance( int trigPin, int echoPin) ;

      Et juste, à quoi sa sert ça ? o_O
      if( DistanceObjet2 > DistanceObjet2)

      Si tu a des question, n’hésite pas :)

      EDIT : je suis trop sympa, voila le code :
      #define trigPin 12 
      #define echoPin 13 
      #define ledRouge 10 
      #define ledBleue 11
      #define Buzzer 8
      int DistanceObjet;
      
      int PrendreDistance ()  
      {
        int duration;
        
        digitalWrite(trigPin, HIGH);
        delayMicroseconds(1000);
        digitalWrite(trigPin, LOW);
        duration = pulseIn(echoPin, HIGH);
        return (duration/2) / 29.1;
      }
        
      void alarme(int attente)
      {
        int DistanceObjet2 = PrendreDistance() ;
        
        if(DistanceObjet > DistanceObjet2) 
        {
          digitalWrite(ledRouge, LOW);
          tone(Buzzer, 880, attente);
          digitalWrite(ledBleue, HIGH); 
          delay(attente );                                
          digitalWrite(ledBleue, LOW);
          tone(Buzzer, 1320, attente);
          digitalWrite(ledRouge, HIGH); 
          delay(attente);   
        }
      }
      
      void setup() 
      {
        pinMode(ledRouge, OUTPUT);
        pinMode(ledBleue, OUTPUT);
        DistanceObjet = PrendreDistance ();
      }
      
      void loop()
      { 
        delay(1000);//quel est l'utiliter ?
        alarme(650);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
      2b||!2b   sqrt(4b²)
        29 avril 2012 à 19:31:54

        Merci beaucoup pour ta réponse!
        Effectivement je me suis trompé dans mon if! Et la "delay" sert à avoir un petit peu de temps entre la fonction alarme qui se répète! ;)
        • Partager sur Facebook
        • Partager sur Twitter
          29 avril 2012 à 19:47:51

          tu as déjà une seconde qui ce fait dans la fonction PrendreDistance()
          J'ai rien dit, c'est des microsecondes
          • Partager sur Facebook
          • Partager sur Twitter
          2b||!2b   sqrt(4b²)
            28 janvier 2014 à 15:09:20

            je veux utiliser au lieu des leds un buzzer 

            comment je peux faire ça ?? 

            et merci :)

            • Partager sur Facebook
            • Partager sur Twitter

            [Arduino] Problème de driver-Alarme avec un capteur ultrason

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown