Utiliser un capteur de distance laser VL53L1X pour mesurer des distances allant jusqu'à 4 mètres
Le VL53L1X est un capteur de distance à laser à temps de vol capable de mesurer des distances allant jusqu'à 4 mètres avec une grande précision. Ce capteur communique via I2C et est polyvalent pour diverses applications, telles que la robotique et l'automatisation. Dans ce tutoriel, nous allons explorer comment configurer le capteur VL53L1X avec un Arduino et lire efficacement les valeurs de distance.
Le capteur est alimenté par 3,3 V ou 5 V, et il dispose de plusieurs broches pour la communication I2C, y compris SDA et SCL. Le capteur peut mesurer des distances à une fréquence de 50 Hz, permettant des lectures de distance rapides. Ce tutoriel vous guidera à travers le processus de câblage et le code nécessaire pour faire fonctionner le capteur en douceur. Pour plus de précisions, vous pouvez consulter la vidéo (dans la vidéo à 00:00).
Matériel expliqué
Le composant principal de ce projet est le capteur de distance laser VL53L1X, qui utilise une technologie connue sous le nom de temps de vol (ToF) pour mesurer les distances. Cela signifie qu'il calcule la distance jusqu'à un objet en chronométrant le temps qu'il faut à une impulsion laser pour revenir après avoir frappé un objet. Le capteur possède une communication I2C, ce qui permet une intégration facile avec des microcontrôleurs comme Arduino. En plus du capteur, vous aurez besoin d'une carte Arduino pour le traitement. L'Arduino gérera la communication avec le VL53L1X et affichera les distances mesurées. La configuration est simple, car le capteur peut être alimenté directement à partir des broches de sortie de l'Arduino.
Détails de la fiche technique
| Fabricant | STMicroelectronics |
|---|---|
| Numéro de pièce | VL53L1X |
| Tension logique/IO | 3,3 - 5 V |
| Tension d'alimentation | 2,6 - 5,5 V |
| Courant de sortie (par canal) | Non applicable |
| Courant de crête (par canal) | Non applicable |
| Orientation sur la fréquence PWM | Non applicable |
| Seuils de logique d'entrée | 0,3 × VCC (bas), 0,7 × VCC (haut) |
| Chute de tension / RDS(on)/ saturation | Non applicable |
| Limites thermiques | 0 à 85 °C |
| Paquet | 4,9 x 2,5 x 1,6 mm |
| Remarques / variantes | Capteur de temps de vol à longue portée |
- Alimentez le capteur avec 3,3V ou 5V selon les besoins.
- Utilisez les broches I2C, SDA et SCL, pour la communication.
- Réglez le mode de distance en fonction de vos besoins (court, moyen, long).
- Assurez-vous que le capteur est calibré pour des lectures de distance précises.
- Prenez soin des conditions d'éclairage ambiant, car elles peuvent affecter les mesures.
Instructions de câblage

Pour câbler le capteur VL53L1X à un Arduino, connectez la broche VCC du capteur à la broche 5V de l'Arduino à l'aide d'un fil rouge. Connectez la broche de masse (GND) du capteur au GND de l'Arduino à l'aide d'un fil marron. Pour la communication I2C, connectez la broche SDA du capteur à la broche A4 de l'Arduino à l'aide d'un fil jaune et la broche SCL à la broche A5 à l'aide d'un fil vert. Si vous souhaitez utiliser les broches d'interruption et d'arrêt optionnelles, connectez la broche d'arrêt à la broche numérique 2 et la broche d'interruption à la broche numérique 3, mais celles-ci ne sont pas nécessaires pour un fonctionnement de base.
Exemples de code et guide étape par étape
Dans le code, nous incluons d'abord les bibliothèques nécessaires et définissons les broches pour le capteur. Nous créons une instance du capteur avec la ligne :
SFEVL53L1X distanceSensor;Cette ligne initialise le capteur, ce qui nous permet d'appeler ses méthodes plus tard dans le programme. Ensuite, nous configurons la communication I2C et initialisons le capteur :
void setup(void)
{
Wire.begin();
Serial.begin(9600);
Serial.println("VL53L1X Qwiic Test");
if (distanceSensor.begin() == 0) //Begin returns 0 on a good init
{
Serial.println("Sensor online!");
}
}Dans cet extrait, nous commençons la communication I2C avecWire.begin()et vérifiez si le capteur est correctement initialisé. Enfin, pour lire la distance, nous utilisons le code suivant dans la boucle :
void loop(void)
{
int distance = distanceSensor.getDistance(); // Get distance
Serial.print("Distance: ");
Serial.println(distance);
}Ce code récupère la mesure de distance et l'affiche sur le moniteur série. La boucle lit en continu la distance, permettant des mises à jour en temps réel. Pour un exemple de code complet, veuillez vous référer au code complet chargé en dessous de l'article.
Démonstration / Quoi attendre
Lorsque le capteur est correctement installé, vous pouvez vous attendre à ce qu'il fournisse des mesures de distance précises jusqu'à 4 mètres. Vous pourrez observer de légères fluctuations dans les relevés, en particulier dans des conditions d'éclairage variables (dans la vidéo à 10:30). Il est essentiel de s'assurer que le capteur est propre et dégagé pour obtenir des résultats précis. Si vous rencontrez des relevés inhabituels, vérifiez que le capteur est correctement alimenté et que les connexions I2C sont sécurisées. Les performances du capteur peuvent être affectées par l'environnement, notamment en cas de forte luminosité ou de surfaces réfléchissantes.
Timestamps vidéo
- 00:00 Début
- 00:40 Introduction
- 03:42 Fiche Technique Visitée
- 06:48 Têtes de broche de soldat
- 08:22 Explication du câblage
- 09:06 Code expliqué
- 11:53 Démonstration
- 16:03 Démonstration dans l'obscurité totale
Ressources et références
-
ExterneBibliothèque VL53L0X de Pololu (GitHub)github.com
Fichiers📁
Aucun fichier disponible.