In this article, we connect a KY-006 Passive Buzzer to a Raspberry Pi Pico, any Rp2040 type board will be suitable. We actually tested this with a Cytron Maker Pi Pico
We will use Micropython for these examples but of course you can use the Arduino IDE as well if you have Raspberry Pi Pico support enabled
The KY-006 passive buzzer is a 3-pin module that creates an audible sound of varying frequencies using pulse width modulation . It can produce a range of tones and sounds depending on the input. This means you can create sound effects or simple musical notes.
- Min/Max Operating Voltage 1.5V to 15V DC
- Current: <25mA
- Frequency: <20Hz to >2.5kHz
- Dimensions: 0.728in x 0.591in (18.5mm x 15mm)
The sensor looks like this
Parts Required
You can connect to the module using dupont style jumper wire.
Name | Link | |
Raspberry Pi Pico | ||
37 in one sensor kit | ||
Connecting cables |
Schematic/Connection
Pico | SENSOR |
---|---|
GPIO28 | S |
3v3 | + |
GND | – |
Code Examples
Basic example
from machine import Pin, PWM from utime import sleep # Initialization of GPIO15 as PWM pin buzzer = PWM(Pin(28)) # Defining the different pitches tones = { "B0": 31, "C1": 33, "CS1": 35, "D1": 37, "DS1": 39, "E1": 41, "F1": 44, "FS1": 46, "G1": 49, "GS1": 52, "A1": 55, "AS1": 58, "B1": 62, "C2": 65, "CS2": 69, "D2": 73, "DS2": 78, "E2": 82, "F2": 87, "FS2": 93, "G2": 98, "GS2": 104, "A2": 110, "AS2": 117, "B2": 123, "C3": 131, "CS3": 139, "D3": 147, "DS3": 156, "E3": 165, "F3": 175, "FS3": 185, "G3": 196, "GS3": 208, "A3": 220, "AS3": 233, "B3": 247, "C4": 262, "CS4": 277, "D4": 294, "DS4": 311, "E4": 330, "F4": 349, "FS4": 370, "G4": 392, "GS4": 415, "A4": 440, "AS4": 466, "B4": 494, "C5": 523, "CS5": 554, "D5": 587, "DS5": 622, "E5": 659, "F5": 698, "FS5": 740, "G5": 784, "GS5": 831, "A5": 880, "AS5": 932, "B5": 988, "C6": 1047, "CS6": 1109, "D6": 1175, "DS6": 1245, "E6": 1319, "F6": 1397, "FS6": 1480, "G6": 1568, "GS6": 1661, "A6": 1760, "AS6": 1865, "B6": 1976, "C7": 2093, "CS7": 2217, "D7": 2349, "DS7": 2489, "E7": 2637, "F7": 2794, "FS7": 2960, "G7": 3136, "GS7": 3322, "A7": 3520, "AS7": 3729, "B7": 3951, "C8": 4186, "CS8": 4435, "D8": 4699, "DS8": 4978 } # Defining the song to be played mytune = ["A5","C5","D8","P","G7","G5","E6","A5","P"] def playTone(frequency): buzzer.duty_u16(1000) buzzer.freq(frequency) # Switch off the buzzer def buzzerOff(): buzzer.duty_u16(0) def playSong(mytune): for i in range(len(mytune)): if (mytune[i] == "P"): buzzerOff() else: playTone(tones[mytune[i]]) sleep(0.3) buzzerOff() # play song playSong(mytune)
REPL Output
n/a
Links
https://github.com/getelectronics/rp2040learning/tree/main/Sensor%20Kit/KY-006%20Passive%20Buzzer