Make noise with a piezo buzzer. Use a digital out pin.
Fork of beep by
This is a simple non blocking library to turn on the pin passed into the constructor for the amount of time specified when calling the beep(float time) function.
I use it to turn on a buzzer but it could be used for anything you need to turn on for a set time.
beep.cpp
- Committer:
- joe4465
- Date:
- 2014-02-22
- Revision:
- 5:372aa7360db7
- Parent:
- 4:d8e14429a95f
File content as of revision 5:372aa7360db7:
#include "beep.h"
#include "mbed.h"
/** class to make sound with a buzzer, based on a PwmOut
* The class use a timeout to switch off the sound - it is not blocking while making noise
*
* Example:
* @code
* // Beep with 1Khz for 0.5 seconds
* #include "mbed.h"
* #include "beep.h"
*
* Beep buzzer(p21);
*
* int main() {
* ...
* buzzer.beep(1000,0.5);
* ...
* }
* @endcode
*/
using namespace mbed;
// constructor
/** Create a Beep object connected to the specified PwmOut pin
*
* @param pin PwmOut pin to connect to
*/
Beep::Beep(PinName pin) : _digitalOut(pin) {
_digitalOut.write(0); // after creating it have to be off
}
/** stop the beep instantaneous
* usually not used
*/
void Beep::nobeep() {
_digitalOut.write(0);
}
/** Beep with given frequency and duration.
*
* @param frequency - the frequency of the tone in Hz
* @param time - the duration of the tone in seconds
*/
void Beep::beep(float time) {
_digitalOut.write(1);
toff.attach(this,&Beep::nobeep, time); // time to off
}
Joseph Roberts
