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:
2014-12-21
Revision:
6:7740c9d8d834
Parent:
5:5e12111ef01f
Child:
7:d2af97b7cc94

File content as of revision 6:7740c9d8d834:

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

#ifndef BuzzerCpp
#define BuzzerCpp

#include "Buzzer.h"

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/frequency);
    buzzerPin.pulsewidth_us(100);
    timeout.attach(this, &Buzzer::stopBeep, duration);
}

void Buzzer::playDefaultMelody()
{
    // Playing default melody on buzzer
    while (true) {
        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);
    }
}

#endif // BuzzerCpp