Capteur de distance Sharp – Arduino

Le capteur Sharp GP2Y0A51SK0F permet de mesurer des distances allant de 2 à 15 cm.

Le capteur fonctionne en utilisant un capteur de lumière spécifique pour détecter une longueur d’onde de lumière dans le spectre infrarouge (IR). En fonction de l’intensité lumineuse, il sera possible de trouver la distance d’un obstacle par rapport au capteur. Plus la distance entre le capteur et l’obstacle est grande, plus la tension diminue.

Le document constructeur est disponible ici.

Caractéristiques :
– Tension d’alimentation : 4,5V à 5,5V
– Durée d’une mesure de distance : 16,5ms
– Plage de mesure : 2 à 15 cm
– Taille : 27.0 ×10.8×12.0mm
– Mode de tension en sortie : Analogique

Récupérer une distance en cm :
Souvenez-vous, pour une entrée analogique, l’Arduino va convertir la tension électrique analogique en sortie du capteur, en un nombre entre 0 et 1023. En entrée, nous disposons de maximum 5V.
Chaque entier aura donc une valeur de 5V / 1024 = 0,0048828125 V

Pour convertir cette valeur en cm, il faut jeter un œil à la courbe de mesure disponible dans le document constructeur.

Entre la distance 2 cm et 15 cm, nous constatons que nous avons une courbe exponentielle décroissante.
Pour une tension d’1V, nous obtenons une distance de 5cm.
Nous pouvons en conclure que distance en cm = (Tension_Volt -1 ) X 5

Concernant le code Arduino, une puissance s’écrie :
Volt^1 = Volt 1 => pow(Volt,1)

 

Câblage :

 

 

 int Capteur_distance = A1;  // Broche analogique pour lire le capteur IR

void setup() {
Serial.begin (9600); // démarre le port série
}

void loop () {
float volts = analogRead(Capteur_distance) * 0.0048828125; // valeur du capteur * (5/1024)
int distance = 5 * pow (volts, -1); // élaboré à partir du graphique 5 = distance théorique / (1 / Volts)
Serial.println (distance); // Distance dans le moniteur série
delay(1000);


}

 

Il est également possible d’afficher la valeur de la tension en volt, ainsi que la distance en cm. Il faudra par contre utiliser ce code :

int Capteur_distance = A1;  // Broche analogique pour lire le capteur IR

void setup() {
Serial.begin (9600); // démarre le port série
}

void loop () {
float volts = analogRead(Capteur_distance) * 0.0048828125; // valeur du capteur * (5/1024)
int distance = 5 * pow (volts, -1); // élaboré à partir du graphique 5 = distance théorique / (1 / Volts)
Serial.print(volts);
Serial.print(" V");
Serial.print(" : ");
Serial.print(distance);
Serial.print(" cm"); // Distance dans le moniteur série
Serial.println("");
delay(500);

}
Capteur de distance Sharp - Distance et Tension

Un commentaire

  1. Bonjour;
    Merci pour cet article !
    J’ai une question : est-ce que la distance calculée reste vraie si le capteur n’est pas exactement en face de l’obstacle ou devient-elle erronée ?
    Merci !
    GT

Rejoignez la conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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