Tutorial : HC-SR04

Bonjour

Quitte à utiliser un capteur et faire des tests pour voir comment l’utiliser, autant publier ces tests afin qu’ils puissent servir à d’autres.

Nous allons donc voir comment brancher, utiliser ce capteur, mais avant tout, nous devons savoir que je HC-SR04 est un capteur ultrason facilement utilisable avec les cartes Arduino.

En fait pour çetre franc, c’est la copie Tawanaise du SRF04 de Devantech. Il est donné par son constructeur pour travailler entre 3 Cm et 3m.

Mais (en tout cas la copie que je test) n’est reelement precis que de 3 Cm à 2 m.

Son cone est assez large ce qui fait qu’il est facilement perturbé par des objets ou des murs qui ne sont normalement pas dans son champs de travail. Il est donc préférable de l’utiliser pour des applications de détections assez proches.

Vous trouverez ICI un comparatif des différents Sonars Devantech

Coté agréable de ce clone, il fonctionne tres bien avec la biblioteque du Sonar SRF04. Il est donc très simple à mettre en ouvre.

Le câblage

http://imageshack.us/photo/my-images/254/shema2l.jpg

Pour ce montage, j’utilise une Arduino Nano pour le rendre portable. Mais in est bien sur tres simple de transposer ce Shéma pour une Ono ou un Mega.

Seule difference notoire, le Bus I2C

Analogique A4 SDA et A5 SCL sont les Pins à utiliser pour la Nano et la Uno

Les Pins pour la Mega sont  20 SDA et 21 SCL

Pour rendre cet exemple portable je fais l’affichage sur un écran LCD I2C Mais vous pouvez bien sur utiliser l’affichage sur le serial monitor de votre PC ou un autre modèle d’afficheur. Vous devrez bien sur adapter ce code en fonction de votre choix.

Les bibliothèques utilisées sur cet exemples sont :

Wire.h Pour l’I2C

CLCD.h pour le LCD I2C (Cette Lib a été ecrite par Julien (Luj) de Pobot)  Voir l’article qu’il a fait a ce sujet

Ultrasonic.h pour le capteur

Le code

#include "Ultrasonic.h"
#include <Wire.h>
#include "CLCD.h"
RTC_Millis RTC;
CLCD lcd(0x00,16,2);
int pingPin = 13;
int inPin = 12;

void setup() {
lcd.clear();             // Effacer le LCD
lcd.backlight();             // Allumer le backlight du LCD
Serial.begin(57600);
Serial.println("testing...");
}

void loop() {
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(inPin, INPUT);
duration = pulseIn(inPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
lcd.setCursor(0,0);
lcd.print("Inch: ");
lcd.print(inches);
lcd.print("            ");
lcd.setCursor(0,0);
lcd.setCursor(1,0);
lcd.print("Cm: ");
lcd.print(cm);
lcd.print("            ");
delay(100);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}

Quelques photos du montage
https://i2.wp.com/img843.imageshack.us/img843/6168/photo221111161338.jpg

http://img408.imageshack.us/img408/2617/photo221111161344.th.jpg

http://img638.imageshack.us/img638/9035/photo221111161355.th.jpg

http://img12.imageshack.us/img12/8092/photo221111161404.th.jpg

http://img5.imageshack.us/img5/8228/photo221111161413.th.jpg

http://img411.imageshack.us/img411/5893/photo221111161518.th.jpg

Voila

J’espère que ça vous a intéressé.

A bientôt pour un autre Tuto😉

Yves


One Response to Tutorial : HC-SR04

  1. Gibory says:

    Bonjour Yves,
    Je suis interessé par ce capteur car j’aurais besoin de commander la mise en marche d’un moteur dès que la distance détectée par le capteur atteint une certaine valeur (de l’ordre de 20 cm). Saurais-tu comment procéder pour réaliser un tel circuit?
    D’avance merci,
    Hubert

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: