Library to use the ultrasonic sensor
Dependents: test_ultrasonic AEB Car_Simulator
Ultrasonic.cpp
- Committer:
- AndreaAndreoli
- Date:
- 2016-07-09
- Revision:
- 5:549b453cd6ce
- Parent:
- 4:8c97476a5ebf
File content as of revision 5:549b453cd6ce:
#include "mbed.h" #include "Ultrasonic.h" Ultrasonic::Ultrasonic(PinName trigger, PinName echo): _trigger(trigger) , _echo(echo) { Ultrasonic_init(); } int Ultrasonic::read_cm() { return DistanceCM; } void Ultrasonic::start() { timer.start(); } void Ultrasonic::stop() { DistanceCM = int(timer.read_us()/58); timer.stop(); timer.reset(); timeout.detach(); } void Ultrasonic::timeout_err() { // Timeout elapsed -> there is some problem // out the distance to zero to highligth error DistanceCM = 0; } void Ultrasonic::trig() { timeout.attach(this, &Ultrasonic::timeout_err, 0.05); _trigger = 1; wait_us(500); _trigger = 0; } void Ultrasonic::Ultrasonic_init() { DistanceCM = 0; timer.reset(); _echo.rise(this,&Ultrasonic::start); _echo.fall(this,&Ultrasonic::stop); tick.attach(this,&Ultrasonic::trig,0.06); }