Utilities classes for the Zumo Robot

Dependents:   ZumoRobotBluetoothControlled Fsl_Zumo

This library represents some useful code for controlling your Zumo Robot.

Committer:
catalincraciun7
Date:
Sun Dec 21 12:46:41 2014 +0000
Revision:
6:7740c9d8d834
Parent:
5:5e12111ef01f
Child:
7:d2af97b7cc94
Encryption removed

Who changed what in which revision?

UserRevisionLine numberNew 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 4:dcd52a961392 5 #ifndef BuzzerCpp
catalincraciun7 4:dcd52a961392 6 #define BuzzerCpp
catalincraciun7 4:dcd52a961392 7
catalincraciun7 4:dcd52a961392 8 #include "Buzzer.h"
catalincraciun7 4:dcd52a961392 9
catalincraciun7 6:7740c9d8d834 10 Buzzer::Buzzer(PinName buzzerPinName):buzzerPin(buzzerPinName)
catalincraciun7 6:7740c9d8d834 11 {
catalincraciun7 6:7740c9d8d834 12
catalincraciun7 4:dcd52a961392 13 // Initialising
catalincraciun7 5:5e12111ef01f 14 buzzerPin.period_us(0);
catalincraciun7 5:5e12111ef01f 15 buzzerPin.pulsewidth_us(0);
catalincraciun7 4:dcd52a961392 16 }
catalincraciun7 4:dcd52a961392 17
catalincraciun7 6:7740c9d8d834 18 Buzzer::~Buzzer()
catalincraciun7 6:7740c9d8d834 19 {
catalincraciun7 6:7740c9d8d834 20
catalincraciun7 4:dcd52a961392 21 // Deinitialising
catalincraciun7 4:dcd52a961392 22 }
catalincraciun7 4:dcd52a961392 23
catalincraciun7 6:7740c9d8d834 24 void Buzzer::stopBeep()
catalincraciun7 6:7740c9d8d834 25 {
catalincraciun7 6:7740c9d8d834 26
catalincraciun7 5:5e12111ef01f 27 buzzerPin.period_us(0);
catalincraciun7 5:5e12111ef01f 28 buzzerPin.pulsewidth_us(0);
catalincraciun7 4:dcd52a961392 29 }
catalincraciun7 4:dcd52a961392 30
catalincraciun7 6:7740c9d8d834 31 void Buzzer::startBeep(float frequency, float duration)
catalincraciun7 6:7740c9d8d834 32 {
catalincraciun7 6:7740c9d8d834 33
catalincraciun7 6:7740c9d8d834 34 buzzerPin.period(1/frequency);
catalincraciun7 5:5e12111ef01f 35 buzzerPin.pulsewidth_us(100);
catalincraciun7 4:dcd52a961392 36 timeout.attach(this, &Buzzer::stopBeep, duration);
catalincraciun7 4:dcd52a961392 37 }
catalincraciun7 4:dcd52a961392 38
catalincraciun7 6:7740c9d8d834 39 void Buzzer::playDefaultMelody()
catalincraciun7 6:7740c9d8d834 40 {
catalincraciun7 6:7740c9d8d834 41 // Playing default melody on buzzer
catalincraciun7 6:7740c9d8d834 42 while (true) {
catalincraciun7 6:7740c9d8d834 43 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 44 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 45 wait(0.5);
catalincraciun7 6:7740c9d8d834 46
catalincraciun7 6:7740c9d8d834 47 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 48 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 49 wait(0.5);
catalincraciun7 6:7740c9d8d834 50
catalincraciun7 6:7740c9d8d834 51 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 52 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 53 wait(0.5);
catalincraciun7 6:7740c9d8d834 54
catalincraciun7 6:7740c9d8d834 55 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 56 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 57 wait(0.5);
catalincraciun7 6:7740c9d8d834 58
catalincraciun7 6:7740c9d8d834 59 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 60 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 61 wait(0.5);
catalincraciun7 6:7740c9d8d834 62
catalincraciun7 6:7740c9d8d834 63 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 64 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 65 wait(0.5);
catalincraciun7 6:7740c9d8d834 66 }
catalincraciun7 6:7740c9d8d834 67 }
catalincraciun7 6:7740c9d8d834 68
catalincraciun7 4:dcd52a961392 69 #endif // BuzzerCpp