Non-bloquante capteur à ultrasons pour Arduino

Le module à ultrasons allant de HC-SR04 est un ajout fantastique à n’importe quel projet de robot. Ses un moyen très simple et pas cher de suivre une progression de robots (en supposant que nous avons des points de référence fixes) signalés allant de 2-400cm avec exactitudes de 3mm possible. C’est aussi une excellente façon d’ajouter l’évitement d’objet pour arrêter votre précieuse création s’écraser sur le paysage.

L’opération de modules est très simple. Lors du déclenchement avec une impulsion de 10us sur l’ergot, le module envoie huit pulsations ultrasoniques 40kHz. Le module puis prend la broche echo haute et il détient là jusqu'à ce qu’il reçoive un écho vers le module. La durée de que la broche de l’écho est élevée est directement proportionnelle à la distance d’un objet. En fait, ce temps est le temps qu’il faut les impulsions de voyager à l’objet et le dos et, parce que nous savons de la vitesse du son à 20° C dans l’air sec au niveau de la mer en 343,2 m/s, nous pouvons utiliser la formule suivante pour déterminer la distance entre le module et l’objet :

distance (m) = (temps (s) * Vitesse (m/s)) / 2

Comme nous allons mesurer le temps en microsecondes est facile pour nous de travailler dans quelle mesure son voyagent par microseconde et il suffit de multiplier notre temps chronométré par ce numéro.

343,2 m/s = 0.0343.2cm/us

Alors maintenant, nous pouvons dire :

distance (cm) = (time(us) * speed(cm/us)) / 2 = (temps * 0.0343.2)/2

Multiplication et division sont pas chers (en fonction du temps) sur un microcontrôleur Qu'on peut ainsi diviser notre constante de vitesse 2 maintenant et économisez répéter l’effort par la suite, donc :

distance (cm) = time(us) * 0.01716

Maintenant, nous allons mesurer un nombre (entier) entier de microsecondes et nous savons que flottante point mathématiques est moins efficace sur un microcontrôleur que l’entier équivalent. Alors, plutôt que multiplication notre durée mesurée par un flottement nous pourrions diviser par un nombre entier parce que 0.01716 équivaut à environ 1/58, donc de nombre à virgule :

distance (cm) = time(us) / 58(cm/us)

En utilisant la même méthode, nous pouvons déterminer que la distance d’un objet en pouces est comme suit :

distance (en) = time(us) / 148(in/us)

Alors, maintenant que nous savons comment le capteur fonctionne, comment l’utiliser et comment faire pour obtenir une valeur utile de sa sortie. Le dernier problème, pour moi en tout cas, est que l’attente pour l’axe de l’écho aller en bas bloquera notre exécution de programmes. Cela signifie qu’en attendant le module prendre une lecture nous ne pouvons pas faire autre chose. Compte tenu de la gamme de modules de 400cm nous pourrions attendre pour autant que de 23ms. Maintenant, cela peut ne pas sembler beaucoup, mais pour un robot qui dispose d’une boucle de contrôle itératif et a beaucoup d’autres choses à faire (contrôle moteurs, collecte d’autres données du capteur), c’est un retard significatif.

Heureusement, il y a un moyen que le microcontrôleur peut nous dire quand la broche écho change plutôt que de nous avoir à regarder et attendre. Ce mécanisme est appelé une « interruption » parce que le microcontrôleur littéralement interrompt l’exécution du programme, lorsqu’une condition d’interruption se produit et appeler une fonction de notre choix. Et c’est la méthode que j’ai utilisé pour cet exemple. Quand la broche echo va élevée au début de l’allant de notre interrupt service routine (ISR, fonction qui traite de l’interruption) est appelée et nous sauver à l’heure actuelle comme notre heure de départ. Quand la broche echo va faible à la fin de l’allant de notre rapport de recherche internationale est appelée à nouveau et nous sauver à l’heure actuelle comme notre heure de fin. La différence entre les heures de début et de fin est le temps pris par l’allant. Simple ! Il y a beaucoup de ressources là-bas qui décrivent comment les interruptions loin mieux que j’ai pu et j’ai déjà écrit beaucoup à beaucoup ici ! Aussi, j’ai enveloppé le code dans une petite bibliothèque, donc si vous voulez l’utiliser et ne soucient pas comment fonctionnent les interruptions, vous n’avez pas besoin de.

Articles Liés

Mesure de la distance à l’aide de capteurs à ultrasons et Arduino

Mesure de la distance à l’aide de capteurs à ultrasons et Arduino

Salut tout le mondeJ'ai eu mon premier Aduino récemment, je suis ici voir la gonne, vous mon premier projetez qui utilise la mesure de la Distance capteur à ultrasons et Arduino, vous pouvez utiliser ce projet demande beaucoup aimeNiveau 1-liquideDét
Capturer l’image à l’aide de capteur à ultrasons avec arduino

Capturer l’image à l’aide de capteur à ultrasons avec arduino

J'ai été dans l'espace de l'ITO pour pas mal de mois et essayant d'intégrer les choses avec la carte Arduino, récemment je suis tombé sur le capteur à ultrasons, il est intéressant. Alors j'ai pensé à créer un petit projet. Le but du projet est de ca
Distance de mesure par capteur à ultrasons utilisant Arduino

Distance de mesure par capteur à ultrasons utilisant Arduino

C'est très simple et utile projet qui peut être utilisé dans notre vie quotidienne.Choses dont vous aurez besoin de projeter est listé ci-dessous...Arduino Uno.Capteur à ultrasons.4 mâle à femelle fil de connexion.câble de raccordement usb.Étape 1: R
Lecture des données de capteur à ultrasons pour FireFly

Lecture des données de capteur à ultrasons pour FireFly

Ce Instructable se penchera sur la configuration d'un capteur à ultrasons à l'aide d'Arduino et Firefly en vue de rechercher une distance des objets et chaque géométrie changeante dans Rhino et, éventuellement, comment utiliser les données pour la dé
Comment utiliser un capteur à ultrason avec Arduino

Comment utiliser un capteur à ultrason avec Arduino

Capteurs à ultrasons HC-SR04 peuvent mesurer les distances avec assez d'exactitude et sont très utiles dans de nombreux projets d'Arduino. J'ai utilisé les dans les robots autonomes, les instruments électroniques et beaucoup d'autres projets. Ils ont
Mesure de Distance pour le capteur à ultrasons LCD Arduino

Mesure de Distance pour le capteur à ultrasons LCD Arduino

Matériel de projet1 - Arduino UNO2 - HC-SR04 Ultrasonik capteur3-afficheur LCD4 - maquetteCode#includeInnovente LCD(10, 9, 5, 4, 3, 2) ; int trigPin = 13 ; Capteur voyage broche reliée à Arduino pin 13 int echoPin = 11 ; Capteur Echo broche reliée à
Mettez un crayon dessin dans un capteur capacitif pour Arduino

Mettez un crayon dessin dans un capteur capacitif pour Arduino

Saviez-vous ?  Vous pouvez faire des dessins au crayon réactives au toucher pour une utilisation avec vos projets !  Il est vraiment facile et vous donne une grande souplesse dans la fabrication des interfaces pour quelque projet de microcontrôleur v
Bon marché capteur PIR pour Arduino par exemple

Bon marché capteur PIR pour Arduino par exemple

pour un projet j'avais besoin de plusieurs capteurs PIR et je sais Adafruit vend une planche PIR pour environ 10 USD. Une description de ce Conseil est sur instructables. C'est faisable, mais j'avais besoin de quelques uns et bien sûr il est égalemen
Comment Interface capteur à ultrasons (HCSR04) à l’arduino uno

Comment Interface capteur à ultrasons (HCSR04) à l’arduino uno

Capteurs à ultrasons sont beaucoup plus efficaces que les autres capteurs de détection d'obstacle. Capteurs à ultrasons relativement peu coûteux et également les émetteurs d'ultrasons et détecteurs sont portables sans besoin de circuits complexes. As
Capteur à ultrasons avec écran LCD

Capteur à ultrasons avec écran LCD

Hé Makers,Il s'agit de mon premier instructables, Désolé si je plaisante pas sortir avec quelque chose. Pendant très longtemps j'ai pensé l'utilisation de capteurs ultrasons télémètre et pour afficher ses relevés sur l'écran LCD. Je suis tombé sur in
Compter les objets à l’aide d’Arduino et capteur à ultrasons sur un convoyeur de production

Compter les objets à l’aide d’Arduino et capteur à ultrasons sur un convoyeur de production

Intro:Cette instructable explique comment utiliser un capteur à ultrason avec Arduino pour compter / log différents paquets sur un convoyeur. L'instrucable couvrira l'installation physique et le programme Arduino.Il ne sera pas toute information sur
Faire Radar utilisant Arduino, capteur à ultrasons et MATLAB

Faire Radar utilisant Arduino, capteur à ultrasons et MATLAB

Dans ce projet, nous allons faire un simple radar pour détecter les obstacles.Plage dépend de la portée du capteur ultrasonique, nous avons utilisé (dans ce projet: 3 mètres).Étape 1: composantsComposants :1 - Arduino Uno2 - capteur à Distance ultras
Comment faire un capteur de Distance à ultrasons Simple Arduino

Comment faire un capteur de Distance à ultrasons Simple Arduino

Il s'agit d'un simple tutoriel sur comment faire un capteur de Distance ultrason Arduino en centimètres. Vous aurez besoin de savoir comment utiliser une carte de test électronique de base et Arduino.Étape 1: Ce qui est un capteur à ultrasons Un capt
Objets de comte et de la mesure à l’aide d’arduino et potentiomètre ou un capteur à ultrasons sur un convoyeur de production

Objets de comte et de la mesure à l’aide d’arduino et potentiomètre ou un capteur à ultrasons sur un convoyeur de production

Cette instructable explique comment utiliser un potentiomètre et un capteur à ultrason avec arduino au comte/mesure/log différents objets sur un convoyeur. Il y aura également une LED qui clignote avec des vitesses différentes et un nombre différent