Create a Light-sensitive Alarm with micro:bit
A buzzer is an audio signalling device. There are two types of buzzers, a passive buzzer and an active buzzer. In this guide, we will learn to differentiate between the two, then connect a passive buzzer module to the micro:bit and get it to play a song and change its bpm with a button press.
A light dependent resistor will also be added to the circuit, to create an alarm clock that automatically rings when it gets bright!
After completing this guide, you will understand the basics involved in using a buzzer, and can go on to make your own creations!
|Parts Used in This Guide|
Step 1 The Module
Let's take a closer look at the light-dependent resistor module as well as the buzzer module.
The light-dependent resistor module has four pins:
- Voltage Common Collector (VCC)
- Ground (GND)
- Digital Output (DO)
- Analog Output (AO)
The buzzer module has three pins:
- Voltage Common Collector (VCC)
- Input/Output (I/O)
- Ground (GND)
Note: There are two buzzer modules in the kit. Open up the 'Day 15' bag as well, one of the buzzer modules only has a + on the top as shown in the third image, while the other has 'HYDZ' written on it.
One is a passive buzzer while the other is an active buzzer. An active buzzer has additional circuitry in it, and it can generate its own tone. On the other hand, a passive buzzer is like a speaker, where a changing input signal produces the sound. If you put them side by side, the active buzzer is the slightly taller one.
Step 2 Connect module to breadboard
Step 3 Connect + to VCC
Step 4 Connect GND to GND (light-dependent resistor)
Step 5 Connect P5 to DO
Step 6 Connect P1 to AO
Step 7 Connect + to VCC (Buzzer module)
Step 8 Connect P0 to I/O
Step 9 Connect GND to GND (Buzzer module)
Step 10 Connect 3.3v to +
Step 11 Test out the two buzzer modules
Before we begin, let's take a look at the difference between the two buzzer modules.
Use this same MakeCode for both buzzers, swapping them out one after the other. Upload this MakeCode to the Micro:bit to hear the difference!
Using the passive buzzer module, you will hear a faint ticking sound as it does not produce its own tone. The active buzzer module will produce a loud beep. In the following MakeCode examples, we will be using the passive buzzer module.
Step 12 Power up sound
- First, open up MakeCode editor and start a new project.
- Let's test the buzzer with a power-up sound.
- From the MakeCode editor, click on the 'Music' tab.
- Drag and drop a 'start melody ... repeating ...' block
- Change it to 'birthday' and 'forever.'
- Attach it to a 'on start' block.
Step 13 On button A press!
We can also change the bpm (beats per minute) of the tune.
- Change the 'start melody ... repeating ...' block to 'nyan' and 'forever'.
- From 'Input' tab, drag and drop a 'on button A press' block.
- Again from 'Music' tab, grab a 'change tempo by bpm' block and replace its value with '5'.
Step 14 Add variable 'lightVal'
You can play all sorts of sounds with a buzzer module and a micro:bit. But what about making a light-sensitive alarm clock with it? So let's add a light dependent resistor to the circuit!
The alarm will automatically sound when it gets bright enough.
We will set a threshold level value for this brightness level.
Firstly, create a variable for 'lightVal' which is short for light value. This will store the analog value rather than digital value (1 or 0) of the light level.
- To do so, go to 'Variables' tab and click on 'Make a variable'. Name it 'lightVal'
- Click on 'Pins' tab and drag and drop a 'analog read pin P0' block. Change its value to 'P1' instead.
Step 15 Show number
To set the threshold level, let's take a look at how bright it is around your surroundings.
So from 'Basic' tab, grab a 'show number... ' block, and add 'lightVal' as its value.
Step 16 The loop
We will create the loop that will run forever until the micro:bit is turned off.
- From 'Logic' tab, grab a '0 < 0' block.
- Change its value to 'lightVal < 600'
- From 'Music' tab, grab a 'start melody ... repeating ...' block
Try changing the tune to a longer one such as 'birthday' or 'entertainer' then upload this code to your Micro:bit now. You might realise that only part of the tune plays.
To play a full tune, grab the next MakeCode!
Step 17 Play the whole tune!
Click the download button below to get this MakeCode!
Step 18 Use the active buzzer!
Optionally, if you want to use the active buzzer instead, you can. Click the download button below and use the active buzzer with this MakeCode!
Step 19 Upload the code
To upload the code to the micro:bit, follow these steps:
- Connect the micro:bit to the computer via microUSB cable
- Click on the 'Download' button and the hex file will be automatically downloaded to your 'Downloads' folder
- Drag and drop the downloaded .hex file to the MICROBIT drive
- Leave the micro:bit alone for a few seconds as it blinks. The code is uploading!
Once powered up, the buzzer will sound the alarm when it gets bright. Cover the light dependent resistor with your hands, and the buzzer will stop making sound!