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 à l'aide d'Arduino et d'un capteur à ultrasons

Projet de mesure de distance par ultrasons avec Arduino

La mesure de distance par ultrasons est un outil utile dans diverses applications ces derniers temps. Il peut être utilisé dans diverses applications telles que 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, nous pouvons également mesurer la vitesse et diverses autres dimensions physiques. L'appareil a également des applications dans le domaine de la robotique.

Donc, en gardant ces applications à l'esprit, le capteur à ultrasons est un excellent outil pour mesurer les distances sans aucun contact physique sur de petites distances. Ils utilisent le concept d'ECHO pour mesurer la distance. Dans ce projet, nous allons apprendre à mesurer la distance en interfaçant le module de capteur HC-SR04 avec Arduino et afficher la distance sur un écran LCD 16 × 2.

Schéma de circuit du projet de mesure de distance

L'interfaçage est vraiment simple. Il vous suffit de suivre le schéma du circuit. Donc, tout d'abord, les broches Trig et Echo du capteur à ultrasons sont connectées à A4 et A5 d'Arduino UNO et VCC et GND sont connectés à 5V et GND d'Arduino.

Maintenant, nous allons afficher la distance sur un écran LCD 16×2 qui est connecté à l'Arduino. Connectez les broches RS et EN à la broche numérique 12 et à la broche numérique 11 d'Arduino respectivement. Connectez maintenant D4-D7 de l'écran LCD à la broche numérique 5-2 de l'Arduino. Nous avons également connecté un potentiomètre 10K pour contrôler le contraste de l'écran LCD comme indiqué sur le schéma de circuit.

Composants requis

Module de capteur à ultrasons

Le module de capteur utilisé ici est HC-SR04 , qui est un appareil de mesure à ultrasons sans contact. Ce petit module est capable de mesurer la distance dans la plage de 2 cm à 400 cm. C'est un capteur vraiment précis, il peut mesurer jusqu'à 3 mm.

Le capteur se compose d'un émetteur à ultrasons et d'un récepteur à ultrasons. Le principe de fonctionnement est vraiment simple. Tout d'abord, le déclencheur IO envoie un signal de haut niveau pendant 10 μs. Ensuite, le module de capteur envoie huit cycles de 40 kHz de son ultrasonique et détecte si le signal d'impulsion est reçu ou non. Et si le signal est reçu, via le niveau haut, la durée pendant laquelle le déclencheur IO reste haut est le temps entre l'envoi et la réception du signal.

Distance =(Durée du niveau élevé x Vitesse du son dans l'air (340 M/s))/2

Diagramme chronologique

Comme discuté ci-dessus, le module fonctionne sur l'ECHO du son. Pour le déclenchement du module, une impulsion est envoyée pendant environ 10μs. Après ce processus, le module envoie huit cycles de 40 kHz de son ultrasonique et vérifie sa réflexion. Donc, s'il y a un obstacle, le signal le frappe et revient au récepteur. Et maintenant, la distance est calculée par une formule simple discutée ci-dessus. Nous l'avons divisé par 2 car ce temps est le temps total pour atteindre l'obstacle et revenir au récepteur donc le temps mis pour atteindre l'obstacle est la moitié du temps total. Le chronogramme de ce capteur est donné ci-dessous :

Spécifications techniques
Broches du capteur à ultrasons HC-SR04

Comme discuté ci-dessus, le module fonctionne sur le principe de l'ÉCHO du son. Ainsi, lorsque nous connectons le module à n'importe quel microcontrôleur, le module est d'abord déclenché via la broche Trig et une impulsion de haut niveau est envoyée pendant 10 μs. Ensuite, nous attendons de recevoir l'ECHO. Le microcontrôleur peut calculer le temps. Et puis la distance est calculée par la formule discutée ci-dessus.

Arduino UNO

Arduino est un microcontrôleur open source largement utilisé dans de nombreux projets embarqués à petite et grande échelle. L'Arduino utilisé dans ce projet est Arduino-UNO. La raison d'utiliser cet Arduino est qu'il est moins cher et facile à interfacer. La carte fournit 14 broches d'E/S numériques et 6 broches analogiques. Le microcontrôleur est open source, c'est donc à l'utilisateur de décider comment il veut l'utiliser. Vous pouvez modifier la carte et le logiciel selon les besoins.

Module LCD 16×2

Ces modules sont couramment utilisés à de nombreux endroits dans les projets embarqués, car ils sont moins chers et faciles à interfacer avec les microcontrôleurs. Vous avez peut-être vu ce type d'affichage dans les calculatrices, les mustimètres, etc. Le module LCD utilisé ici peut afficher 16 caractères d'affilée et il comporte deux lignes. Donc, fondamentalement, il a 16 colonnes et 2 lignes. Chaque caractère affiché est composé de 5×8 pixels (matrice de pixels).

Si vous calculez le nombre total de pixels sur l'ensemble de l'écran LCD, il en résulte 5x8x16x2=1280 pixels. Ce qui est un grand nombre. Maintenant, pour afficher quelque chose sur l'écran LCD, nous devons également spécifier la position des caractères. Donc, c'est vraiment une chose difficile à faire. Donc, pour gérer le bon fonctionnement, un IC nommé HD44780 est utilisé. Ce circuit intégré récupère les données et les commandes du microcontrôleur, puis effectue un traitement afin que la sortie souhaitée puisse être imprimée sur l'écran LCD. Ce circuit intégré rend l'interfaçage de l'écran LCD très facile. Nous pouvons utiliser l'écran LCD dans plusieurs de nos projets pour afficher la sortie via les capteurs ou à partir de tout autre module. Examinons quelques-unes des spécifications techniques du module LCD.

Voyons une configuration des broches de l'écran LCD.

Broche et description de l'écran LCD 16×2

Numéro de broche Nom Description
1 VSS C'est la masse et connecté à la masse du circuit.
2 VDD Alimentation pour l'écran LCD (4,7 V à 5,3 V), généralement 5 V
3 VE Cette broche est utilisée pour manipuler le contraste de l'écran LCD. Pour ce faire, nous devons connecter un potentiomètre à cette broche. Ainsi, en ajustant le bouton du potentiomètre, nous pouvons obtenir différents niveaux de contraste à l'écran.
4 RS Enregistrer Sélectionnez. Cette broche est utilisée pour passer du registre de commande au registre de données. Cette broche est connectée au microcontrôleur
5 RW Lecture/Écriture. Cette broche est utilisée pour lire ou écrire sur l'écran LCD. Il est généralement fondé d'écrire les données.
6 FR Activer la broche. Cette broche est connectée au microcontrôleur et reçoit 1 ou 0 pour accuser réception des données.
7 Broches de données (0-7) Ces broches sont utilisées pour envoyer des données 8 bits à l'écran LCD à partir du microcontrôleur. Cet écran LCD peut également être utilisé en mode 4 bits. Pour cela, il vous suffit de connecter 4 broches de données.
8 A Anode. Cette broche est une broche positive pour le rétroéclairage LCD. Il est complètement facultatif d'utiliser cette broche. Utilisez-le si vous avez besoin du rétroéclairage. La consommation de courant devient très inférieure si vous n'utilisez pas le rétroéclairage comme indiqué dans les spécifications techniques.
9 K Cathode. Cette broche est une broche négative pour le rétroéclairage LCD.

Voyons l'interfaçage de base de l'écran LCD avec Arduino. Nous imprimerons du texte sur l'écran LCD en écrivant un code simple. Connectez d'abord les broches RS et EN aux broches numériques 12 et 11 d'Arduino. Connectez maintenant les broches D4-D7 de l'écran LCD aux broches numériques 5-2 d'Arduino. Connectez maintenant RW, VSS et K avec la masse et VDD et A avec 5V d'Arduino. Connectez un potentiomètre avec VE comme indiqué sur le schéma de circuit pour contrôler le contraste de l'écran LCD.

Venez maintenant à la partie de codage. Tout d'abord, nous devons inclure la bibliothèque LiquidCrystal.h pour l'écran LCD.

#include

Maintenant, dans les deux lignes suivantes, nous avons défini des variables pour les broches de données de l'écran LCD connecté à Arduino, puis nous les avons transmises comme argument dans la fonction lcd afin que nous puissions envoyer les données depuis Arduino vers LCD.

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

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

Dans la fonction de configuration, nous avons initialisé l'écran LCD en utilisant la fonction lcd.begin(). Nous avons passé 16 et 2 parce que l'écran LCD que nous utilisons a 16 colonnes et 2 lignes et nous utilisons également l'écran LCD entier. Si vous n'avez besoin que d'une partie de LCD, vous pouvez passer les arguments en conséquence.

Ensuite, nous imprimons « Hello, World ! » dans la ligne suivante. Vous pouvez imprimer n'importe quel message personnalisé que vous souhaitez imprimer, mais gardez à l'esprit que le message dépassant la taille de l'affichage sera imprimé sur la ligne suivante. Alors, manipulez votre message en conséquence.

lcd.begin(16, 2);

lcd.print(“Hello, World!”);

Dans la fonction de boucle, nous avons défini le curseur sur la position (0,1) en utilisant la fonction lcd.setCursor(). Après cela, nous imprimons l'heure à laquelle le message est imprimé.

lcd.setCursor(0, 1);

lcd.print(millis() / 1000);

Après avoir écrit le code, téléchargez-le sur la carte Arduino et vous verrez le message s'imprimer sur l'écran. Vous pouvez modifier le contraste en tournant le bouton du potentiomètre connecté.

Programmation d'Arduino pour la mesure de distance par capteur à ultrasons

La partie codage est vraiment très simple pour ce projet. Commencez par inclure le fichier d'en-tête pour LCD.

#include <LiquidCrystal.h>

Dans les deux lignes suivantes, nous avons défini des macros pour les broches A4 (broche 18) et A5 (broche 19) d'Arduino afin que nous puissions utiliser ces noms au lieu d'utiliser la broche nombres.

#define trig 18
#define echo 19

Maintenant, dans les lignes suivantes, nous avons défini les variables pour différentes broches de l'écran LCD connectées à Arduino, puis nous les avons transmises à la fonction lcd afin que nous puissions initialiser l'écran LCD.

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

Nous avons maintenant défini la variable de distance « d » et la variable de temps « t » et les avons initialisées avec 0.

float t=0,d=0;

Venez maintenant à la fonction de configuration. Dans la première ligne, nous avons initialisé l'écran LCD en utilisant lcd.begin(), puis dans les deux lignes suivantes, nous avons défini les modes de broche pour les broches de déclenchement et d'écho comme sortie et entrée respectivement.

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

Venez ensuite à la fonction de boucle. Tout d'abord, nous avons effacé l'écran LCD par la fonction lcd.clear() afin qu'après chaque itération de la boucle, la sortie précédente n'affecte pas la sortie actuelle. Maintenant, dans les six lignes suivantes, nous initialisons notre capteur à ultrasons en envoyant l'impulsion de haut niveau pendant 10 μs. Et comme nous savons qu'après cela, le capteur envoie automatiquement huit cycles de son ultrasonique de 40 kHz et vérifie sa réflexion. Donc, dans la ligne suivante, nous avons récupéré l'heure du capteur. Ensuite, nous calculons la distance. Nous l'avons divisé par 10000 car la vitesse est en mètre/sec, nous devons donc la convertir en centimètres.

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 avoir écrit le code, téléchargez-le sur Arduino et vous êtes prêt. Amenez maintenant n'importe quel objet ou votre main devant le capteur. Vérifiez la distance sur l'écran LCD. Continuez à modifier la distance entre l'objet et le capteur et vous obtiendrez une bonne distance précise.

Lorsque nous initialisons le capteur en envoyant l'impulsion de haut niveau pendant 10 μs, le capteur envoie huit cycles ultrasonores de 40 kHz et si ces cycles sont réfléchis par un obstacle, ils sont renvoyés vers le destinataire. Désormais, le capteur donne le temps nécessaire pour faire passer le signal ultrasonore de l'émetteur à l'obstacle et de l'obstacle au récepteur. Nous utilisons donc ce temps pour calculer la distance entre le capteur et l'obstacle.


Technologie industrielle

  1. Qu'est-ce qu'un capteur de distance fonctionnant et ses applications
  2. Capteur Arduino - Types et applications
  3. Circuit de capteur PIR et module fonctionnant
  4. Capteur de température Python et Raspberry Pi
  5. Machine à LÉVITATION ULTRASONIQUE utilisant ARDUINO
  6. Voltmètre DIY utilisant Arduino et Smartphone
  7. IOT - Smart Jar utilisant ESP8266, Arduino et capteur à ultrasons
  8. Mesure de la fréquence et du cycle de service à l'aide d'Arduino
  9. Radio FM utilisant Arduino et RDA8057M