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:
Wed Apr 29 06:12:22 2015 +0000
Revision:
1:e3a37f4015da
Parent:
0:9f4365d41bf1
Corrected the calfaktor

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 1:e3a37f4015da 5 void distance(long Distance) {
gert_lauritsen 1:e3a37f4015da 6 printf("Distance: %d \r",Distance);
gert_lauritsen 0:9f4365d41bf1 7 }
gert_lauritsen 0:9f4365d41bf1 8
gert_lauritsen 0:9f4365d41bf1 9 int main()
gert_lauritsen 0:9f4365d41bf1 10 {
gert_lauritsen 0:9f4365d41bf1 11 sensor= new HCSR04(p5,p6,distance);
gert_lauritsen 0:9f4365d41bf1 12 printf("Test af sensor\r\n");
gert_lauritsen 0:9f4365d41bf1 13 while(1) {
gert_lauritsen 0:9f4365d41bf1 14 sensor->Trigger();
gert_lauritsen 0:9f4365d41bf1 15 wait(0.1);
gert_lauritsen 0:9f4365d41bf1 16
gert_lauritsen 0:9f4365d41bf1 17 }
gert_lauritsen 0:9f4365d41bf1 18 }
gert_lauritsen 1:e3a37f4015da 19 Datasheet: http://www.micropik.com/PDF/HCSR04.pdf
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 };