Calculer une distance a l'aide d'un capteur ultrason HC-SR04 et d'un Arduino

Dans ce tutoriel nous allons voir le principe de fonctionnement d’un capteur ultrason ainsi que son utilisation avec Arduino et citer quelque exemple de projets avec ce dernier

ELEGOO 5 piĂšces HC-SR04 Module Ultrason de Capteur de Distance pour Mega Nano Robet XBee Zigbee Ultrasonic Module Distance Sensor
Capteur Ultrason de Mesure de Distance HC-SR04 (Ultrasonic Module Distance Sensor) Le HC-SR04 comprend un Ă©metteur ultrason, un rĂ©cepteur et un circuit de contrĂŽle. Quand il est activĂ©, il Ă©met des sĂ©ries d'impulsion ultrasonique Ă  40 kHz et reçoit l'Ă©cho d’un objet. La distance entre le capteur et l’objet est calculĂ©e en mesurant le temps de trajet des ondes sonores ( au moyen d’une base temps TTL ) entre l'Ă©mission et la rĂ©ception de l'Ă©cho Alimentation: 5Volt continu; Courant de repos: moins de 5mA; Angle effectif: moins de 15° Distance mesurĂ©e:de 2 cm Ă  300 cm; RĂ©solution:0,3 cm Contenu du Paquet: 5 x Module HC-SR04 avec un petit cadeau
PIC Micro-controller best 10 Projects hands on: Computerized Thermometer, PIR Sensor, Global Positioning System, Avoiding Robot,Ultrasonic Sensor HC-SR04, Make and Receive Calls,Advanced Ammeter etc

Les types de capteurs disponible dans le marché

Il existe sur le marchĂ© un grand nombre de capteurs de distance : infrarouge (rĂ©flectif), laser (par temps de parcours ou par calcul d’angle), physique (rĂšgles optiques absolues ou incrĂ©mentielles ), ou ultrason.

  • Les capteurs infrarouges ont l’avantage d’ĂȘtre bon marchĂ©, relativement prĂ©cis et disponibles Ă  peu prĂšs partout. Malheureusement, ils sont assez complexes Ă  mettre en oeuvre du fait de leurs non-linĂ©aritĂ©s. Il faut appliquer une formule complexe pour obtenir une mesure utilisable. De plus, ils sont trĂšs sensibles Ă  la lumiĂšre ambiante et au coefficient de rĂ©flexion lumineuse de la surface en face du capteur
  • Les (vrais) capteurs de distance laser sont extrĂȘmement prĂ©cis, mais aussi extrĂȘmement chers. Un capteur de distance laser (par mesure de temps de parcours) coĂ»te facilement plus de 200€, mais fait des mesures Ă  plus de 30 mĂštres sans problĂšme pour certains modĂšles. C’est donc au final une question de budget / utilisation.PS Il existe des (faux) capteurs de distance laser fonctionnant par triangulation. Au lieu de mesurer le temps d’aller-retour d’un faisceau laser, ces modules calculent l’angle entre le point du laser et le capteur. Ces modules sont moins chers, mais aussi beaucoup moins prĂ©cis
  • Les capteurs physiques, le plus souvent un duo comportant une rĂšgle graduĂ©e et un capteur optique, sont Ă  la fois bon marchĂ© et trĂšs prĂ©cis. Mais ils sont trĂšs limitĂ©s en distance mesurable et se retrouvent donc gĂ©nĂ©ralement dans des imprimantes

Et maintenant intĂ©ressons nous a notre capteur ultrasonUn capteur de distance Ă  ultrason utilise le mĂȘme principe qu’un capteur laser, mais en utilisant des ondes sonores (inaudible) au lieu d’un faisceau de lumiĂšre. Ils sont bien moins chers qu’un capteur laser, mais aussi bien moins prĂ©cis. Cependant, contrairement aux capteurs Ă  infrarouge, la lumiĂšre ambiante et l’opacitĂ© de la surface en face du capteur ne jouent pas sur la mesure.

Le Montage

Calculer une distance a l'aide d'un capteur ultrason HC-SR04 et d'un Arduino #2

Le Code

//Initialisation des pins 2 et 3
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3;    // Broche ECHO
 
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m Ă  340m/s

/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;

void setup() {
   
  /* Initialise le port série */
  Serial.begin(115200);
   
  /* Initialise les broches */
  pinMode(TRIGGER_PIN, OUTPUT);
  digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit ĂȘtre Ă  LOW au repos
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  
  /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10”s sur la broche TRIGGER */
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
  
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son Ă©cho (si il existe) */
  long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
   
  /* 3. Calcul la distance à partir du temps mesuré */
  float distance_mm = measure / 2.0 * SOUND_SPEED;
   
  /* Affiche les résultats en mm, cm et m */
  Serial.print(F("Distance: "));
  Serial.print(distance_mm);
  Serial.print(F("mm ("));
  Serial.print(distance_mm / 10.0, 2);
  Serial.print(F("cm, "));
  Serial.print(distance_mm / 1000.0, 2);
  Serial.println(F("m)"));
   
  /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
  delay(500);
}
}

Voila vous n’avez plus qu’a vous amuser 😀

Programming Arduino Projects with the PIC Microcontroller: A Line-by-Line Code Analysis and Complete Reference Guide for Embedded Programming in C (English Edition)
Sun3drucker Lot de 5 modules Ă  ultrasons HC-SR04 pour Arduino UNO, MEGA2560, Nano, robot, XBee, ZigBee, etc.
Module capteur à ultrasons, mesure de la distance, type : HC-SR04 pour Arduino, Raspberry Pi. ⭐ Le capteur de distance HC-SR04 se compose d'un émetteur à ultrasons, d'un récepteur à ultrasons et d'un circuit. Tout en un seul plateau. Tension d'alimentation : 5 V - Consommation : maximum 15 mA - Déclenchement : flanc tombant (TTL) à TRIG - Fréquence de mesure : max. 50 Hz Résultat : signal PWM. ⭐ 5 piÚces HC-SR04 et 20 cùbles. Nous nous efforçons toujours d'améliorer la fonction de nos produits, s'il vous plaßt par e-mail.

Categories: Arduino