Capteur à ultrasons HC-SR04

Bonsoir,

Je travaille en vue d’un projet pour le BAC. J’ai besoin de ce capteur a ultrasons. J’ai recuperer un code sur Internet que j’ai modifier a ma sauce. Or un problème survient

#include <Ultrasonic.h>
#include <avr/sleep.h>

const int Trig = 3;     // pin "Trig" du HC-SR04 connectée à pin 3 de l'Arduino
const int Echo = 2;     // pin "Echo" du HC-SR04 connectée à pin 2 de l'Arduino

long cm;                // variable pour stocker la distance de l'objet en cm

Ultrasonic HCSR04(Trig,Echo);
int count = 0;

void setup()
{
   
}

void loop()
{
  // on commence par convertir le temps entre l'émission et la réception du signal
  // en cm, voir http://wiki.tetrasys-design.net/HCSR04Ultrasonic pour le détail
  // des méthodes utilisées
  count++;
  cm = HCSR04.convert(HCSR04.timing(), 1);
  
  if(cm >0 && cm < 20)          // objet très proche
  {
    Serial.print ("La cuve est remplie a 80%");
  }
  else if(cm >= 20 && cm < 100)  // distance moyenne
  {
    Serial.print ("La cuve est remplie a 50%");
  }
  else if(cm >= 100)             // objet lointain
  {
   Serial.print ("La cuve est remplie a 20%");
  }
}

if (count>=3) 
  {
     Serial.println("Entrée en mode veille");
      delay(100);      // this delay is needed, the sleep 
      set_sleep_mode(SLEEP_MODE_IDLE);
      sleep_mode();
      sleep_enable();  // sleep function called here
      count = 0;
           
     delay (10000);
    sleep_mode();            // here the device is actually put to sleep!!
 
                             // THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP
  sleep_disable();         // first thing after waking from sleep:

      Serial.println("Sortie du mode veille"); // classic dummy message
    }

J’ai ce message d’erreur : HCSR04:45: error: expected unqualified-id before 'if'

C’est à dire a la ligne où il y a : if (count>=3)

D’où le problème peut il bien survenir ?

Merci d’avance

salut

Ta dernière boucle est en dehors du loop !!

#include <Ultrasonic.h>
#include <avr/sleep.h>

const int Trig = 3;     // pin "Trig" du HC-SR04 connectée à pin 3 de l'Arduino
const int Echo = 2;     // pin "Echo" du HC-SR04 connectée à pin 2 de l'Arduino

long cm;                // variable pour stocker la distance de l'objet en cm

Ultrasonic HCSR04(Trig,Echo);
int count = 0;

void setup()
{
   
}

void loop()
{
  // on commence par convertir le temps entre l'émission et la réception du signal
  // en cm, voir http://wiki.tetrasys-design.net/HCSR04Ultrasonic pour le détail
  // des méthodes utilisées
  count++;
  cm = HCSR04.convert(HCSR04.timing(), 1);
  
  if(cm >0 && cm < 20)          // objet très proche
  {
    Serial.print ("La cuve est remplie a 80%");
  }
  else if(cm >= 20 && cm < 100)  // distance moyenne
  {
    Serial.print ("La cuve est remplie a 50%");
  }
  else if(cm >= 100)             // objet lointain
  {
   Serial.print ("La cuve est remplie a 20%");
  }
// } c'est mal placé !!

if (count>=3) 
  {
     Serial.println("Entrée en mode veille");
      delay(100);      // this delay is needed, the sleep 
      set_sleep_mode(SLEEP_MODE_IDLE);
      sleep_mode();
      sleep_enable();  // sleep function called here
      count = 0;
           
     delay (10000);
    sleep_mode();            // here the device is actually put to sleep!!
 
                             // THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP
  sleep_disable();         // first thing after waking from sleep:

      Serial.println("Sortie du mode veille"); // classic dummy message
    }
    } //c'est là qui faut le mettre

Effectivement, ca marche mieux, merci beaucoup !