Multiple ultrasonic rangers


I have recently bought myself 3 ultrasonic range finders of the type and so I was wondering what is the fastest, most reliable way of reading all three of them? They won't be facing the exact same direction, but enough to interfere with eachother.

Any input will make my day! d(^_^)

Edit: stupid typos!


those work by reading the signal bounced back to them, so it is accordingly very difficult to use more than one in an enclosed space, as you get three signals bouncing back to each receiver. the best bet would be to trigger them one at a time wait for a complete read cycle on a particular sensor before moving to the next one.


PS: those are great little sensors, except for the evangelical message that they etch into each one on the bottom of the PCB! Fortunately it does not affect performance.

Thanks for your reply!

Evangelic message? :o I have not seen this, only text I have seen is the pinmarkings TX, RX, AN, PW and so on.

From MaxBotix FAQ:

6b) Control the MaxSonar®-EZ1[ch8482] Sensors to Range at the Same time (works for most instances) Connect all the MaxSonar®-EZ1[ch8482] RX lines together, and connect to your control circuit such as a pin on a microcontroller (or even a 555 timer set up to strobe high for at least 20us with, a period between strobes of 50mS or more). Then start all the MaxSonar®-EZ1[ch8482] sensors at the same time by pulling the RX lines high for 20uS (or more but less than 47 mS). You can repeat this every 50mS or more. This will sync the MaxSonar®-EZ1[ch8482] sensors to take readings at the same time. The MaxSonar®-EZ1[ch8482], because of continuously variable gain, will ignore (in most instances) adjacent sensors. This method is especially convenient when using the analog voltage (AN output), as the analog voltage can be read at any time (i.e. the user does not have to wait for the output).

I think I might try that.. When I ground the RX line of a sensor, it always reads 0 but if it is pulled high it reads normally. Hooking them together using the RX-lines will make them all send their signals at the same time, and this somehow allows the sensors to be read at the sime time. I can't really get the physics of it to work in my head, but if the produser says it works...

So basically, I hook them all up to power and ground, one analog input each and all the RX lines to the same digital I/O line. The I/O line is pulled low by default, but is then pulled high for somewhere between 20uS-47mS. 47mS should be plenty to get readings from the 3 analog pins that the AN-pins of the sensors are connected to, right?

Have I got the idea right, or is my head just acting all screwy? :P

Thanks, but like I said..

From MaxBotix FAQ:

I'm not so lazy as to just post without even checking out the product website. ;) However, I was wondering if I had gotten the right idea? Their explanation isn't exactely hevily detailed or graphical, so I thought perhaps one of you gurus in here would enlighten me.. =)