ss

Dependencies:   WS2812 PixelArray Adafruit_GFX

hcsr04.cpp

Committer:
eunsong
Date:
2019-06-15
Revision:
3:700a0cf6beea
Parent:
0:27e31cadeb36

File content as of revision 3:700a0cf6beea:

#include "hcsr04.h"
#include "mbed.h"
/*
*HCSR04.cpp
*/
HCSR04::HCSR04(PinName t, PinName e, RawSerial pc,int flag, int limit) : trig(t), echo(e), _pc(pc), flag(flag), _limit(limit) {}
 
void HCSR04::Trig()
{
    timer.reset();  //reset timer
    trig=0;   // trigger low 
    wait_us(2); //  wait 
    trig=1;   //  trigger high
    wait_us(10);
    trig=0;  // trigger low
}

/*
void HCSR04::setMode(bool mode)
{
    _repeat = mode;
}

void HCSR04::clearStatus()
{
    _done = 0;
}

int HCSR04::getStatus()
{
    return _done;
}*/



 long HCSR04::echo_duration() {
        
    Trig();
         while(!echo); // start pulseIN
      timer.start();
     while(echo);
      timer.stop();
     return timer.read_us(); 
 
}
 
//return distance in cm 
void HCSR04::distance(){
   // _done++;
    duration = echo_duration();
    distance_cm = int((duration/2)/29.1) ;
    _pc.printf("distance:     %d\r\n", distance_cm);
    if(distance_cm <= _limit){
        flag = 1;
        _pc.printf("\t\tFlag on distance:     %d\r\n", distance_cm);
        
    }
}

long HCSR04::returndistance()
{
    return distance_cm;
}