Skip to Content

Comment utiliser un capteur de distance IR SHARP GP2Y0A710K0F avec Arduino

Comment utiliser un capteur de distance IR SHARP GP2Y0A710K0F avec Arduino

Le  SHARP GP2Y0A710K0F est un capteur de distance IR facile à utiliser avec une portée extra longue de 100 à 500 cm. Cette portée étendue en fait une bonne alternative aux capteurs de distance à ultrasons.

Dans ce tutoriel, vous apprendrez comment fonctionne le capteur et comment l’utiliser avec Arduino. J’ai inclus un schéma de câblage et un exemple de code pour que vous puissiez commencer à expérimenter avec votre capteur.

Si vous cherchez un capteur de distance plus abordable ou étanche, jetez un œil au HC-SR04 ou JSN-SR04T. Dans les articles ci-dessous, j’explique comment ces capteurs de distance/proximité fonctionnent et comment les utiliser avec Arduino.

Autres capteurs de distance/proximité :

Pièces requises

Capteur de distance GP2Y0A710K0F

Arduino

Arduino Uno

USB Data Sync cable Arduino

Câble USB pour Arduino UNO

Dupont wire set

Jeu de fils Dupont

Half_breadboard56a

Plaque d’essai (breadboard)

Condensateur( 10 µF)

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Comment fonctionne un capteur de distance IR ?

Un capteur de distance IR utilise un faisceau de lumière infrarouge qui se réfléchit sur un objet pour mesurer sa distance. La distance est calculée par triangulation du faisceau lumineux. Le capteur est composé d’une LED IR et d’un détecteur de lumière ou PSD (Position Sensing Device).

Lorsque le faisceau lumineux est réfléchi par un objet, le faisceau réfléchi atteint le détecteur de lumière et un « point optique » se forme sur le PSD.

How an IR distance sensor works light emitter and detector PSD 710
Capteur IR

Quand la position de l’objet change, l’angle du faisceau réfléchi et la position du point sur le PSD changent aussi. Voir les points A et B sur l’image ci-dessous.

How an IR distance sensor works
Notez le changement d’angle du faisceau réfléchi et la position du « point optique » sur le PSD.

Le capteur intègre un circuit de traitement du signal. Ce circuit traite la position du point optique sur le PSD pour déterminer la position (distance) de l’objet réfléchissant. Il fournit un signal analogique qui dépend de la position de l’objet devant le capteur.

Comment lire un capteur de distance IR ?

Les capteurs de distance IR fournissent un signal analogique qui varie selon la distance entre le capteur et un objet. D’après la fiche technique, la tension de sortie du SHARP GP2Y0A710K0F varie de 2,5 V quand un objet est à 100 cm à 1,4 V quand un objet est à 500 cm. Le graphique montre aussi pourquoi la plage de détection utile commence à 100 cm.

Notez que la tension de sortie pour un objet à 30 cm est la même que pour un objet à 160 cm. La plage de détection utile commence donc après le pic, vers 100 cm ou 2,5 V.

GP2Y0A710K0F Output Characteristics
Caractéristiques de mesure de distance (sortie)

Le graphique montre aussi l’inconvénient de ces capteurs : la réponse est non linéaire. En d’autres termes, un grand changement de tension de sortie ne correspond pas toujours à un grand changement de distance. Pour déterminer la distance entre le capteur et un objet, il faut trouver une fonction qui convertit la tension de sortie en valeur de distance.

Si vous tracez la tension de sortie en fonction de l’inverse de la distance, vous obtenez une relation majoritairement linéaire. Pour des distances > 100 cm, vous obtenez la courbe suivante.

GP2Y0A710K0F Output Characteristics Linear
Tension de sortie vs inverse de la distance 1/L (1/cm)

Calcul de la distance

D’après les données de la fiche technique SHARP, vous pouvez calculer la fonction linéaire :

y = 137500x + 1125

Avec y égal à la tension de sortie en mV et x égal à 1/distance en cm.

Cela donne la formule suivante pour la distance entre le capteur et un objet :

distance (cm) = 1 / ((output_voltage_mV – 1125) / 137500)

C’est la fonction utilisée dans la  bibliothèque SharpIR , que nous utiliserons plus tard. Notez que cette fonction est basée uniquement sur les données de la fiche technique SHARP. Les caractéristiques de sortie du capteur peuvent varier légèrement d’un capteur à l’autre, ce qui peut entraîner des mesures imprécises.

Spécifications du GP2Y0A710K0F

Tension de fonctionnement 4,5 à 5,5 V
Courant de fonctionnement 30 mA
Plage de mesure 100 à 550 cm
Type de sortie Analogique
Dimensions 58 x 17,6 x 22,5 mm
Trou de fixation 4,2 mm
Coût Check price

Pour plus d’informations, vous pouvez consulter la fiche technique ici.

Connexion du capteur IR GP2Y0A710K0F à Arduino

Le schéma de câblage ci-dessous montre comment connecter le capteur de distance IR GP2Y0A710K0F à un Arduino.  Notez bien : les couleurs des fils ne sont pas intuitives !

GP2Y0A710K0F-IR-Distance-Sensor-Arduino-Wiring-Diagram-Schematic
Schéma de câblage du capteur de distance IR GP2Y0A710K0F avec Arduino

Ces types de capteurs de distance ont tendance à être un peu bruyants, il est donc recommandé d’ajouter un condensateur entre Vcc et GND. La fiche technique suggère un condensateur de 10 µF ou plus. Connectez la patte positive du condensateur au fil Vcc et la patte négative au fil GND (voir photo). Les condensateurs sont souvent marqués d’une bande indiquant la patte négative. La patte positive est souvent plus longue que la négative.

Connexions GP2Y0A710K0F

GP2Y0A710K0F Arduino
1 (Rouge) GND
2 (Noir) 5V
3 (Jaune) 5V
4 (Vert) A0
5 (Bleu) GND

Si votre capteur a des fils de couleurs différentes, vérifiez bien le brochage ci-dessous. La broche Vo est connectée à l’entrée analogique de l’Arduino (A0).

GP2Y0A710K0F Pinout
Brochage du capteur de distance IR GP2Y0A710K0F

Le connecteur du capteur n’est pas marqué, l’ordre des broches correspond au capteur avec le logo vers le haut.

Maintenant que vous avez câblé le capteur, il est temps de regarder un exemple de code.

Installation de la bibliothèque SharpIR pour Arduino

La bibliothèque SharpIR écrite par Guillaume Rico et Thibaut Mauon facilite grandement l’utilisation des capteurs IR SHARP. Elle inclut les formules nécessaires pour convertir la tension de sortie mesurée en distance en centimètres. Actuellement, la bibliothèque supporte les capteurs suivants : GP2Y0A02YK0F, GP2Y0A21YK0F, GP2Y0A710K0F et GP2YA41SK0F. La dernière version de la bibliothèque peut être téléchargée ici sur GitHub ou cliquez sur le bouton ci-dessous.

Vous pouvez installer la bibliothèque en allant dans Sketch > Include Library > Add .ZIP Library dans l’IDE Arduino.

Installing an Arduino library ZIP
Installation d’une bibliothèque Arduino au format .ZIP.

L’auteur de la bibliothèque a remarqué que les mesures du capteur peuvent fluctuer assez fortement. La bibliothèque résout ce problème en prenant plusieurs mesures consécutives, en éliminant les valeurs aberrantes, puis en calculant la moyenne pour obtenir une lecture de distance plus stable. Actuellement, la bibliothèque calcule la moyenne de 25 mesures, ce qui prend environ 53 ms.

Exemple de code pour le capteur de distance IR SHARP GP2Y0A710K0F avec Arduino

Le code d’exemple ci-dessous peut être utilisé avec le capteur GP2Y0A710K0F et affiche la distance mesurée en centimètres dans le moniteur série.

Vous pouvez copier le code en cliquant sur le bouton en haut à droite du champ de code.

/*SHARP GP2Y0A710K0F IR distance sensor with 
  Arduino and SharpIR library example code. 
  More info: https://www.makerguides.com */

// Include the library:
#include "SharpIR.h"

// Define model and input pin:
#define IRPin A0
#define model 100500

// Variable to store the distance
int distance_cm;

/* Model :
  GP2Y0A02YK0F --> 20150
  GP2Y0A21YK0F --> 1080
  GP2Y0A710K0F --> 100500
  GP2YA41SK0F  --> 430
*/

// Create a new instance of the SharpIR class
SharpIR mySensor = SharpIR(IRPin, model);

void setup() {
  // Serial communication at a baud rate of 9600
  Serial.begin(9600);
}

void loop() {
  // Get a distance measurement and store it as distance_cm
  distance_cm = mySensor.distance();

  // Print the measured distance to the serial monitor
  Serial.print("Mean distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(1000);
}

Notez que nous avons nommé le capteur mySensor dans cet exemple. Si vous souhaitez utiliser plusieurs capteurs de distance IR, vous pouvez créer un autre objet capteur avec un nom différent :  SharpIR mySensor2 = SharpIR(IRPin2, model);  Notez que dans ce cas, vous devez aussi utiliser une broche d’entrée différente pour le second capteur.

Lorsque la tension de sortie est inférieure à 1,4 V ou supérieure à 3,3 V, vous verrez « Mean distance: 0 cm » dans le moniteur série.

Conclusion

Dans cet article, je vous ai montré comment fonctionne le capteur de distance IR SHARP GP2Y0A710K0F et comment l’utiliser avec Arduino. J’espère que vous l’avez trouvé utile et instructif. Si c’est le cas, n’hésitez pas à le partager avec un ami qui aime aussi l’électronique !

N’hésitez pas à poser vos questions dans la section des commentaires.