+21622886281
Arduino

Capteur ultrason Arduino

Introduction

Les télémètres HC-SR04, proposés sur le site robotique.tech, utilisent des ultrasons pour mesurer la distance à laquelle se trouve un objet. Ces capteurs se distinguent par leur large plage de mesure et leur excellente réactivité.

Dans cet exemple, un microcontrôleur compatible Arduino Uno® est utilisé pour visualiser les distances mesurées.

Fonctionnement

Pour émettre des ultrasons à 40 kHz, un signal de 10 µS est envoyé sur la broche Trigger du module via une sortie digitale de la carte Arduino Uno®. La capsule émettrice du module génère alors les ultrasons.

La capsule réceptrice du module capte les ultrasons réfléchis par l’objet. Cette information est ensuite transmise à une entrée digitale du microcontrôleur via la broche Echo.

Signal de sortie sur Trigger :

Liste des composants

  • 1 capteur à ultrasons HC-SR04
  • 1 microcontrôleur compatible Arduino Uno®
  • 1 câble USB pour la programmation du microcontrôleur
  • 1 jeu de câbles mâles-femelles type BBJ21

Ces composants et modules sont donnés à titre indicatif et peuvent être remplacés par d’autres modèles équivalents.

Schéma de câblage :

Tableau de correspondance :

 

 

Exemple de code :

L’exemple de code ci-dessous permet la mesure de la distance grâce au capteur HC-SR04. Cette valeur est affichée dans le moniteur série de l’IDE Arduino®.

Le moniteur série est accessible via l’icône ou via la combinaison de touches CTRL + MAJ + M.

#define Broche_Echo 7 // Broche Echo du HC-SR04 sur D7 // #define Broche_Trigger 8 // Broche Trigger du HC-SR04 sur D8 //

// Definition des variables

int MesureMaxi = 300; // Distance maxi a mesurer // int MesureMini = 3; // Distance mini a mesurer //

long Duree; long Distance;

void setup()

{

pinMode(Broche_Trigger, OUTPUT); // Broche Trigger en sortie // pinMode(Broche_Echo, INPUT); // Broche Echo en entree // Serial.begin (115200);

}

void loop() {

// Debut de la mesure avec un signal de 10 µS applique sur TRIG // digitalWrite(Broche_Trigger, LOW); // On efface l’etat logique de TRIG // delayMicroseconds(2);

digitalWrite(Broche_Trigger, HIGH); // On met la broche TRIG a « 1 » pendant 10µS // delayMicroseconds(10);

digitalWrite(Broche_Trigger, LOW); // On remet la broche TRIG a « 0 » //

// On mesure combien de temps le niveau logique haut est actif sur ECHO // Duree = pulseIn(Broche_Echo, HIGH);

// Calcul de la distance grace au temps mesure //

Distance = Duree*0.034/2; // *** voir explications apres l’exemple de code *** //

// Verification si valeur mesuree dans la plage //

if (Distance >= MesureMaxi || Distance <= MesureMini) {

// Si la distance est hors plage, on affiche un message d’erreur // Serial.println(« Distance de mesure en dehors de la plage (3 cm à 3 m) »);

}

else {

// Affichage dans le moniteur serie de la distance mesuree // Serial.print(« Distance mesuree : »);

Serial.print(Distance); Serial.println(« cm »);

}

delay(1000); // On ajoute 1 seconde de delais entre chaque mesure //

La distance mesurée est égale à :

(Durée totale (aller-retour ultrasons) * La vitesse du son (0.034 cm/µs)) / 2 (Aller-retour des ultrasons)




0 commentaire


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top