Buzzer Alarm

From Microduino Wiki
Jump to: navigation, search
Language: English  • 中文


This tutorial will show you how to use Microduino-buzzer with three examples.





Generally, buzzer can be divided into active buzzer and passive buzzer.

  • Active buzzer
    • Internal oscillating and driving circuit. With voltage signal(high level), the buzzer can make sound.
      • Advantage: Easy to use。
      • Disadvantage: only one single tone left since fixed frequency.
  • Passive buzzer
    • Since there is no internal oscillating source, the buzzer can't make sound with DC signal. It has to be driven by changing power signal.
      • Advantage: With controllable sound frequency, you can achieve the effect of seven musical notes.
      • Disadvantage: A little hard to control.

Example 1: Let the buzzer goes off

Build module circuit

  • Setup 1: Connect the Buzzer sensor to interface(6) on the Sensorhub module with connecting line.
  • Setup 2: Stack the Sensorhub and the CoreUSB together.


  • Setup 1: Use usb cable to connect CoreUSB and PC/Mac and then open Arduino IDE.
CoreUSB Ble pc.jpg
  • Setup 2: Download the code and copy it to IDE.
#define buzzer_pin 6 //Define buzzer pin
#define buzzer_fre 600 //Define output frequency

void setup()
void loop()
    tone(buzzer_pin,buzzer_fre);    //Drive the buzzer 

Select Microduino-CoreUSB as the board card as well as corresponding port(COMXX). Click the right arrow(—>)and download program. When you see upload finish notice, it means the program has been written into CoreUSB. Then, you'll hear buzzer goes off.

  • "tone(pin,fre)" Function
    • Fixed pin (pin) and output frequency (fre) signal.
    • You can change the value of buzzer_fre and watch buzzer change.

Example 2: Buzzer makes alarm

  • Copy program code to IDE and download it to Core board.
#define buzzer_pin 6 //Define buzzer pin 

void setup()
void loop()
  for(int i=200;i<=800;i++)  //Increase frequency from 200HZ to 800HZ in a circular manner.
    tone(buzzer_pin,i);    //Output frequency in Number four port. 
    delay(5);      //The frequency lasts 5ms. 
  delay(2000);     //The highest frequency lasts 2s.
  for(int i=800;i>=200;i--)
    delay(10); //The frequency lasts 10ms. 

"for(int i=200;i<=800;i++)" Description: The value of 'i' is 200 initially, which increases 1 each time the 'for' function executes and it will exit from 'for' loop until the value reaches 800. Users can change parameters and watch buzzer change.

The example adopts 'for' loop to change frequency and therefore make alarm.

Example 3: Play music

  • Program code
#define buzzer_pin 6 //Define buzzer pin 
int song[] = {
  262, 262, 294, 262, 349, 330,
  262, 262, 294, 262, 392, 349,
  262, 262, 523, 440, 349, 330, 294,
  494, 494, 440, 349, 392, 349

int noteDurations[] = {
  4, 4, 2, 2, 2, 1,
  4, 4, 2, 2, 2, 1,
  4, 4, 2, 2, 2, 2, 2,
  4, 4, 2, 2, 2, 1

void setup() {
  pinMode(buzzer_pin, OUTPUT);

void loop() {

void song_play()
  for (int thisNote = 0; thisNote < 25; thisNote++)
    int noteDuration = 1000 / noteDurations[thisNote];
    tone(buzzer_pin, song[thisNote], noteDuration);
    int pauseBetweenNotes = noteDuration * 1.20;

' song_play()' is music play function and the note (frequency) is saved in ' song[]'. ' noteDurations[]' represents rhythm.
Music is controlled by tone() and change this function means changing music rhythm. Two types of code: tone(pin, frequency, duration) or tone(pin, frequency)
Seen from the first function, 'pin' represents the pin connecting the speaker and 'frequency' represents sound frequency and 'duration' means time duration (The unit is 'ms').
If using the second function, you need another noTone() function to control noTone(pin) and stop music.

  • Connect the activated buttery box and BM module, stack them together and finishing buildup.