Mesure de la vitesse du son à l'aide d'un microcontroleur
Objectif
On détourne l'usage initialement prévu pour déterminer la vitesse de l'onde ultrasonore en mesurant le temps mis par l'onde pour parcourir une distance connue
Méthode : Principe de la mesure
Il s'agit de connecter l'émetteur/récepteur d'ultrasons comme indiqué précédemment puis de placer un obstacle permettant la réflexion de l'onde.
On mesure le plus précisément possible la distance qui sépare le composant de l'obstacle en prenant comme référence les capsules protégées par la grille du capteur.
Cette valeur peut être entrée dans un programme en tant que variable. Le programme mesure le temps mis par l'onde pour effectuer un aller-retour et renvoie la valeur en microsecondes. Il est alors possible de calculer la vitesse du son et de l'afficher.
Pour afficher le résultat, on visualise sur les diodes, ou on affiche la valeur dans le REPL de l'éditeur Mu.
""" mesure vitesse du son"""
from microbit import *
from machine import time_pulse_us #gestion des µs
def mesure_vitesse(distance):
""" Calcule la vitesse du son en m/s distance est exprimée en cm """
pin2.write_digital(1) # pin2 au niveau haut pour démarrer une salve US
sleep(10) # salve de durée 10 ms
pin2.write_digital(0) # fin de l'impulsion
pin2.read_digital() # configuration de pin2 en INPUT
duree = time_pulse_us(pin2, 1) # durée pdt laquelle le pin2 est à l'état haut depuis la ligne précédente = durée de parcours de la salve en µs
vitesse = 2 * distance / (duree/1000000)
vitesse = round(vitesse/100,1) # conversion en m/s(arrondie au dixième)
return vitesse
DISTANCE = 50 # distance utilisée pour mesurer la vitesse du son, exprimée en cm !
while True:
if button_a.was_pressed(): # bouton A pour effectuer une mesure
vitesse = mesure_vitesse(DISTANCE)
print(vitesse) # retour REPL dans la console de l'éditeur
display.show("v="+str(vitesse)+" ", delay=500, loop=True, wait=False)