A library for the HCSR04 sensor. work with interrupt

Dependents:   AdrianLysShow AdrianLysShow

A small library for the HCSR04 sensor. works with interrupt on the egde of the echo

link to datasheet: http://www.micropik.com/PDF/HCSR04.pdf

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 //---------------------------------------------------------
gert_lauritsen 0:9f4365d41bf1 2 //Class for measure distance with the HCSR04 sensor
gert_lauritsen 0:9f4365d41bf1 3 /*
gert_lauritsen 0:9f4365d41bf1 4 Eksemple
gert_lauritsen 0:9f4365d41bf1 5 void distance(long Duration) {
gert_lauritsen 0:9f4365d41bf1 6 // long distance = sensor.distance(1);
gert_lauritsen 0:9f4365d41bf1 7 printf("Distance: %d \r",Duration);
gert_lauritsen 0:9f4365d41bf1 8 }
gert_lauritsen 0:9f4365d41bf1 9
gert_lauritsen 0:9f4365d41bf1 10 int main()
gert_lauritsen 0:9f4365d41bf1 11 {
gert_lauritsen 0:9f4365d41bf1 12 sensor= new HCSR04(p5,p6,distance);
gert_lauritsen 0:9f4365d41bf1 13 printf("Test af sensor\r\n");
gert_lauritsen 0:9f4365d41bf1 14 while(1) {
gert_lauritsen 0:9f4365d41bf1 15 sensor->Trigger();
gert_lauritsen 0:9f4365d41bf1 16 wait(0.1);
gert_lauritsen 0:9f4365d41bf1 17
gert_lauritsen 0:9f4365d41bf1 18 }
gert_lauritsen 0:9f4365d41bf1 19 }
gert_lauritsen 0:9f4365d41bf1 20 */
gert_lauritsen 0:9f4365d41bf1 21 #include "mbed.h"
gert_lauritsen 0:9f4365d41bf1 22 typedef void (*callback_type)(long);
gert_lauritsen 0:9f4365d41bf1 23
gert_lauritsen 0:9f4365d41bf1 24 class HCSR04 {
gert_lauritsen 0:9f4365d41bf1 25 public:
gert_lauritsen 0:9f4365d41bf1 26 HCSR04(PinName t, PinName e,callback_type _callback);
gert_lauritsen 0:9f4365d41bf1 27 void Trigger(); //starts the trigger
gert_lauritsen 0:9f4365d41bf1 28
gert_lauritsen 0:9f4365d41bf1 29 private:
gert_lauritsen 0:9f4365d41bf1 30 DigitalOut trig;
gert_lauritsen 0:9f4365d41bf1 31 InterruptIn echo;
gert_lauritsen 0:9f4365d41bf1 32 Timer timer;
gert_lauritsen 0:9f4365d41bf1 33 Timeout *pulsWidth;
gert_lauritsen 0:9f4365d41bf1 34 callback_type callback;
gert_lauritsen 0:9f4365d41bf1 35 long dist_cm;
gert_lauritsen 0:9f4365d41bf1 36
gert_lauritsen 0:9f4365d41bf1 37 void Trigoff(); //Turnoff the trigger
gert_lauritsen 0:9f4365d41bf1 38 void DistResult();
gert_lauritsen 0:9f4365d41bf1 39 void StartTimer();
gert_lauritsen 0:9f4365d41bf1 40 };