Class library for a HC-SR04 Distance Sensor based on PwmOut (Trig) and InterruptIn (Echo).
Dependents: ultra TDPS-COM1 HCSR04
HCSR04.cpp@1:8286d0de19ce, 2016-02-08 (annotated)
- Committer:
- grantphillips
- Date:
- Mon Feb 08 14:45:28 2016 +0000
- Revision:
- 1:8286d0de19ce
- Parent:
- 0:5541303b14e7
v1.0
Who changed what in which revision?
User | Revision | Line number | New 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 | } |