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()