!! Demenagement du site !! => http://smartrobotics.org/blog

A la suite de la coupe de France de robotique 2012, j’ai décidé de faire peau neuve au site internet et de changer d’adresse.

.

.

.

Voici donc la nouvelle adresse :  http://smartrobotics.org/blog

.

.

.

.

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://i0.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