Make noise with a piezo buzzer. Use a pwm pin.

Dependents:   Cave_Runner popcorn default USBMIDI_Buzzer ... more

Committer:
dreschpe
Date:
Tue Sep 11 08:21:45 2012 +0000
Revision:
4:d8e14429a95f
Parent:
3:5a8242af60ba
change beep.c to beep.cpp to avoid compiler problems

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dreschpe 0:18e4a9c978ec 1 #ifndef MBED_BEEP_H
dreschpe 0:18e4a9c978ec 2 #define MBED_BEEP_H
dreschpe 0:18e4a9c978ec 3
dreschpe 0:18e4a9c978ec 4 #include "mbed.h"
dreschpe 0:18e4a9c978ec 5
dreschpe 1:ddccf0a4a414 6 /** class to make sound with a buzzer, based on a PwmOut
dreschpe 3:5a8242af60ba 7 * The class use a timeout to switch off the sound - it is not blocking while making noise
dreschpe 3:5a8242af60ba 8 *
dreschpe 3:5a8242af60ba 9 * Example:
dreschpe 3:5a8242af60ba 10 * @code
dreschpe 3:5a8242af60ba 11 * // Beep with 1Khz for 0.5 seconds
dreschpe 3:5a8242af60ba 12 * #include "mbed.h"
dreschpe 3:5a8242af60ba 13 * #include "beep.h"
dreschpe 3:5a8242af60ba 14 *
dreschpe 3:5a8242af60ba 15 * Beep buzzer(p21);
dreschpe 3:5a8242af60ba 16 *
dreschpe 3:5a8242af60ba 17 * int main() {
dreschpe 3:5a8242af60ba 18 * ...
dreschpe 3:5a8242af60ba 19 * buzzer.beep(1000,0.5);
dreschpe 3:5a8242af60ba 20 * ...
dreschpe 3:5a8242af60ba 21 * }
dreschpe 3:5a8242af60ba 22 * @endcode
dreschpe 3:5a8242af60ba 23 */
dreschpe 1:ddccf0a4a414 24
dreschpe 1:ddccf0a4a414 25
dreschpe 0:18e4a9c978ec 26 namespace mbed {
dreschpe 0:18e4a9c978ec 27
dreschpe 0:18e4a9c978ec 28 /* Class: Beep
dreschpe 0:18e4a9c978ec 29 * A class witch uses pwm to controle a beeper to generate sounds.
dreschpe 0:18e4a9c978ec 30 */
dreschpe 0:18e4a9c978ec 31 class Beep {
dreschpe 0:18e4a9c978ec 32
dreschpe 0:18e4a9c978ec 33 public:
dreschpe 0:18e4a9c978ec 34
dreschpe 3:5a8242af60ba 35 /** Create a Beep object connected to the specified PwmOut pin
dreschpe 3:5a8242af60ba 36 *
dreschpe 3:5a8242af60ba 37 * @param pin PwmOut pin to connect to
dreschpe 3:5a8242af60ba 38 */
dreschpe 0:18e4a9c978ec 39 Beep (PinName pin);
dreschpe 0:18e4a9c978ec 40
dreschpe 3:5a8242af60ba 41 /** Beep with given frequency and duration.
dreschpe 3:5a8242af60ba 42 *
dreschpe 3:5a8242af60ba 43 * @param frequency - the frequency of the tone in Hz
dreschpe 3:5a8242af60ba 44 * @param time - the duration of the tone in seconds
dreschpe 3:5a8242af60ba 45 */
dreschpe 0:18e4a9c978ec 46 void beep (float frequency, float time);
dreschpe 0:18e4a9c978ec 47
dreschpe 3:5a8242af60ba 48 /** stop the beep instantaneous
dreschpe 3:5a8242af60ba 49 * usually not used
dreschpe 3:5a8242af60ba 50 */
dreschpe 0:18e4a9c978ec 51 void nobeep();
dreschpe 0:18e4a9c978ec 52
dreschpe 0:18e4a9c978ec 53 private :
dreschpe 0:18e4a9c978ec 54 PwmOut _pwm;
dreschpe 0:18e4a9c978ec 55 Timeout toff;
dreschpe 0:18e4a9c978ec 56 };
dreschpe 0:18e4a9c978ec 57
dreschpe 0:18e4a9c978ec 58 }
dreschpe 0:18e4a9c978ec 59 #endif