Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
ProximityController.cpp
- Committer:
- sbouber1
- Date:
- 2016-06-21
- Revision:
- 72:f8c4f731f0fe
- Parent:
- 68:b769c0f23406
File content as of revision 72:f8c4f731f0fe:
#include "ProximityController.h"
#include "SensorAlarmController.h"
static Ping pinger(p30);
static DigitalOut alarmled(LED3);
void ProximityController::update() {
int range;
pinger.Send();
Thread::wait(30);
range = pinger.Read_cm()/ 2;
this->distance = (float)range;
printf("Read distance: %.3f\r\n", distance);
if(distance < 0.01) {
SensorAlarmController::buzzOnce();
setLed(true);
} else {
setLed(false);
}
}
float ProximityController::getDistance() {
return this->distance;
}
float ProximityController::getValue() {
if(distance < 0.01) {
this->volume = -1.0f;
} else {
this->volume = (DISTANCE_TO_BASE - this->distance) * 76.92f;
}
return this->volume;
}
std::string ProximityController::getName() {
return "ProximityController";
}
void ProximityController::setLed(bool value){
if (value) alarmled = 1;
if (!value) alarmled = 0;
}