Utilities classes for the Zumo Robot
Dependents: ZumoRobotBluetoothControlled Fsl_Zumo
This library represents some useful code for controlling your Zumo Robot.
Buzzer.cpp@7:d2af97b7cc94, 2017-07-23 (annotated)
- Committer:
- catalincraciun7
- Date:
- Sun Jul 23 12:51:35 2017 +0000
- Revision:
- 7:d2af97b7cc94
- Parent:
- 6:7740c9d8d834
Minor changes to code style;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
catalincraciun7 | 4:dcd52a961392 | 1 | // Craciun Catalin |
catalincraciun7 | 4:dcd52a961392 | 2 | // Buzzer.cpp |
catalincraciun7 | 4:dcd52a961392 | 3 | // © 2014 Catalin Craciun |
catalincraciun7 | 4:dcd52a961392 | 4 | |
catalincraciun7 | 7:d2af97b7cc94 | 5 | #include "Buzzer.h" |
catalincraciun7 | 7:d2af97b7cc94 | 6 | #define MELODY_LENGTH 5 |
catalincraciun7 | 4:dcd52a961392 | 7 | |
catalincraciun7 | 7:d2af97b7cc94 | 8 | Buzzer::Buzzer(PinName buzzerPinName):buzzerPin(buzzerPinName) { |
catalincraciun7 | 4:dcd52a961392 | 9 | // Initialising |
catalincraciun7 | 5:5e12111ef01f | 10 | buzzerPin.period_us(0); |
catalincraciun7 | 5:5e12111ef01f | 11 | buzzerPin.pulsewidth_us(0); |
catalincraciun7 | 4:dcd52a961392 | 12 | } |
catalincraciun7 | 4:dcd52a961392 | 13 | |
catalincraciun7 | 7:d2af97b7cc94 | 14 | Buzzer::~Buzzer() { |
catalincraciun7 | 4:dcd52a961392 | 15 | // Deinitialising |
catalincraciun7 | 4:dcd52a961392 | 16 | } |
catalincraciun7 | 4:dcd52a961392 | 17 | |
catalincraciun7 | 7:d2af97b7cc94 | 18 | void Buzzer::stopBeep() { |
catalincraciun7 | 6:7740c9d8d834 | 19 | |
catalincraciun7 | 5:5e12111ef01f | 20 | buzzerPin.period_us(0); |
catalincraciun7 | 5:5e12111ef01f | 21 | buzzerPin.pulsewidth_us(0); |
catalincraciun7 | 4:dcd52a961392 | 22 | } |
catalincraciun7 | 4:dcd52a961392 | 23 | |
catalincraciun7 | 7:d2af97b7cc94 | 24 | void Buzzer::startBeep(float frequency, float duration) { |
catalincraciun7 | 7:d2af97b7cc94 | 25 | buzzerPin.period(1.0f/frequency); |
catalincraciun7 | 5:5e12111ef01f | 26 | buzzerPin.pulsewidth_us(100); |
catalincraciun7 | 4:dcd52a961392 | 27 | timeout.attach(this, &Buzzer::stopBeep, duration); |
catalincraciun7 | 4:dcd52a961392 | 28 | } |
catalincraciun7 | 4:dcd52a961392 | 29 | |
catalincraciun7 | 7:d2af97b7cc94 | 30 | void Buzzer::playDefaultMelody() { |
catalincraciun7 | 6:7740c9d8d834 | 31 | // Playing default melody on buzzer |
catalincraciun7 | 7:d2af97b7cc94 | 32 | for (int cycle = 0; cycle < MELODY_LENGTH; cycle++) { |
catalincraciun7 | 6:7740c9d8d834 | 33 | buzzerPin.period(16); |
catalincraciun7 | 6:7740c9d8d834 | 34 | buzzerPin.pulsewidth_us(200); |
catalincraciun7 | 6:7740c9d8d834 | 35 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 36 | |
catalincraciun7 | 6:7740c9d8d834 | 37 | buzzerPin.period(0); |
catalincraciun7 | 6:7740c9d8d834 | 38 | buzzerPin.pulsewidth_us(0); |
catalincraciun7 | 6:7740c9d8d834 | 39 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 40 | |
catalincraciun7 | 6:7740c9d8d834 | 41 | buzzerPin.period(16); |
catalincraciun7 | 6:7740c9d8d834 | 42 | buzzerPin.pulsewidth_us(200); |
catalincraciun7 | 6:7740c9d8d834 | 43 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 44 | |
catalincraciun7 | 6:7740c9d8d834 | 45 | buzzerPin.period(0); |
catalincraciun7 | 6:7740c9d8d834 | 46 | buzzerPin.pulsewidth_us(0); |
catalincraciun7 | 6:7740c9d8d834 | 47 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 48 | |
catalincraciun7 | 6:7740c9d8d834 | 49 | buzzerPin.period(16); |
catalincraciun7 | 6:7740c9d8d834 | 50 | buzzerPin.pulsewidth_us(200); |
catalincraciun7 | 6:7740c9d8d834 | 51 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 52 | |
catalincraciun7 | 6:7740c9d8d834 | 53 | buzzerPin.period(0); |
catalincraciun7 | 6:7740c9d8d834 | 54 | buzzerPin.pulsewidth_us(0); |
catalincraciun7 | 6:7740c9d8d834 | 55 | wait(0.5); |
catalincraciun7 | 6:7740c9d8d834 | 56 | } |
catalincraciun7 | 6:7740c9d8d834 | 57 | } |