ss
Dependencies: WS2812 PixelArray Adafruit_GFX
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 }
Generated on Sun Jul 17 2022 05:22:18 by 1.7.2