Produits

Capteur à ultrasons Arduino - Ocra Electronic
21550
post-template-default,single,single-post,postid-21550,single-format-standard,theme-nouveau,nouveau-core-1.0.4,woocommerce-no-js,ajax_fade,page_not_loaded,,wpb-js-composer js-comp-ver-6.4.1,vc_responsive

Capteur à ultrasons Arduino

Capteur à ultrasons Arduino

Guide complet du capteur à ultrasons HC-SR04 avec Arduino

Cet article est un guide sur le capteur à ultrasons HC-SR04. Nous vous expliquerons son fonctionnement, vous montrerons certaines de ses fonctionnalités et partagerons un exemple de projet Arduino que vous pourrez suivre pour l’intégrer à vos projets. Nous fournissons un schéma de principe sur la façon de câbler le capteur à ultrasons et un exemple de croquis avec l’Arduino.

La description

Le capteur à ultrasons HC-SR04 utilise un sonar pour déterminer la distance à un objet. Ce capteur lit de 2 cm à 400 cm (0,8 pouce à 157 pouces) avec une précision de 0,3 cm (0,1 pouce), ce qui convient à la plupart des projets amateurs. De plus, ce module particulier est livré avec des modules émetteurs et récepteurs à ultrasons.

L’image suivante montre le capteur à ultrasons HC-SR04.

L’image suivante montre l’autre côté du capteur.

Caractéristiques

Voici une liste de certaines des caractéristiques et spécifications du capteur à ultrasons HC-SR04. Pour plus d’informations, vous devriez consulter la fiche technique du capteur :

  1. Alimentation : +5V CC
  2. Courant de repos : <2mA
  3. Courant de travail : 15 mA
  4. Angle effectif : <15°
  5. Distance de portée : 2cm – 400 cm/1″ – 13ft
  6. Résolution : 0.3cm
  7. Angle de mesure : 30 degrés
  8. Largeur d’impulsion d’entrée de déclenchement : impulsion TTL de 10 uS
  9. Signal de sortie d’écho : impulsion TTL proportionnelle à la plage de distance
  10. Dimensions : 45 mm x 20 mm x 15 mm

Comment ça marche?

Le capteur à ultrasons utilise un sonar pour déterminer la distance à un objet. Voici ce qui se passe :

  1. L’émetteur d’ultrasons (trig pin) émet un son à haute fréquence (40 kHz).
  2. Le son voyage dans l’air. S’il trouve un objet, il rebondit vers le module.
  3. Le récepteur d’ultrasons (broche d’écho) reçoit le son réfléchi (écho).

Le temps entre l’émission et la réception du signal permet de calculer la distance à un objet. C’est possible parce que nous connaissons la vitesse du son dans l’air. Voici la formule :

distance to an object = ((speed of sound in the air)*time)/2

vitesse du son dans l’air à 20ºC (68ºF) =  343m/s

Brochage du capteur à ultrasons HC-SR04

Voici le brochage du capteur à ultrasons HC-SR04.

VCCAlimente le capteur (5V)
TriggerBroche d’entrée de déclenchement
ÉchoBroche de sortie d’écho
GNDGND commun

Où acheter?

Vous pouvez consulter le capteur Ultrasonic Sensor HC-SR04 sur ocraelec pour trouver le meilleur prix :

Capteur à ultrasons HC-SR04

Arduino avec capteur HC-SR04

Ce capteur est très populaire parmi les bricoleurs Arduino. Nous fournissons donc ici un exemple d’utilisation du capteur à ultrasons HC-SR04 avec l’Arduino. Dans ce projet, le capteur à ultrasons lit et écrit la distance à un objet dans le moniteur série.

Le but de ce projet est de vous aider à comprendre le fonctionnement de ce capteur. Ensuite, vous devriez pouvoir utiliser cet exemple dans vos propres projets.

Pièces requises

Voici une liste des pièces nécessaires pour suivre le prochain tutoriel :

Vous pouvez utiliser les liens précédents ou aller directement sur ocraelec  pour trouver toutes les pièces pour vos projets au meilleur prix !

Arduino avec câblage du capteur HC-SR04

Suivez le schéma suivant pour câbler le capteur à ultrasons HC-SR04 à l’Arduino.

Le tableau suivant indique les connexions que vous devez effectuer :

Capteur à ultrasons HC-SR04Arduino
VCC5V
TriggerBroche 11
ÉchoBroche 12
GNDGND

Code

Téléchargez le code suivant sur votre IDE Arduino.


 * Complete Guide for Ultrasonic Sensor HC-SR04
 *
    Ultrasonic sensor Pins:
        VCC: +5VDC
        Trig : Trigger (INPUT) - Pin11
        Echo: Echo (OUTPUT) - Pin 12
        GND: GND
 */
 
int trigPin = 11;    // Trigger
int echoPin = 12;    // Echo
long duration, cm, inches;
 
void setup() {
  //Serial Port begin
  Serial.begin (9600);
  //Define inputs and outputs
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
void loop() {
  // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  // Read the signal from the sensor: a HIGH pulse whose
  // duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
 
  // Convert the time into a distance
  cm = (duration/2) / 29.1;     // Divide by 29.1 or multiply by 0.0343
  inches = (duration/2) / 74;   // Divide by 74 or multiply by 0.0135
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(250);
}

Comment fonctionne le code

Tout d’abord, vous créez des variables pour le déclencheur et la broche d’écho appelées trigPin et echoPin, respectivement. La goupille de déclenchement est connectée au numérique Broche 11, et la broche d’écho est connectée à Broche 12:

int trigPin = 11; 
int echoPin = 12;

Vous créez également trois variables de type long : duration et inches. La variable duration permet de gagner du temps entre l’émission et la réception du signal. La variable cm  enregistrera la distance en centimètres, et la variable inches enregistrera la distance en pouces.

long duration, cm, inches;

Dans le setup()), initialisez le port série à un débit en bauds de 9600 et définissez la broche de déclenchement comme OUTPUT et la broche d’écho comme un INPUT.

//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Dans loop(), déclencher le capteur en envoyant un HIGH de 10 microsecondes. Mais, avant cela, donnez un bref LOW pour vous assurer d’obtenir un raffraichissement à l’état haut.:

digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

Nous utilisons la fonction  pulseIn()  pour obtenir le temps de trajet de l’onde sonore :

duration = pulseIn(echoPin, HIGH);

Le pulseIn() La fonction lit une impulsion HAUT ou BAS sur une broche. Il accepte comme arguments la broche et l’état de l’impulsion (soit HAUT, soit BAS). Il renvoie la durée de l’impulsion en microsecondes. La durée d’impulsion correspond au temps qu’il a fallu pour se rendre à l’objet plus le temps qu’il a fallu pour revenir.

Ensuite, nous calculons la distance à un objet, en tenant compte de la vitesse du son.

distance = (temps de trajet/2) x vitesse du son

La vitesse du son est : 343m/s = 0,0343 cm/uS = 1/29.1 cm/uS

Ou en pouces : 13503,9 pouces/s = 0,0135 pouces/uS = 1/74 pouces/uS

Nous devons diviser le temps de trajet par 2 car nous devons considérer que l’onde a été envoyée, a heurté l’objet, puis est retournée au capteur.

cm = (duration/2) / 29.1;
inches = (duration/2) / 74;

Enfin, nous afficherons les résultats dans le Serial Monitor :

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

Code source avec la bibliothèque NewPing

Vous pouvez également utiliser la bibliothèque NewPing. Téléchargez la bibliothèque ici .

Après avoir installé la bibliothèque NewPing, vous pouvez télécharger le code fourni ci-dessous.


 * created by http://playground.arduino.cc/Code/NewPing
*/

#include <NewPing.h>
 
#define TRIGGER_PIN 11
#define ECHO_PIN 12
#define MAX_DISTANCE 200

// NewPing setup of pins and maximum distance
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
 
void setup() {
   Serial.begin(9600);
}
 
void loop() {
   delay(50);
   unsigned int distance = sonar.ping_cm();
   Serial.print(distance);
   Serial.println("cm");
}

Comment fonctionne le code

Obtenir la distance à un objet à l’aide de la bibliothèque NewPing est beaucoup plus simple.

Vous commencez par inclure la bibliothèque NewPing :

#include <NewPing.h>

Ensuite, définissez le déclencheur et la broche d’écho. La broche de déclenchement est connectée à l’Arduino numériqueBroche 11 et l’écho à Broche 12. Vous devez également définir la variable MAX_DISTANCE pour pouvoir utiliser la bibliothèque.

#define TRIGGER_PIN 11
#define ECHO_PIN 12
#define MAX_DISTANCE 200

Ensuite, vous créez une nouvelle instance NewPing appelée sonar:

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

Dans le setup(), vous initialisez la communication série à un débit en bauds de 9600.

Serial.begin(9600);

Enfin, dans le loop(), il vous suffit d’utiliser la méthode ping_cm()  sur l’objet sonar  pour obtenir la distance en centimètres.

unsigned int distance = sonar.ping_cm();

Si vous voulez obtenir la distance en pouces, vous pouvez utiliser sonar.ping_in().

Demonstration

Téléchargez le code sur votre carte Arduino. Ensuite, ouvrez le moniteur série à un débit en bauds de 115 200.

La distance jusqu’à l’objet le plus proche est imprimée dans la fenêtre Serial Monitor.

Votre Panier
Il n'y a pas d'articles dans le panier !
Continuer les achats
0