Buzzer - Tone
Générer un son simple est relativement facile à l'aide d'une broche GPIO en générant une onde carrée symétrique de fréquence voulue.
Le montage
Générer une onde carrée symétrique de fréquence voulue sur une broche GPIO
La génération d'une fréquence voulue sur une broche GPIO en sortie passe par l'utilisation d'un Timer :
from machine import Pin, Timer
led=Pin(16,Pin.OUT) # # broche en sortie
note=440 # La
timer=Timer() # déclare un objet timer
def loop(timer): # fonction exécutée en boucle
led.toggle()
timer.init(freq=note/2, callback=loop)
A noter que l'arrêt de la note est à faire avec :
timer.deinit()
Par PWM
On devrait aussi pouvoir utiliser une PWM 50% à la fréquence voulue :
from machine import Pin, PWM
pwm=PWM(Pin(16)) # impulsion PWM sur la broche 16
note=440 # La
pwm.freq(note) # frequence base PWM
pwm.duty_u16(32767) # impulsion 50%
Par PIO
Les PIO devraient également permettre de le faire, mais ce n'est plus à proprement parlé du Micropython.
Voir section dédiée.
Et aussi
Voir également : upyduino : fonction tone() et noTone()