Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Mesure de distance précise par ultrasons avec Arduino – Guide étape par étape

Projet de mesure de distance par ultrasons utilisant Arduino

La mesure de distance par ultrasons est un outil utile dans diverses applications récemment. Elle peut être utilisée pour le positionnement, la localisation, le dimensionnement, la sélection, la mesure de niveau, le contrôle et le profilage. En faisant des calculs mathématiques avec les valeurs de sortie, on peut aussi mesurer la vitesse et diverses autres dimensions physiques. L'appareil a aussi des applications en robotique.

Gardant ces applications à l'esprit, le capteur à ultrasons est un excellent outil pour mesurer des distances sans contact physique pour de courtes distances. Ils utilisent le concept d'ÉCHO pour mesurer la distance. Dans ce projet, nous allons apprendre à mesurer la distance en interfaçant le module capteur HC-SR04 avec Arduino et afficher la distance sur un LCD 16×2.

Schéma de circuit du projet de mesure de distance

Mesure de distance précise par ultrasons avec Arduino – Guide étape par étape

L'interfaçage est vraiment simple. Suivez juste le schéma. Premièrement, les broches Trig et Echo du capteur ultrasons sont connectées aux broches A4 et A5 d'Arduino UNO, VCC et GND au 5V et GND d'Arduino.

Maintenant, nous allons afficher la distance sur un LCD 16×2 connecté à Arduino. Connectez RS et EN aux broches numériques 12 et 11 d'Arduino. Connectez D4-D7 du LCD aux broches numériques 5-2 d'Arduino. Nous avons aussi connecté un potentiomètre 10K pour contrôler le contraste du LCD comme montré.

Composants requis

Module capteur ultrasonique

Le module utilisé ici est HC-SR04, un dispositif de mesure ultrasonique sans contact. Ce petit module mesure des distances de 2cm à 400cm. C'est un capteur précis, capable de mesurer jusqu'à 3mm.

Le capteur consiste en un émetteur et un récepteur ultrasoniques. Le principe est simple. D'abord, la broche d'entrée (trigger) envoie un signal haut niveau pendant 10μs. Ensuite, le module envoie huit cycles de 40 kHz d'ultrasons et détecte si le signal de retour est reçu. Si le signal est reçu, par niveau haut, la durée pendant laquelle la broche trigger reste haute est le temps d'envoi à réception.

Distance = (Temps niveau haut × Vitesse du son dans l'air (340 m/s)) / 2

Diagramme de temporisation

Comme discuté, le module fonctionne sur l'ÉCHO du son. Pour déclencher le module, une impulsion est envoyée pendant ~10μs. Après, le module envoie huit cycles de 40 kHz et vérifie sa réflexion. S'il y a un obstacle, le signal frappe et revient au récepteur. La distance est calculée par la formule. On divise par 2 car ce temps est le temps total aller-retour, donc le temps pour atteindre l'obstacle est la moitié. Le diagramme de temporisation est ci-dessous :

Mesure de distance précise par ultrasons avec Arduino – Guide étape par étape

Spécifications techniques
Broches du capteur ultrasonique HC-SR04

Comme discuté, le module fonctionne sur le principe de l'ÉCHO. Quand on connecte le module à un microcontrôleur, on déclenche d'abord par la broche Trig en envoyant une impulsion haute de 10μs. Puis on attend l'ÉCHO. Le microcontrôleur calcule le temps. Puis la distance est calculée par la formule.

Arduino UNO

Arduino est un microcontrôleur open source largement utilisé dans de nombreux projets embarqués petits et grands. Celui utilisé ici est Arduino UNO. La raison : il est moins cher et facile à interfacer. La carte fournit 14 broches E/S numériques et 6 broches analogiques. Le microcontrôleur est open source, tout dépend de l'utilisateur. Vous pouvez modifier la carte et le logiciel selon vos besoins.

Module LCD 16×2

Ces modules sont couramment utilisés dans les projets embarqués, car ils sont peu chers et faciles à interfacer. Vous avez peut-être vu ce type d'affichage dans les calculatrices, multimètres, etc. Le module utilisé ici affiche 16 caractères par ligne sur 2 lignes. Chaque caractère est une matrice de 5×8 pixels. Total pixels : 5×8×16×2 = 1280 pixels. Pour afficher quelque chose, il faut spécifier la position. Pour gérer le fonctionnement, un CI nommé HD44780 est utilisé. Il récupère données et commandes du microcontrôleur et fait le traitement pour l'affichage. Cela rend l'interfaçage LCD très facile.

Voyons quelques spécifications techniques :

Voyons la configuration des broches du LCD.

Brochage et description du LCD 16×2

Numéro de broche Nom Description
1VSSMasse, connectée à la masse du circuit
2VDDAlimentation LCD (4,7V-5,3V), typiquement 5V
3VEContraste LCD. Connecter un potentiomètre pour ajuster
4RSSélection registre. Basculer entre registre commande et données. Connecté au microcontrôleur
5RWLecture/Écriture. Généralement mis à la masse pour écrire les données
6ENEnable. Connecté au microcontrôleur, reçoit 1 ou 0 pour acquitter les données
7Broches données (0-7)Envoient données 8-bit au LCD. Utilisable en mode 4-bit (4 broches seulement)
8AAnode. Broche positive pour rétroéclairage LCD. Optionnel. Courant moindre sans rétroéclairage
9KCathode. Broche négative pour rétroéclairage LCD

Voyons l'interfaçage basique LCD avec Arduino. Affichons du texte par un code simple. Connectez RS et EN aux broches 12 et 11 d'Arduino. D4-D7 aux broches 5-2. RW, VSS et K à la masse, VDD et A au 5V. Connectez un potentiomètre à VE pour contrôler le contraste.

Passons au code. Incluons la bibliothèque LiquidCrystal.h pour le LCD.

#include <LiquidCrystal.h>

Dans les deux lignes suivantes, nous définissons les variables pour les broches de données du LCD connectées à Arduino et les passons en argument à la fonction lcd.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Dans setup, nous initialisons le LCD par lcd.begin(). Nous passons 16 et 2 car le LCD a 16 colonnes et 2 lignes. Si vous ne voulez qu'une portion, ajustez les arguments.

Ensuite, nous affichons 'Hello, World!'. Vous pouvez personnaliser le message mais attention à la taille de l'affichage.

lcd.begin(16, 2);

lcd.print("Hello, World!");

Dans loop, nous positionnons le curseur à (0,1) par lcd.setCursor() et affichons le temps d'impression.

lcd.setCursor(0, 1);

lcd.print(millis() / 1000);

Après téléversement, vous verrez le message sur l'affichage. Changez le contraste en tournant le potentiomètre.

Programmation Arduino pour mesure de distance par capteur ultrasonique

Le codage est très facile. Commencez par inclure le fichier d'en-tête pour LCD.

#include <LiquidCrystal.h>

Dans les deux lignes suivantes, nous définissons des macros pour les broches A4 (broche 18) et A5 (broche 19) d'Arduino.

#define trig 18
#define echo 19

Dans les lignes suivantes, nous définissons les variables pour les broches LCD et les passons à la fonction lcd pour l'initialiser.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Nous définissons la variable distance 'd' et temps 't' initialisées à 0.

float t=0, d=0;

Passons à setup. Première ligne : initialisation LCD par lcd.begin(). Les deux lignes suivantes : modes des broches trigger et echo en sortie et entrée.

void setup() {
  lcd.begin(16,2);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

Passons à loop. Première ligne : lcd.clear() pour effacer la sortie précédente. Six lignes suivantes : initialisation du capteur par impulsion haute de 10μs. Le capteur envoie huit cycles 40kHz et vérifie la réflexion. Ligne suivante : récupération du temps du capteur. Calcul de la distance. Division par 10000 car la vitesse est en m/s, conversion en cm.

void loop() {
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  t = pulseIn(echo, HIGH);
  d = t * 0.0340 / 2;
  d = t * 0.01330 / 2;
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(d);
  lcd.print(" cm");
  delay(1000);
}

Fonctionnement du circuit de mesure de distance

Après téléversement du code, c'est prêt. Placez un objet ou votre main devant le capteur. Vérifiez la distance sur le LCD. Changez la distance et vous obtiendrez une mesure précise.

Quand on initialise le capteur par impulsion haute de 10μs, il envoie huit cycles 40kHz et si ceux-ci sont réfléchis par un obstacle, ils reviennent au récepteur. Le capteur donne le temps de parcours du signal ultrasonique de l'émetteur à l'obstacle et retour. Nous utilisons ce temps pour calculer la distance.

Mesure de distance précise par ultrasons avec Arduino – Guide étape par étape

Technologie industrielle

  1. Comment Fonctionnent les Capteurs de Distance et Leurs Applications Clés
  2. Capteurs Arduino : Types, Applications et Projets Réels
  3. Comment fonctionnent les circuits de capteur PIR : conception, fonctionnement et applications réelles
  4. Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
  5. Construire un dispositif de lévitation ultrasonique avec Arduino – Guide étape par étape
  6. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  7. Bocal Intelligent IoT avec ESP8266, Arduino et Capteur Ultrasonique – Surveillance Temps Réel
  8. Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO
  9. Construire une Radio FM Compacte avec Arduino Nano et RDA5807M