Corrigé de l’activité numérique sur la période/fréquence/hauteur d’un son
Important : la somme des deux durées d’attente : en position on() puis en position off() détermine le temps total pour une vibration : c’est la période du son.
La période se note T, l’unité est la seconde : T(s). Le son est un phénomène périodique
Quelle est la période du son produit ?
Pour obtenir une vibration complète, le temps d’exécution est de 2000 + 2000 µs donc la période est T = 4000×10−6s on simplifiera pour obtenir T = 4×10−3s
Important : l’inverse de la période s’appelle la fréquence d’un son.
La fréquence se note F et son unité est le Hertz ( Hz ) La fréquence correspond au nombre de périodes par seconde.
F(Hz) = 1 T(s)
Calculer la fréquence du son produit :
On sait que F(Hz) = 1
T(s) avec T = 4×10−3s soit F = 250Hz
Sans faire d’essais, uniquement à partir de la définition de la fréquence, si la période diminue, en déduire l’évolution de la fréquence : va-t-elle augmenter ou diminuer ? (justifier)
Si la période diminue, le nombre de périodes par seconde augmente donc la fréquence augmente.
On peut aussi partir du principe que la fréquence est inversement
proportionnelle à la période puisque F = 1 / T donc la fréquence augmente si la période diminue.
2eme étape : Modifier la période / fréquence / durée d’un son
Quelle devra être la durée d’attente en micro secondes pour chaque temporisation sleep_us( ? ) pour que la période d’une vibration soit divisée par 4 ?
Si on divise la période par 4 alors T = 1000 µs.
La buzzer sera donc sur buzzer.on() pendant sleep_us(500) soit 500 µs et sur buzzer.off() pendant sleep_us(500)donc au total la période est bien de 1000 µs
Quelle sera alors la fréquence du son ?
On sait que F(Hz) = 1
T(s) avec T = 1×10−3s donc F = 1000 Hz.
On peut constater que si la période est divisée par 4 : on passe de 4000µs → 1000 µs la fréquence est bien multipliée par 4 puisqu’on passe de 250 Hz à 1000 Hz.
Le son produit est-il plus aigüe ou plus grave ?
Si la fréquence augmente (1000Hz au lieu de 250 Hz), le son produit est plus aigüe.
La caractéristique d’un son : aigüe # grave s’appelle la hauteur du son.
=> Quelle relation peut-on établir entre la fréquence et la hauteur d’un son ?
Plus la fréquence d’un son augmente, plus le son est aigüe et réciproquement.
Dans les deux cas, le buzzer produit 200 vibrations.
Expliquer pourquoi le son aigüe dure moins longtemps que le son grave. (justifier)
Lorsque le son est aigüe, la fréquence est plus élevée donc la période est plus petite.
Si on produit toujours 200 vibrations, la durée totale des 200 vibrations sera plus petite.
On souhaite produire un son de 2000 Hz. Quelle doit être la période T du son ? En déduire la durée de temporisation sleep_us( ? ) entre on( ) et off( ). Combien de vibrations doit-on programmer pour que la durée du son soit de 0,5 s ?
On sait que T(s) = 1
F(Hz) avec F = 2000Hz donc T = 500 µs. On en déduit que la temporisation pour buzzer.on() et buzzer.on() sera de 250 µs → sleep_us(250).
Si la durée totale du son doit être de 0,5 s, on doit produire n périodes de 500 µs de telle sorte que n×500x10−6 = 0.5 donc n = 0,5
500x10−6 soit n = 1000 vibrations
On modifie le code avec sleep_us( 125 ) et 600 vibrations.
Quelle sera la fréquence et la durée du son produit ?
Si la temporisation est de 125 µs, la période sera de T = 250 µs, soit T = 0,25 x 10-3 s.
Par conséquence la fréquence sera de F = 1
0,25x10−3 soit F = 4000 Hz.
La durée du son sera de 600 x 0,25 x 10-3 s soit une durée de 0,15 seconde
Indiquer dans les cadres ce que va produire chaque bloc d’instruction from machine import Pin
from time import sleep_us
buzzer = Pin ( 25, Pin.OUT ) for n in range(3) :
for delta_t in range( 400, 800 ):
buzzer.on()
sleep_us ( delta_t ) buzzer.off()
sleep_us ( delta_t )
for delta_t in range( 800, 400, -1 ):
buzzer.on()
sleep_us ( delta_t ) buzzer.off()
sleep_us ( delta_t )
Conclusion, ce code va produire trois fois une modulation du son où il va être de plus en plus grave puis de plus en plus aigüe, un peu comme le son d’une sirène.
On va produire 3 boucles
Dans cette partie du code, on a remplacé
la temporisation constante par une temporisation dont la valeur est variable : delta_t.
Au début de la boucle for, delta_t a pour valeur 400 et 800 en fin de boucle.
Si delta_t augmente progressivement alors la période va augmenter, donc la fréquence du son va diminuer, donc le son sera de plus en plus Grave.
Ici, dans cette boucle for, c’est l’inverse, delta_t commence à la valeur de 800 puis décroit progressivement jusqu’à 400 donc la période du son diminue donc la fréquence augmente donc le son sera de plus en plus aigüe.