The Grove - Buzzer module has a piezo buzzer as the main component. The piezo can be connected to digital outputs, and will emit a tone when the output is HIGH. Alternatively, it can be connected to an analog pulse-width modulation output to generate various tones and effects.
Follow these steps to build a sample circuit using this module but without using any microcontroller:
You can use either the Grove - USB Power module or the Grove - DC Jack Power module for the Grove circuit.
Follow these simple steps to build a Grove circuit using the buzzer:
// Project Four - Noise maker // void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delay(analogRead(0)); digitalWrite(6, LOW); delay(analogRead(0)); }
Playing Music (Buzzer)
/* Buzzer The example use a buzzer to play melodies. It sends a square wave of the appropriate frequency to the buzzer, generating the corresponding tone. The circuit: * Buzzer attached to pin39 (J14 plug on Grove Base BoosterPack) * one side pin (either one) to ground * the other side pin to VCC * LED anode (long leg) attached to RED_LED * LED cathode (short leg) attached to ground * Note: This example code is in the public domain. http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Kit_v1.1b#Grove_-_Buzzer */ /* Macro Define */ #define BUZZER_PIN 39 /* sig pin of the buzzer */ int length = 15; /* the number of notes */ char notes[] = "ccggaagffeeddc "; int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; int tempo = 300; void setup() { /* set buzzer pin as output */ pinMode(BUZZER_PIN, OUTPUT); } void loop() { for(int i = 0; i < length; i++) { if(notes[i] == ' ') { delay(beats[i] * tempo); } else { playNote(notes[i], beats[i] * tempo); } delay(tempo / 2); /* delay between notes */ } } /* play tone */ void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(BUZZER_PIN, HIGH); delayMicroseconds(tone); digitalWrite(BUZZER_PIN, LOW); delayMicroseconds(tone); } } void playNote(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { playTone(tones[i], duration); } } }
The following is a simple example to show how to use the Grove - Buzzer module on Raspberry Pi. The buzzer makes noise and delays one second. Then quiet for a second.It repeats the above action.
# GrovePi + Grove Buzzer import time import grovepi # Connect the Grove Buzzer to digital port D8 # SIG,NC,VCC,GND buzzer = 8 grovepi.pinMode(buzzer,"OUTPUT") while True: try: # Buzz for 1 second grovepi.digitalWrite(buzzer,1) print 'start' time.sleep(1) # Stop buzzing for 1 second and repeat grovepi.digitalWrite(buzzer,0) print 'stop' time.sleep(1) except KeyboardInterrupt: grovepi.digitalWrite(buzzer,0) break except IOError: print "Error"
cd GrovePi/Software/Python/
sudo python grove_buzzer.py
This Grove module is available as part of all the Grove Kits including the most recently released Grove Mixer Pack V2.
Alternatively, it can be bought stand-alone here at the Seeed Studio Bazaar.