Class library for a HC-SR04 Distance Sensor based on PwmOut (Trig) and InterruptIn (Echo).

Dependents:   ultra TDPS-COM1 HCSR04

Committer:
grantphillips
Date:
Mon Feb 08 14:43:42 2016 +0000
Revision:
0:5541303b14e7
v1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
grantphillips 0:5541303b14e7 1 #include "HCSR04.h"
grantphillips 0:5541303b14e7 2 #include "mbed.h"
grantphillips 0:5541303b14e7 3
grantphillips 0:5541303b14e7 4
grantphillips 0:5541303b14e7 5 HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {
grantphillips 0:5541303b14e7 6 trig.period(0.06);
grantphillips 0:5541303b14e7 7 trig.pulsewidth_us(20);
grantphillips 0:5541303b14e7 8 echo.rise(this,&HCSR04::HighTrigger);
grantphillips 0:5541303b14e7 9 echo.fall(this,&HCSR04::LowTrigger);
grantphillips 0:5541303b14e7 10 }
grantphillips 0:5541303b14e7 11
grantphillips 0:5541303b14e7 12 unsigned int HCSR04::read_us() {
grantphillips 0:5541303b14e7 13 return us;
grantphillips 0:5541303b14e7 14 }
grantphillips 0:5541303b14e7 15
grantphillips 0:5541303b14e7 16 float HCSR04::read_cm() {
grantphillips 0:5541303b14e7 17 return (float)us/58;
grantphillips 0:5541303b14e7 18 }
grantphillips 0:5541303b14e7 19
grantphillips 0:5541303b14e7 20 void HCSR04::HighTrigger() {
grantphillips 0:5541303b14e7 21 timer.start();
grantphillips 0:5541303b14e7 22 }
grantphillips 0:5541303b14e7 23
grantphillips 0:5541303b14e7 24 void HCSR04::LowTrigger() {
grantphillips 0:5541303b14e7 25 timer.stop();
grantphillips 0:5541303b14e7 26 us = timer.read_us();
grantphillips 0:5541303b14e7 27 timer.reset();
grantphillips 0:5541303b14e7 28 }