Objectifs du projet : répondre aux interrogations suivantes :
- C’est quoi un capteur ultrasonique ?
- Comment ça marche le capteur ultrason HC-S04 ?
- Comment ça marche le sèche-mains à ultrason ?
- Comment mesurer la distance avec le capteur ultrason ?
- Comment contrôler la portée ou la distance de mise en marche du sèche-mains à ultrason ?
- Comment utiliser le capteur HC-S04 avec Arduino ?
- Et autres astuces pratiques
Rappels des cours
- Capteur ultrasonique
- Capteur ultrason HC-SR04 (datasheet)
- Driver du courant L298N (datasheet)
- Arduino Atmega328 (datasheet) I
- Arduino Atmega328 (datasheet) II
Projets connexes
-
PROJET ÉLECTRONIQUE FPGA #6 : COMMANDE SYNCHRONE MULTICANAUX D’UN MOTEUR À CC
-
PROJET ÉLECTRONIQUE FPGA #4 #1/3 : CAPTEUR DE DISTANCE ULTRASONIQUE À BASE DU FPGA & ARDUINO
-
PROJET ÉLECTRONIQUE FPGA 4 #2/3 : CAPTEUR DE DISTANCE ULTRASONIQUE À BASE DU FPGA & ARDUINO
Ordonnancement des tâches du programme
- Envoie d’une impulsion de 10µs au capteur ultrason via la sortie TRIG
- Récupération de la distance à partir du signal de retour ECHO
- Extraire la distance en fonction de la mesure du capteur en mm
- Affichage de la distance dans l’interface série
- Lecture de l’entrée analogique A0
- Calcul du seuil en fonction de la distance
- Contrôle du moteur par un signal PWM en fonction de l’état du seuil et la distance mesurée
- Attente d’un délai d’une seconde dédie à l’affichage afin de pouvoir visualiser la distance correctement avec l’œil dans l’interface série. L’absence du délai entraine un affichage rapide et illisible. La valeur du délai engendre aussi le temps de mise à jour du seuil, autrement dit si le délai est égal à 10 s et pendant les 10s on fait varier le potentiomètre, elle ne sera prise en compte qu’à la prochaine itération du programme. Il faut donc choisir un délai raisonnable et optimal pour l’affichage et pour la mise à jour du seuil de déclenchement (en pratique est de l’ordre de 500ms ou d’1s).
Rôle du potentiomètre : Le potentiomètre permet de régler le seuil de mise en marche du sèche-mains. D’une autre façon la distance minimale d’approche pour laquelle le moteur du sèche-mains se mis en marche. La figure ci-dessous illustre la fonction du transfert du système.
On distingue deux zones de fonctionnement
- Distance > D_max : Lorsque la distance mesurée par le capteur dépasse une valeur maximale (distance entre le capteur et les mains), le seuil sera limitée à 256 et par conséquent l’arrêt du sèche-mains. D’une autre façon, les mains sont plus loin de l’équipement. La distance minimale est limitée à 10 mm.
- Distance <= D_max : Durant cette phase, la valeur du seuil dépends du potentiomètre. En effet, le seuil du déclenchement est proportionnel à la valeur acquise par l’entrée analogique A0. Exemple : pour une tension à l’entrée A0 de 5V, la distance d’approche est maximale et égale à D_max. Pour un seuil de 0V, la distance de mise en marche doit être au voisinage de 0 (les mains doits être serrées du capteur 🙂 ). En résumé, grâce à la valeur du seuil on peut varier la distance d’approche entre D_max et 0 ou réglée la sensibilité du capteur.
- + Distance <10 mm: Zone aveugle du capteur
A quoi sert l’interface série ?
On trouve souvent une interface série dans un programme Arduino, mais concrètement à quoi sert ? Ci-dessous une liste pratique des utilisations de l’interface série :
A. Affichage : C’est le cas pour nous, afin d’observer la valeur de la distance durant le déroulement du programme en particulier lorsque on fait varier le potentiomètre et voir comment la distance d’approche réagit
B. Débogage du programme : Un programmeur doit vérifier le bon fonctionnement de son programme, il est indispensable de vérifier si les variables reçoivent des bonnes valeurs ou le bon fonctionnement du programme.
C. Validation d’état d’un capteur/variable : Ca peut être utile pour vérifier si un capteur (tension, courant, température, etc.) marche correctement en observant son état via une interface série pour une entrée déterministe (réponse du capteur aussi connue). SI par exemple, durant la programmation on oublie un facteur 2 (ou le point) dans une fonction de calcul, on ne peut pas s’en rendre compte durant la compilation du programme, mais sera lisible on regardant directement l’état de la variable.
D. Transmission/Réception de données : C’est la fonction basique d’une liaison série 🙂
Schéma de câblage avec Arduino
Programme Arduino
Photos du projet
[masterslider id= »8″]
Vidéo illustrative
************
Un petit commentaire de vous, un Grand encouragement pour nous ?
************
Téléchargement du projet
************
2 réponses sur « Projet électronique #17: Sèche-mains ultrason avec Arduino »
c’est un projet intéressant
Est-ce que c’est le capteur utilisé
Ouii! Pas de lien externe SVP 🙂