Utilities classes for the Zumo Robot

Dependents:   ZumoRobotBluetoothControlled Fsl_Zumo

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

Buzzer.cpp

Committer:
catalincraciun7
Date:
2017-07-23
Revision:
7:d2af97b7cc94
Parent:
6:7740c9d8d834

File content as of revision 7:d2af97b7cc94:

// Craciun Catalin
//  Buzzer.cpp
//   © 2014 Catalin Craciun

#include "Buzzer.h"
#define MELODY_LENGTH 5

Buzzer::Buzzer(PinName buzzerPinName):buzzerPin(buzzerPinName) {
    // Initialising
    buzzerPin.period_us(0);
    buzzerPin.pulsewidth_us(0);
}

Buzzer::~Buzzer() {
    // Deinitialising
}

void Buzzer::stopBeep() {

    buzzerPin.period_us(0);
    buzzerPin.pulsewidth_us(0);
}

void Buzzer::startBeep(float frequency, float duration) {
    buzzerPin.period(1.0f/frequency);
    buzzerPin.pulsewidth_us(100);
    timeout.attach(this, &Buzzer::stopBeep, duration);
}

void Buzzer::playDefaultMelody() {
    // Playing default melody on buzzer
    for (int cycle = 0; cycle < MELODY_LENGTH; cycle++) {
        buzzerPin.period(16);
        buzzerPin.pulsewidth_us(200);
        wait(0.5);

        buzzerPin.period(0);
        buzzerPin.pulsewidth_us(0);
        wait(0.5);
        
        buzzerPin.period(16);
        buzzerPin.pulsewidth_us(200);
        wait(0.5);
        
        buzzerPin.period(0);
        buzzerPin.pulsewidth_us(0);
        wait(0.5);
        
        buzzerPin.period(16);
        buzzerPin.pulsewidth_us(200);
        wait(0.5);
        
        buzzerPin.period(0);
        buzzerPin.pulsewidth_us(0);
        wait(0.5);
    }
}