Buzzer
Een buzzer is een klein onderdeel dat geluid maakt. Vanuit je code kies je hoe hoog de toon is en hoe hard hij klinkt.
Materiaal
- Nano op het shieldArduino Nano RP2040 Connect op het Leaphy Murphy Shield
- BuzzerMet twee pinnen
De buzzer heeft twee pinnen: een lange (de plus, met een +-teken) en een korte (de min, GND).
Controlevraag
Welke pin van de buzzer gaat naar GND?
Antwoord
De korte pin. De lange pin (met het +-teken) gaat naar een digitale uitgang van de microcontroller.
Aansluiten

Pinnen van de buzzer
- GND (korte pin): de min
- Digital (+) (lange pin): hier komt het stuursignaal binnen
Aansluiten op het shield

Op het shield heeft elke pin van de Nano een eigen rijtje van drie pinnen. De binnenste, naast de Nano, is de pin zelf (bijvoorbeeld D7). De middelste is 3V3 en de buitenste is GND. Sluit een onderdeel aan op het rijtje van zijn pin: dan zitten signaal, 3V3 en GND naast elkaar, en past er een stekker van drie pinnen op. In het schema zegt de legenda welke draad op welke pin komt.
Beide op het rijtje van D6:
- Digital (+) (lange pin) op de binnenste rij, de pin D6
- GND (korte pin) op de buitenste rij, GND
Controlevraag
Mag je de +-pin van de buzzer rechtstreeks aan 3.3V aansluiten?
Antwoord
Nee. De buzzer moet aan een digitale pin zitten, zodat je hem vanuit je code aan en uit kunt zetten. Aan 3.3V zou hij continu aan staan.
Code
Een buzzer maakt geluid als je zijn pin heel snel aan en uit zet. Dat doet
PWM uit machine: hoe vaak per seconde de pin aan en uit gaat, is de
toonhoogte.
Voorbeeld
from machine import Pin, PWM
from time import sleep
buzzer = PWM(Pin("D6"))
buzzer.freq(440)
buzzer.duty_u16(32768)
sleep(1)
buzzer.duty_u16(0)
Je hoort één seconde een toon van 440 Hz (een A) en daarna is het stil.
Uitleg
PWM(Pin("D6"))maakt van pin D6 een PWM-pin. De naam staat tussen aanhalingstekens, zoals hij op het bord staat.buzzer.freq(440)kiest de toonhoogte in hertz: hoe vaak per seconde de pin aan en uit gaat. Lager getal, lagere toon.buzzer.duty_u16(32768)kiest hoe lang de pin per keer aan staat, tussen0en65535. Met32768staat hij de helft van de tijd aan: dan klinkt de buzzer het hardst. Met0is hij stil.
set_buzzer?De bibliotheek leaphymicropython heeft ook set_buzzer, maar die accepteert nu
alleen toonhoogtes tot 255 Hz, en dan hoor je vooral gebrom. Daarom gebruik je
hier PWM uit machine.
Opdracht: piepje van 1 seconde
Laat de buzzer op pin D6 precies 1 seconde een toon van 1000 Hz spelen en daarna stil zijn.
Tip
Verander alleen het getal bij freq(). Stil maak je de buzzer met duty_u16(0).
Oplossing
from machine import Pin, PWM
from time import sleep
buzzer = PWM(Pin("D6"))
buzzer.freq(1000)
buzzer.duty_u16(32768)
sleep(1)
buzzer.duty_u16(0)