Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser
En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.
Topic "Mesurer une distance avec un capteur à ultrason HC-SR04 et une carte Arduino / Genuino"
Flux RSS des posts récents dans ce topic ( Flux Atom)
Dans ce tutoriel, nous allons apprendre ensemble à utiliser un capteur de distance à ultrason de référence HC-SR04 avec une carte Arduino / Genuino. En bonus, nous testerons la précision des mesures dans diverses situations.
#491 |
Bonjour s'il vous plait je cherche une petite instruction qui me permettra de calculer la vitesse de l'objet détecté s'il est en mouvement merci
#501 |
s'il vous plait je cherche une petite instruction qui me permettra de calculer la vitesse de l'objet détecté s'il est en mouvement
par bo6
Pas sûr que cela soit possible avec un capteur à ultrason.
Si l'objet se dirige vers le capteur ou s'en éloigne, on doit pouvoir faire un calcul entre la distance parcourue et le temps écoulé.
Par contre, si l'objet passe devant le capteur (perpendiculairement), il faut deux capteurs au minimum et un chrono pour mesurer le temps entre les deux détections.
Dans les deux cas, ça me parait inadapté d'utiliser un HC-SR04. C'est pour faire quoi au final ?
#512 |
Je vous remercie énormément pour votre réponse, en fait j'ai pensé exactement à la même problématique et j'ai considéré comme contrainte que l'objet se dirige directement vers le capteur, mais vous avez proposez de calculer le temps écoulé en utilisant un chrono, cependant je veux que la tâche soit automatisée et que ma carte Arduino l'effectue.
D'après vous qu'est-ce qui vous parait mieux adapté qu'un HC-SR04? Mon but en fait est d'effectuer un calcul sur les petites voitures des jouets en détectant leurs vitesse.
Un grand merci
#521 |
Je vous remercie énormément pour votre réponse, en fait j'ai pensé exactement à la même problématique et j'ai considéré comme contrainte que l'objet se dirige directement vers le capteur, mais vous avez proposez de calculer le temps écoulé en utilisant un chrono, cependant je veux que la tâche soit automatisée et que ma carte Arduino l'effectue.
par bo6
On peut réaliser un chrono sans probléme avec une carte Arduino. Un chrono ce n'est rien de plus qu'une soustraction de deux temps
Pour faire une mesure de vitesse, il faudrait :
faire en continu une mesure de distance,
détecter l'entrée d'un objet dans le champ de mesure (distance de début de mesure),
stocker le temps actuel,
attendre que l'objet arrive à une distance X du capteur (distance de fin de mesure),
soustraire le temps actuel au temps en mémoire,
faire le calcul de vitesse.
D'après vous qu'est-ce qui vous parait mieux adapté qu'un HC-SR04? Mon but en fait est d'effectuer un calcul sur les petites voitures des jouets en détectant leurs vitesse.
par bo6
Très franchement, j'en ai aucune idée. La mesure de vitesse c'est pas vraiment mon domaine.
Je sais qu'il existe des modules radar Doppler miniatures mais je ne sais pas comment ils s’utilisent
#609 |
bonjour comment on fait pour voire la distance merci d'avance et votre tuto est tres bien
#627 |
comment on fait pour voire la distance
par tromxuasnoc
Le code pour calculer la distance est dans le chapitre "Le code" de l'article.
#641 |
Bonjour ! Auriez vous un capteur moins "low-cost" à conseiller ? Je cherche à remplacer un contact de fin de course par un capteur ultrason mais le HC-SR04 ne semble pas le meilleur choix
#643 |
Auriez vous un capteur moins "low-cost" à conseiller ?
par Portnawoak
Le capteur "PING)))" de Parallax peut être intéressant. Les HC-SR04 sont basés sur le design de ce capteur à l'origine.
Sinon il y a la gamme de capteurs MaxSonar qui permet de s’accommoder de n'importe quelle situation moyennant finance.
#645 |
Merci ! Je suis finalement laissé tenté par le HC-SR04 en fiabilisant ses lectures de la façon suivante :
je fais une première mesure Puis une 2e. Si l'écart entre les 2 mesures ne dépasse pas un certain seuil, je lance une 3e mesure, sinon je recommence à zéro Je fais une 3e mesure et vérifie si son écart par rapport à la moyenne des 2 précédentes mesures est acceptable. Au final, une fois que mes 3 mesures successives répondent à mes exigences d'écart type, je retiens la moyenne des 3 mesures comme mesure finale.
Derniére modification le
#815 |
Bonjour, Personnellement, je préfère utiliser la fonctionnalité input capture (mesure peut se faire par interruption) présente sur tous les ATMega. Pour ceux qui sont intéressés, j'ai un écrit un article (en Anglais) ici. ultra-sound-meter-hc-sr04
Derniére modification le
#850 |
Bonjour, J'avais une question. Pourquoi dans la mesure du temps nous utilisons un long et non pas un int ? Merci.
#852 |
Bonjour breizhmann, J'ai demandé la réponse de votre question à un ami, il m'a dis qu'on utilise un float pour la mesure du temps pour avoir une valeur plus présise par rapport à ce qu'un int peut nous afficher.
par bo6
#862 |
Pourquoi dans la mesure du temps nous utilisons un long et non pas un int ?
par breizhmann
Car la fonction pulseIn() retourne un long, tout simplement.
Un int peut contenir une valeur entre -32767 et +32767, ou 0~65535 en non signé. 32767 microsecondes représente ~33 millisecondes, soit ~14m à la vitesse du son. On pourrait donc techniquement utiliser un int mais comme la fonction pulseIn retourne un long, je préfère rester avec un long pour éviter un avertissement du compilateur. Tout simplement.
#934 |
Bonjour , actuellement pour ce capteur je cherche à faire une calibration pour mon aquarium . En simple retirer 17 cm pour pouvoir savoir le niveau d'eau qu'il manque dans mon aquarium à tout moment de la journée . Si possible avoir le code arduino pour le faire .
Derniére modification le
#979 |
Merci pour ce tuto, qui a fonctionné du 1er coup (homis le Serial.begin() trop rapide pour mon pc) Bravo pour la clarté des explications.
La mesure expérimentale de la précision du capteur est intéressante.
Elle fait l'hypothèse d'une vitesse du son dans l'air de 340 m/s, ce qui globalement juste mais légèrement variable suivant l'humidité et la température. Il faudrait donc faire une 1e mesure "de calibration" dans une configuration connue (au mm), puis utiliser cette valeur pour les essais suivants. Ainsi, la justesse serait augmentée.
J'ai essayé de moyenner sur 1000 mesures, et la répétabilité n'est pas améliorée.
La précision théorique est de l'ordre de la demi longueur d'onde (v/2f). A 40 KHz dans l'air elle devrait approcher ~0,5 mm.
Comme mes mesures sur un grand réflecteur plan varient de ~4mm, il est probable qu'il y ait un soucis coté électronique (le signal d'impulsion ? la mesure précise du temps de réception ?). A suivre…
#982 |
Bonjour j'ai suivie votre tutoriel.Je tenais tout d’abord a vous remercier car ce tutoriel m'a aidée a débuter en arduino cependant je rencontre un problème j'ai téléversée le programme et correctement branché les câble(étant donnée que j'ai une mega 2560 il n'y avait pas de port d2 et d3 j'ai donc branché le trigger et le echo sur le d22 et d23 tout en modifiant les numéro de pin dans le programme)cependant le programme fonctionne bien pour la première mesure mais affiche du charabia pour toute les autre pourriez vous m'aider a résoudre ce problème? Merci d'avance
Voici ce qui s'affiche:
15:38:40.052 -> Distance: 5Distance: 1669.40cm,Distance: 1796.90cm, ⸮⸮⸮⸮⸮⸮Ӗ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮
Derniére modification le
#989 |
Bonjour, Comment peux-je calculer la vitesse avec ce composant sinon, il ya t il d'autre suggestion?
#992 |
Bonjour skywodd
Je voudrai ajouter dans le code 2 choses, mais comme je suis débutant je galère !! j aimerai pouvoir lire les infos sur un lcd et ajouter la possibilité de mettre un seuil de détection avec led quant le capteur s approche d'un distance suffisante une led vert reste allumé) quant on est trop prêt une rouge s allume.
Merci pour votre aide et bravo pour vos tutos. CDT
#1075 |
Bonjour,
Merci pour votre tuto, je suis très intéressé par ce capteur mais en même temps très déçu car mon projet consiste à faire une "toise" ( pour mesurer les petits enfants) or les essais effectués introduisent une erreur importante lorsque le capteur est dirigé vers le sol jusqu'à 73 cm pas de problème mais au delà les mesures ne sont pas cohérentes cela doit être du à la nature même du capteur auriez-vous par contre quelques suggestions ou conseils ? Cordialement
#1094 |
merci beaucoup, les explications sont très claires et instructives.