was successfully added to your cart.

Capteur de recul Arduino

On se retrouve pour un nouveau tutoriel autour du capteur de recul des voitures.
Vous savez tous comment fonctionne les capteurs de recul de votre voiture, je vous propose dans ce tutoriel de coder vous même votre propre capteur de recul à l’aide de l’Arduino et de tous ces outils.

Tout d’abord, vous allez avoir besoin de matériel. Rien de grave, je vous fais une liste de ce qu’il vous faut.
Ensuite, je vais vous parler de la composition du système. En effet, ce système sera basé sur un capteur à ultrason ainsi que de 3 LEDs (Rouge, Orange, Vert).
Enfin, nous allons voir comment programmer le comportement de ce système afin d’étudier son fonctionnement. Bien entendu, les valeurs des distances peuvent varier selon vos exigences.

1°) La Led verte est allumée ET reste allumée tant que la distance entre le capteur et la voiture est supérieure à 100cm (c’est-à-dire 1 mètre).
2°) La Led orange est allumée lorsque la distance entre le capteur et la voiture est comprise entre 100cm et 30cm.
3°) La Led rouge est allumée lorsque la distance entre le capteur et la voiture est inférieure à 30cm.

 

Matériel nécessaire

  • 1x Arduino
  • 3x Résistances 100 Ohm
  • 1x Interrupteur On / Off
  • Câbles
  • Led (vert, jaune, rouge) ou une Led RGB
  • 1x Module ultrason HC-SR04
  • 1x Plaque de prototypage rapide

 

Branchement

Retrouvez ci-dessous un schéma de branchement des different composants sur la plaque de prototypage rapide.

Capteur ultrason + Led + Arduino

Branchement capteur de recul avec Led de position

 

Programmation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
int LedRed = 2;
int LedOrange = 3;
int LedGreen = 4;
int CapteurUltrasonTrig = 12;
int CapteurUltrasonEcho = 11;
 
void setup(){
     pinMode(LedRed, OUTPUT);
     pinMode(LedOrange, OUTPUT);
     pinMode(LedGreen, OUTPUT);
     pinMode(CapteurUltrasonTrig, OUTPUT);
     pinMode(CapteurUltrasonEcho, INPUT);
}
 
void loop(){
     digitalWrite(CapteurUltrasonTrig, HIGH);
     delayMicroseconds(10);
     digitalWrite(CapteurUltrasonTrig, LOW);
     int pulseLength = pulseIn(CapteurUltrasonEcho, HIGH);
     int width = pulseLength/58; //d'après la datasheet, permet de convertir en cm
 
     if(width > 100){
          digitalWrite(LedGreen, HIGH);
          digitalWrite(LedOrange, LOW);
          digitalWrite(LedRed, LOW);
     }
 
     else if(width >= 30 && width <= 100){
          digitalWrite(LedGreen, LOW);
          digitalWrite(LedOrange, HIGH);
          digitalWrite(LedRed, LOW);
     }
 
     else {
          digitalWrite(LedGreen, LOW);
          digitalWrite(LedOrange, LOW);
          digitalWrite(LedRed, HIGH);
     }
}

Retrouver la Datasheet du capteur ultrason HC-SR04.

Test du capteur de recul

Après avoir programmé et téléversé le programme dans votre Arduino, nous pouvons le tester.

Voici le résultat !

Capteur de recul + Led

Capteur de recul + Led

(N’ayant pas de Led verte ni orange, j’ai modélisé ça par 3 Led rouge. A gauche censé être la verte, au milieu la orange et à droite la rouge).


Grégoire A.

9 Comments

  • f-leb dit :

    Merci pour le partage.

    A noter que pulseIn est bloquant, et que cela peut être gênant d’attendre surtout si l’obstacle est loin. Dans le playground Arduino, vous trouverez la bibliothèque NewPing : http://playground.arduino.cc/Code/NewPing
    Elle offre la possibilité de gérer ça par interruption, en allant checker la broche Echo toutes les x microdecondes.

  • goodpapounet dit :

    C’est bien mais ce serait mieux avec le schéma de branchement 🙂

  • agb dit :

    Bonjour, j’aurais aimé savoir pourquoi diviser par 48 (ligne 20) ? Merci

    • Fabien Aubret dit :

      Bonjour,
      Dans la datasheet, on trouve la formule suivante:
      Formula: uS / 58 = centimeters or uS / 148 =inch

      On applique donc ce que la documentation nous dit pour convertir les microsecondes en centimètres 😉

      Bonne journée

  • agb dit :

    *58 pardon

  • PHILIPPE Robert dit :

    Bonjour,
    Excellent article que je cherchai depuis un moment. N’étant pas un spécialiste en électronique, mais je commence à mettre les mains dedans, le fil rouge qui part du Module ultrason HC-SR04 pour rejoindre un fil noir qui va sur l’Arduino, est-ce une erreur de couleur ou de raccordement ?
    Avec quel logiciel faites vous la programmation ?
    Si je remplace les leds par des relais 5V pour alimenter des voyants plus puissants, est-cohérent ?
    Merci pour votre aide
    Robert

    • Fabien Aubret dit :

      Bonjour,
      En effet, il s’agit bien là d’une erreur de schématisation… Le fil dont vous parlez devrait bien être connecté au 5v de l’Arduino et devrait donc être de couleur rouge pour plus de logique. Il n’est d’ailleurs même pas correctement cablé sur la plaque et nous nous excusons de cette maladresse.

      De notre côté, nous utilisons régulièrement l’IDE Arduino classique pour la réalisation de nos projets. Quand ces derniers deviennent plus complexes, on utilise PlatformIO, basé sur l’éditeur Atom. C’est une plateforme Open Source et gratuite qui convient mieux à notre utilisation sur certain point. De manière générale, le choix de l’éditeur est très personnel et dépend énormément de vos préférences (écriture sur fond sombre/clair, couleurs, tailles des polices, organisation générale de l’IDE) et Atom offre la possibilité de personnaliser chacun des ces points

      Enfin, concernant le cablage que vous souhaitez adopter, il me semble tout aussi correct. Il faut cependant faire attention au fait que l’Arduino ne peut libérer que 200mA maximum et qu’il peut donc être dangereux d’utiliser le relais directement sur une sortie (préférez l’utilisation d’un transistor permettant le contrôle du relais qui s’occupera lui du contrôle de la puissance)

      A bientôt,
      Fabien A.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.