Difference between revisions of "Buzzer Alarm"

From Microduino Wiki
Jump to: navigation, search
 
(2 intermediate revisions by 2 users not shown)
Line 29: Line 29:
 
==Example 1: Let the buzzer goes off==
 
==Example 1: Let the buzzer goes off==
 
===Build module circuit===
 
===Build module circuit===
*Setup 1:Connect sensor to interface(6) on Hub module with connecting line.  
+
*Setup 1: Connect the Buzzer sensor to interface(6) on the Sensorhub module with connecting line.  
 
[[File:MicroduinoBuzzer-D6.jpg|600px|center]]
 
[[File:MicroduinoBuzzer-D6.jpg|600px|center]]
*Setup 2:Stack Hub and CoreUSB together.
+
*Setup 2: Stack the Sensorhub and the CoreUSB together.
 
[[File:MicroduinoBuzzer-hub-coreusb.jpg|600px|center]]
 
[[File:MicroduinoBuzzer-hub-coreusb.jpg|600px|center]]
  
 
===Debugging===
 
===Debugging===
*Setup 1:Use usb cable to connect CoreUSB and PC/Mac and then open Arduino IDE.  
+
*Setup 1: Use usb cable to connect CoreUSB and PC/Mac and then open Arduino IDE.  
 
[[File:CoreUSB_Ble_pc.jpg|600px|center]]
 
[[File:CoreUSB_Ble_pc.jpg|600px|center]]
* Setup 2:Download the code and copy it to IDE.  
+
* Setup 2: Download the code and copy it to IDE.  
 
<source lang="cpp">
 
<source lang="cpp">
 
#define buzzer_pin 6 //Define buzzer pin
 
#define buzzer_pin 6 //Define buzzer pin
Line 53: Line 53:
 
</source>
 
</source>
 
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.   
 
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
+
*"tone(pin,fre)" Function
 
**Fixed pin (pin) and output frequency (fre) signal.  
 
**Fixed pin (pin) and output frequency (fre) signal.  
 
**You can change the value of buzzer_fre and watch buzzer change.  
 
**You can change the value of buzzer_fre and watch buzzer change.  
Line 81: Line 81:
 
}
 
}
 
</source>
 
</source>
“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.  
+
"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.  
  
 
<br>The example adopts 'for' loop to change frequency and therefore make alarm.  
 
<br>The example adopts 'for' loop to change frequency and therefore make alarm.  
Line 126: Line 126:
 
<br>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)
 
<br>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)
 
<br> 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').  
 
<br> 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').  
<br> If using the second function, you need another noTone() function to contro noTone(pin) and stop music.  
+
<br> 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.  
 
*Connect the activated buttery box and BM module, stack them together and finishing buildup.  
 
[[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]]
 
[[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]]
  
 
|}
 
|}

Latest revision as of 07:25, 4 August 2017

Language: English  • 中文

Objective

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

MicroduinoBuzzer.jpg

Equipment

MicroduinoBuzzer-Equipment.jpg

Description

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.
MicroduinoBuzzer-D6.jpg
  • Setup 2: Stack the Sensorhub and the CoreUSB together.
MicroduinoBuzzer-hub-coreusb.jpg

Debugging

  • 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()
{
  pinMode(buzzer_pin,OUTPUT);
}
 
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()
{
  pinMode(buzzer_pin,OUTPUT);
}
 
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--)
  {
    tone(buzzer_pin,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() {
  song_play();
}

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;
    delay(pauseBetweenNotes);
    noTone(buzzer_pin);
  }
}

' 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.
MicroduinoBuzzer-Equipment-ok.jpg