Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 8 months ago.
Ultrasonic HC SR04 Interface Issue with LPC1768 on m3pi
I am using the following code to interface hc sr-04 from sparkfun with LPC1768 mounted with m3pi bot. I have tried all the libraries available in the mbed handbooks and have even changed my ultrasonic sensor to check if the sensor is faulty, however, I am not able to get any readings from the sensor. I tried to block the receiver and see, and it does give a maximum distance reading(177cm corresponding to the timeout of 10ms). Apart from that, I am getting almost zero readings with a few correct readings here and there, maybe 3 to 4 readings in 5 minutes. Surprisingly, these random readings that I get sometimes are correct readings. (Similar behavior with two different sensors.)
#include "mbed.h" #include "m3pi.h" Serial pc(USBTX, USBRX); DigitalOut trigger(p6); DigitalOut myled(LED1); //monitor trigger DigitalOut myled2(LED2); //monitor echo DigitalIn echo(p7); int distance = 0; int correction = 0; int timeout = 0; Timer sonar, to; int main() { //Loop to read Sonar distance values, scale, and print while(1) { // trigger sonar to send a ping trigger = 0; wait_us(2.0); sonar.reset(); myled = 1; myled2 = 0; trigger = 1; wait_us(10.0); trigger = 0; myled = 0; sonar.start(); while (echo==0 && sonar.read_ms()<10) {}; myled2=echo; sonar.stop(); sonar.reset(); sonar.start(); while (echo==1 && sonar.read_ms()<10) {}; sonar.stop(); distance = (sonar.read_us())/58.0; myled2 = 0; pc.printf(" %d cm \n\r",distance); wait(0.5); } }
Please do help me out and let me know where I am going wrong.
2 Answers
7 years, 1 month ago.
Check if you have set the echo pin mode to "PullDown" which means it has zero value when there is no return pulse from the sensor.
7 years ago.
Check this device operation manual and make sure you have the right hardware connections. From what I see you're not doing it right. Read the manual. If you don't get it right then come back and we'll make it work.