|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
SRF04 Ultrasonic Rangefinder Unresponsive
we are using the Devantech SRF04 Ultrasonic Rangefinder. We have sent a 5v pulse to the input pin, and verified this with a voltmeter. The power supply is working. We are not getting any feedback. The voltage from the "echo output" pin stays at zero. The code we are using to send this signal folows:
if(p1_sw_trig == 0) { rc_dig_out02 = 0; } else { rc_dig_out02 = 1; } We are reading the output from the rangefinder using both a voltmeter and printfs, and neither one shows any output. We expected a pulse at the falling edge of our signal, to signify that it was "listening" for echoes. Is there something obvious we are missing here? These rangefinders are a few years old, so it's possible (though unlikely) that they are just broken. |
|
#2
|
|||
|
|||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
Hi I have one here... I don't think you'll see anything on the Voltmeter... the echo is VERY short and most Meters are not fast enough. If you have access to an Oscilloscope, you might see the missing pulse.
How are you using the Printf? Once again... since the output is a pulse, your best chance of detecting it, without actually timing it, is to change a variable to "1" on the positive edge and use and if variable == 1 then ... printf some message like "Found" |
|
#3
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
that is a very good idea. We had a printf running in the user_routines_fast of the default code, and basically I was hoping that it would catch it. I figured that it would show up, but maybe not, and I will definitely try doing a single printf. thanks! (btw, geeknerd = same team as tauntaun)
Last edited by geeknerd99 : 19-01-2008 at 19:54. |
|
#4
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
tried it. It is now official that we are not gettting any feedback...
|
|
#5
|
|||
|
|||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
i have an SRF04 but also an SRF08, way better!!! and not to mention its controlled by i2c also it has a built in light sensor (CdS cell)
|
|
#6
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
I'm still not totally convinced. As Steve pointed out, the return pulse is very short, and it's possible that the pulse is coming and going faster than even the fast loop can keep up with. To be totally sure, could you set it up as an interrupt, and then see if you ever trigger it?
|
|
#7
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
It says that if there is no "echo," it won't timeout until 18 ms have passed. I'm sure the fast routine loops faster than 18 ms.
|
|
#8
|
|||
|
|||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
how about something like this. It should fire a ~20us drive pulse and then listen on the echo line. The echo line should be asserted shortly after the sonar is fired and remain high until the first echo is detected -or- no echo and the line will drop in 36ms.
Code:
void ping()
{
unsigned int count;
char usec;
#define drive_pin rc_dig_in01
#define echo_pin rc_dig_in02
//~20uS pulse out
drive_pin = 1;
for (usec=20; --usec != 0; )
{
Nop();
Nop();
Nop();
Nop();
Nop();
}
drive_pin = 0;
//echo pulse should start shortly... timeout in ~20ms
count = 35500;
while(echo_pin == 0)
{
count++;
if (count == 0)
{
printf( "whoa, where'd the pulse go?\n");
return;
}
}
// ok, count the pulse width, count*2 is approx. uSec.
count = 0;
while (echo_pin != 1)
{
Nop(); Nop(); Nop(); Nop();
count++;
if (count == 0) break;
}
printf( "count = %d\n", count );
return;
}
|
|
#9
|
|||
|
|||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
You could always fire up Easy C and check the operation with a Known working code.
|
|
#10
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
thanks a lot for your help! I will try this tuesday, when I can go back to the shop.
![]() |
|
#11
|
||||
|
||||
|
Re: SRF04 Ultrasonic Rangefinder Unresponsive
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Ultrasonic will not work with another Ultrasonic plz help | Jackel148 | Programming | 10 | 10-05-2006 15:31 |
| Programming Parallax Ultrasonic Rangefinder | edman | Programming | 2 | 17-02-2006 08:35 |
| Ultrasonic Sensor | winners | Programming | 3 | 02-01-2006 20:55 |
| Ultrasonic Rangefinder Operating On I2C Bus | CapnBFG | Electrical | 10 | 04-06-2005 01:31 |
| Unresponsive camera | neilsonster | Programming | 9 | 17-02-2005 08:51 |