Gert Lauritsen / HCSR04

Dependents:   AdrianLysShow AdrianLysShow

Committer:
gert_lauritsen
Date:
Tue Apr 28 14:46:20 2015 +0000
Revision:
0:9f4365d41bf1
Child:
1:e3a37f4015da
Working version of distance sensor; works with interrupt measuring the time of fligth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gert_lauritsen 0:9f4365d41bf1 1 #include "HCSR04.h"
gert_lauritsen 0:9f4365d41bf1 2 #include "mbed.h"
gert_lauritsen 0:9f4365d41bf1 3 #define DistanceOffset 180
gert_lauritsen 0:9f4365d41bf1 4 HCSR04::HCSR04(PinName t, PinName e,callback_type _callback) : trig(t), echo(e)
gert_lauritsen 0:9f4365d41bf1 5 {
gert_lauritsen 0:9f4365d41bf1 6 echo.rise(this, &HCSR04::StartTimer);
gert_lauritsen 0:9f4365d41bf1 7 echo.fall(this, &HCSR04::DistResult);
gert_lauritsen 0:9f4365d41bf1 8 pulsWidth=new Timeout;
gert_lauritsen 0:9f4365d41bf1 9 callback = _callback;
gert_lauritsen 0:9f4365d41bf1 10 }
gert_lauritsen 0:9f4365d41bf1 11
gert_lauritsen 0:9f4365d41bf1 12 void HCSR04::StartTimer() {
gert_lauritsen 0:9f4365d41bf1 13 timer.reset();
gert_lauritsen 0:9f4365d41bf1 14 timer.start();
gert_lauritsen 0:9f4365d41bf1 15 }
gert_lauritsen 0:9f4365d41bf1 16
gert_lauritsen 0:9f4365d41bf1 17 void HCSR04::DistResult() {
gert_lauritsen 0:9f4365d41bf1 18 //Getting the distance
gert_lauritsen 0:9f4365d41bf1 19 dist_cm =timer.read_us()-DistanceOffset;
gert_lauritsen 0:9f4365d41bf1 20 callback(dist_cm*0.034); //time the speed of sound
gert_lauritsen 0:9f4365d41bf1 21 }
gert_lauritsen 0:9f4365d41bf1 22
gert_lauritsen 0:9f4365d41bf1 23 void HCSR04::Trigoff() {
gert_lauritsen 0:9f4365d41bf1 24 trig = 0;
gert_lauritsen 0:9f4365d41bf1 25 }
gert_lauritsen 0:9f4365d41bf1 26
gert_lauritsen 0:9f4365d41bf1 27 void HCSR04::Trigger() {
gert_lauritsen 0:9f4365d41bf1 28 //Makes a trigger signal
gert_lauritsen 0:9f4365d41bf1 29 trig = 1;
gert_lauritsen 0:9f4365d41bf1 30 pulsWidth->attach_us(this,&HCSR04::Trigoff,10);
gert_lauritsen 0:9f4365d41bf1 31 //Give it 10 us puls
gert_lauritsen 0:9f4365d41bf1 32 }
gert_lauritsen 0:9f4365d41bf1 33