Académique Documents
Professionnel Documents
Culture Documents
Donnez à votre prochain projet Arduino des pouvoirs de chauve-souris avec un capteur
de distance à ultrasons HC-SR04 qui peut signaler la portée des objets jusqu'à 13 pieds
de distance. Ce qui est vraiment une bonne information à avoir si vous essayez d'éviter
que votre robot ne pénètre dans un mur! Ils sont de faible puissance (adaptés aux
appareils alimentés par batterie), peu coûteux, faciles à interfacer et sont incroyablement
populaires parmi les amateurs. Et en prime, il a même l'air cool, comme une paire d'yeux
Wall-E Robot pour votre dernière invention robotique!
Les ultrasons sont des ondes sonores aiguës dont les fréquences sont supérieures à la
limite audible de l'audition humaine.
Les oreilles humaines peuvent entendre des ondes sonores qui vibrent dans une plage
allant d'environ 20 fois par seconde (un grondement profond) à environ 20 000 fois par
seconde (un sifflement aigu). Cependant, l'échographie a une fréquence supérieure à 20
000 Hz et est donc inaudible pour l'homme.
Le capteur est petit, facile à utiliser dans tout projet de robotique et offre une excellente
détection de portée sans contact entre 2 cm et 400 cm (soit environ un pouce à 13
pieds) avec une précision de 3 mm. Puisqu'il fonctionne sur 5 volts, il peut être connecté
directement à un Arduino ou à tout autre microcontrôleur logique 5V.
Tension de fonctionnement DC 5 V
Courant de fonctionnement 15 mA
Gamme Max 4m
Gamme Min 2 cm
Précision de portée 3 mm
Dimension 45 x 20 x 15 mm
Dans le cas où, si ces impulsions ne sont pas réfléchies, le signal d'écho expirera après
38 ms (38 millisecondes) et reviendra à l'état bas. Ainsi, une impulsion de 38 mS
n'indique aucune obstruction dans la portée du capteur.
Si ces impulsions sont réfléchies, la broche Echo devient basse dès que le signal est
reçu. Cela produit une impulsion dont la largeur varie entre 150 µS et 25 mS, en fonction
du temps nécessaire à la réception du signal.
La largeur de l'impulsion reçue est ensuite utilisée pour calculer la distance à l'objet
réfléchi. Cela peut être résolu en utilisant une simple équation distance-vitesse-temps,
nous avons appris au lycée. Au cas où vous auriez oublié, un moyen facile de se souvenir
des équations de distance, de vitesse et de temps est de mettre les lettres dans un
triangle.
Prenons un exemple pour le rendre plus clair. Supposons que nous ayons un objet
devant le capteur à une distance inconnue et que nous recevions une impulsion de
largeur 500 µS sur la broche Echo. Calculons maintenant la distance entre l'objet et le
capteur. Nous utiliserons l'équation ci-dessous.
Distance = Vitesse x Temps
Ici, nous avons la valeur du temps soit 500 µs et nous connaissons la vitesse. Quelle
vitesse avons-nous? La vitesse du son, bien sûr! Ses 340 m / s. Nous devons convertir la
vitesse du son en cm / µs pour calculer la distance. Une recherche rapide sur Google
pour «vitesse du son en centimètres par microseconde» dira qu'elle est de 0,034 cm /
µs. Vous pouvez faire le calcul, mais la recherche est plus facile. Quoi qu'il en soit, avec
ces informations, nous pouvons calculer la distance!
Mais ce n'est pas fait! N'oubliez pas que l'impulsion indique le temps qu'il a fallu pour
que le signal soit envoyé et réfléchi, donc pour obtenir la distance, vous devrez diviser
votre résultat en deux.
Distance = 8,5 cm
Donc, maintenant, nous savons que l'objet est à 8,5 centimètres du capteur.
Lorsque vous avez terminé, vous devriez avoir quelque chose qui ressemble à
l'illustration ci-dessous.
Câb
Alors maintenant que nous avons connecté notre capteur de distance à ultrasons, il est
temps d'écrire du code et de le tester.
NewPing_v1.9.0.zip
Pour l'installer, ouvrez l'IDE Arduino, accédez à Sketch> Inclure la bibliothèque> Ajouter
une bibliothèque .ZIP, puis sélectionnez le fichier ZIP NewPing que vous venez de
télécharger. Si vous avez besoin de plus de détails sur l'installation d'une bibliothèque,
visitez ce tutoriel sur l'installation d'une bibliothèque Arduino.
La bibliothèque NewPing est assez avancée et améliore considérablement la précision
de notre croquis d'origine. Il prend également en charge jusqu'à 15 capteurs à ultrasons
à la fois et peut émettre directement en centimètres, en pouces ou en durée.
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Send ping, get distance in cm
distance = sonar.ping_cm();
Sortie sur
moniteur série
Explication du code:
L'esquisse ci-dessus est simple et fonctionne bien, mais elle n'a qu'une résolution
inférieure à un centimètre. Si vous souhaitez ramener les valeurs de la virgule décimale,
vous pouvez utiliser NewPing en mode durée plutôt qu'en mode distance. Vous devez
remplacer cette ligne
duration = sonar.ping();
distance = (duration / 2) * 0.0343;
Pour améliorer la précision de votre HC-SR04 au niveau supérieur, il existe une autre
fonction dans la bibliothèque NewPing appelée «itérations». Itérer signifie parcourir
quelque chose plus d'une fois, et c'est précisément ce que fait le mode d'itération. Il
prend plusieurs mesures de durée au lieu d'une seule, rejette toutes les lectures non
valides, puis fait la moyenne des autres. Par défaut, il faut 5 lectures, mais vous pouvez
en spécifier autant que vous le souhaitez.
int iterations = 5;
duration = sonar.ping_median(iterations);
Projet Arduino
Si vous n'êtes pas familier avec les écrans LCD 16 × 2 caractères, envisagez de lire (au
moins en survolant) le didacticiel ci-dessous.
Ensuite, nous devons établir les connexions à l'écran LCD comme indiqué ci-dessous.
Câblage du capteur à ultrasons HC-SR04 et de l'écran LCD 16 × 2 à Arduino UNO
LcdBarGraph-1.5.zip
Une fois que vous avez installé la bibliothèque, essayez le croquis ci-dessous.
// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LcdBarGraph lbg(&lcd, 16, 0, 1); // Creates an LCD Bargraph object.
void setup()
{
lcd.begin(16,2); // Initializes the interface to the LCD screen
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop()
{
// Write a pulse to the HC-SR04 Trigger Pin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Explication du code:
Vous devez d'abord configurer la bibliothèque LiquidCrystal comme d'habitude. Après
cela, vous pouvez créer une instance LcdBarGraph avec l'instance LiquidCrystal qui vient
d'être créée. Vous devez passer la référence de LiquidCrystal au constructeur de
LcdBarGraph.
Maintenant, une fois que nous calculons la distance du capteur, nous pouvons utiliser la
fonction drawValue (value, maxValue) pour afficher le bargraph. Cela dessine un
bargraph avec une valeur comprise entre 0 et maxValue.
//display bargraph
lbg.drawValue(distance, max_distance);
Interfaçage du HC-SR04 avec le mode 3 fils
Le mode 3 fils est quelque chose dont vous n'avez besoin que d'une seule connexion à
une seule broche d'E / S numérique Arduino au lieu de deux. Si vous ne le savez pas, il
existe de nombreux capteurs à ultrasons qui ne fonctionnent qu'en mode 3 fils, comme
un impressionnant capteur de parallaxe ping))) .
En mode 3 fils, la broche d'E / S unique est utilisée à la fois comme entrée et comme
sortie. Cela est possible car il n'y a jamais de moment où l'entrée et la sortie sont
utilisées. En éliminant l'exigence d'une broche d'E / S, nous pouvons enregistrer une
connexion à notre Arduino et l'utiliser pour autre chose. Il est également utile lors de
l'utilisation d'une puce comme l'ATtiny85 qui a un nombre limité de broches d'E / S.
Câb
Comme vous pouvez le voir, tout ce que vous avez à faire est de connecter à la fois le
déclencheur et l'écho à la broche Arduino 9. Notez que la seule différence que vous
devez faire dans l'esquisse est de définir la broche 9 pour les valeurs des broches
Trigger et Echo. Le reste de l'esquisse est identique.
b) L'objet a sa surface réfléchissante à un angle peu profond afin que le son ne soit pas
réfléchi vers le capteur.
c) L'objet est trop petit pour renvoyer suffisamment de son vers le capteur. De plus, si
votre capteur HC-SR04 est monté bas sur votre appareil, vous pouvez détecter le son se
reflétant sur le sol.
d) En expérimentant avec le capteur, nous avons découvert que certains objets avec des
surfaces molles et irrégulières (comme les animaux en peluche) absorbent plutôt que
réfléchissent le son et peuvent donc être difficiles à détecter pour le capteur HC-SR04.
Effet de la température sur la mesure de
distance
Bien que le HC-SR04 soit raisonnablement précis pour la plupart de nos projets tels que
la détection d'intrus ou les alarmes de proximité; Mais il y a des moments où vous
voudrez peut-être concevoir un appareil qui doit être utilisé à l'extérieur ou dans un
environnement exceptionnellement chaud ou froid. Si tel est le cas, vous voudrez peut-
être prendre en compte le fait que la vitesse du son dans l'air varie en fonction de la
température, de la pression atmosphérique et de l'humidité.
Étant donné que la vitesse du son est prise en compte dans notre calcul de distance HC-
SR04, cela pourrait affecter nos lectures. Si la température (° C) et l'humidité sont déjà
connues, considérez la formule ci-dessous:
Avertissement
Politique de confidentialité
Copyright ©