wo

Dependents:   Ultrasonic UltrasonicCasper UltrasonicCasper frdm_tsi_slider ... more

Fork of HCSR04 by Awadh Al Shukaili

HCSR04.cpp

Committer:
oscargrodri
Date:
2014-05-26
Revision:
1:d388301a0227
Parent:
0:0bda99bb39a4

File content as of revision 1:d388301a0227:

#include "HCSR04.h"
#include "mbed.h"


HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {}

//      Trigger          Echo
//      _______           _____________,,,,,,,,,
// ____|  10us |_________| 150us-25ms, or 38ms if no obstacle
//

//return echo duration in us (refer to digram above)
int HCSR04::echo_duration()
{
    timer.reset();
    trig = 0;
    wait_us(10);
    trig = 1;
    wait_us(10);
    trig = 0;
    while(echo == 0);
    timer.start();
    while(echo == 1);
    timer.stop();
    return timer.read_us();
}

//return distance to nearest obstacle or returns -1
//if no obstacle within range
//set sys to cm or inch accordingly
int HCSR04::distance(int sys)
{
    duration = echo_duration();
    distacne_cm = duration  /29/2;
    distance_inc = duration /74/2;
    if (sys)
        return distacne_cm;
    else
        return distance_inc;
}