Now working with floats instead of long ints

Fork of HCSR04 by Antoniolinux B.

Committer:
emiedema
Date:
Tue Nov 03 14:42:13 2015 +0000
Revision:
1:ca0ff158918c
Parent:
0:86b2086be101
Awesome!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
antoniolinux 0:86b2086be101 1 /* File: HCSR04.h
antoniolinux 0:86b2086be101 2 * Author: Antonio Buonanno
antoniolinux 0:86b2086be101 3 *Board: STM NUCLEO F401RE,
antoniolinux 0:86b2086be101 4 *Hardware: Ultrasonic Range HC-SR04,
antoniolinux 0:86b2086be101 5 *
antoniolinux 0:86b2086be101 6 *This work derived from Arduino library,
antoniolinux 0:86b2086be101 7 *
antoniolinux 0:86b2086be101 8 * Desc: driver for HCSR04 Ultrasonic Range Finder. The returned range
antoniolinux 0:86b2086be101 9 * is in units of meters.
antoniolinux 0:86b2086be101 10 *
antoniolinux 0:86b2086be101 11 *
antoniolinux 0:86b2086be101 12 *
antoniolinux 0:86b2086be101 13 */
antoniolinux 0:86b2086be101 14
antoniolinux 0:86b2086be101 15 /* EXAMPLE
antoniolinux 0:86b2086be101 16 #include "mbed.h"
antoniolinux 0:86b2086be101 17 #include "hcsr04.h"
antoniolinux 0:86b2086be101 18
antoniolinux 0:86b2086be101 19 //D12 TRIGGER D11 ECHO
antoniolinux 0:86b2086be101 20 HCSR04 sensor(D12, D11);
antoniolinux 0:86b2086be101 21 int main() {
antoniolinux 0:86b2086be101 22 while(1) {
antoniolinux 0:86b2086be101 23
antoniolinux 0:86b2086be101 24 long distance = sensor.distance();
antoniolinux 0:86b2086be101 25 printf("distanza %d \n",distance);
antoniolinux 0:86b2086be101 26 wait(1.0); // 1 sec
antoniolinux 0:86b2086be101 27
antoniolinux 0:86b2086be101 28 }
antoniolinux 0:86b2086be101 29 }
antoniolinux 0:86b2086be101 30 */
antoniolinux 0:86b2086be101 31 #ifndef hcsr04_H
antoniolinux 0:86b2086be101 32 #define hcsr04_H
antoniolinux 0:86b2086be101 33 #include "mbed.h"
antoniolinux 0:86b2086be101 34
antoniolinux 0:86b2086be101 35
antoniolinux 0:86b2086be101 36
antoniolinux 0:86b2086be101 37 class HCSR04 {
antoniolinux 0:86b2086be101 38 public:
antoniolinux 0:86b2086be101 39 HCSR04(PinName t, PinName e);
emiedema 1:ca0ff158918c 40 float echo_duration();
emiedema 1:ca0ff158918c 41 float distance();
antoniolinux 0:86b2086be101 42
antoniolinux 0:86b2086be101 43 private:
antoniolinux 0:86b2086be101 44 DigitalOut trig;
antoniolinux 0:86b2086be101 45 DigitalIn echo;
antoniolinux 0:86b2086be101 46 Timer timer;
emiedema 1:ca0ff158918c 47 float duration,distance_cm;
antoniolinux 0:86b2086be101 48 };
antoniolinux 0:86b2086be101 49
antoniolinux 0:86b2086be101 50 #endif