HC-SR04

De MCHobby - Wiki
Révision datée du 29 décembre 2014 à 13:42 par Admin (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

HC-SR04-00.jpg

Le HC-SR04 est un module ultrason permettant l'évaluation d'une distance de 2cm à 400cm. La mesure est réalisée "sans contact" et dispose d'une précision de 3mm dans les conditions optimales. Le module inclus un émetteur et un récepteur ultrason ainsi qu'une électronique de contrôle. Le fonctionnement de ce module s'apparente à celui d'un sonar de sous marin et sa mise en oeuvre est relativement simple.

principe de fonctionnement

HC-SR04-10.jpg

  1. Le module émet une onde sonar composée d'une série de 8 impulsions à 40 kHz.
    Un son à 40 KHz est inaudible pour l'oreille humaine capable de percevoir des sons entre 16Hz et 16KHz (cfr Wikipédia).
  2. En utilisant la broche Trig, vous envoyez un signal pour activer le déclenchement de l'impulsion sonar.
  3. Si le signal revient... la sortie passe au niveau haut durant toute la période où l'onde voyage vers l'objet et revient après avoir été réfléchit par se dernier.

Note: L'avantage d'utiliser un son plus aigu est qu'il est directionnel (se propage en ligne droite) alors que les basses fréquences transitent plutôt par la matière. C'est pour cette raison que l'on entend que les basses lorsques les voisins font la fiesta!

Brancher

HC-SR04-01.jpg

Le programme

Voici un programme d'exemple dont nous avons traduit les commentaire pour le rendre plus facile à comprendre.

/* Senseur de distance Ultrason HC-SR04:
 VCC sur Arduino 5v 
 GND sur Arduino GND
 Echo sur Arduino broche 7 
 Trig sur Arduino broche 8
 
 Ce sketch/croquis est originaire de Virtualmix: http://goo.gl/kJ8Gl
 Il a été modifié par Winkle ink ici: 
   http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html
 Puis modifié par ScottC le 10 Nov 2012: 
   http://arduinobasics.blogspot.com/ 
 Finalement traduit par MCHobby.be pour le tutoriel:
   http://wiki.mchobby.be/index.php?title=HC-SR04
 */


#define echoPin 7 // broche Echo 
#define trigPin 8 // broche Trigger (declenchement)
#define LEDPin 13 // LED de la carte Ardiono (branché sur la broche 13)

int maximumRange = 200; // distance Maximale acceptée (en cm)
int minimumRange = 0;   // distance Minimale acceptée (en cm)
long duration, distance; // Durée utilisé pour calculer la distance

void setup() {
 // Activer la communication série
 Serial.begin (9600);
 // Activer les broches
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(LEDPin, OUTPUT); // activer la LED sur la carte (si nécessaire)
}

// Partie du code continuellement exécuté
// Son but est d'effectuer un cycle de détection pour déterminer 
// la distance de l'objet le plus proche (par réverbération de 
// l'onde sur ce dernier)
//
void loop() {
 // Envoi une impulsion de 10 micro seconde sur la broche "trigger" 
 digitalWrite(trigPin, LOW); 
 delayMicroseconds(2); 

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

 // Attend que la broche Echo passe au niveau HAUT 
 // retourne la durée
 duration = pulseIn(echoPin, HIGH);
 
 //Calculer la distance (en cm, basé sur la vitesse du son).
 distance = duration/58.2;
 
 // Si la distance mesurée est HORS des valeurs acceptables
 if (distance >= maximumRange || distance <= minimumRange){
    /* Envoyer une valeur négative sur la liaison série.
       Activer la LED pour indiquer que l'erreur */
   Serial.println("-1");
   digitalWrite(LEDPin, HIGH); 
 }
 else {
   /* Envoyer la distance vers l'ordinateur via liaison série.
      Eteindre la LED pour indiquer une lecture correcte. */
   Serial.println(distance);
   digitalWrite(LEDPin, LOW); 
 }
 
 //Attendre 50ms avant d'effectuer la lecture suivante.
 delay(50);
}

Comment tester

Ouvrez le moniteur série dans Arduino IDE (régler le débit sur 9600 Baud)... vous devriez voir défiler le résultat des différentes mesures (en Centimètre).


Où Acheter


Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.