ss

Dependencies:   WS2812 PixelArray Adafruit_GFX

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers hcsr04.cpp Source File

hcsr04.cpp

00001 #include "hcsr04.h"
00002 #include "mbed.h"
00003 /*
00004 *HCSR04.cpp
00005 */
00006 HCSR04::HCSR04(PinName t, PinName e, RawSerial pc,int flag, int limit) : trig(t), echo(e), _pc(pc), flag(flag), _limit(limit) {}
00007  
00008 void HCSR04::Trig()
00009 {
00010     timer.reset();  //reset timer
00011     trig=0;   // trigger low 
00012     wait_us(2); //  wait 
00013     trig=1;   //  trigger high
00014     wait_us(10);
00015     trig=0;  // trigger low
00016 }
00017 
00018 /*
00019 void HCSR04::setMode(bool mode)
00020 {
00021     _repeat = mode;
00022 }
00023 
00024 void HCSR04::clearStatus()
00025 {
00026     _done = 0;
00027 }
00028 
00029 int HCSR04::getStatus()
00030 {
00031     return _done;
00032 }*/
00033 
00034 
00035 
00036  long HCSR04::echo_duration() {
00037         
00038     Trig();
00039          while(!echo); // start pulseIN
00040       timer.start();
00041      while(echo);
00042       timer.stop();
00043      return timer.read_us(); 
00044  
00045 }
00046  
00047 //return distance in cm 
00048 void HCSR04::distance(){
00049    // _done++;
00050     duration = echo_duration();
00051     distance_cm = int((duration/2)/29.1) ;
00052     _pc.printf("distance:     %d\r\n", distance_cm);
00053     if(distance_cm <= _limit){
00054         flag = 1;
00055         _pc.printf("\t\tFlag on distance:     %d\r\n", distance_cm);
00056         
00057     }
00058 }
00059 
00060 long HCSR04::returndistance()
00061 {
00062     return distance_cm;
00063 }