Update: 13 July 2009, Resolved with the help of Bob Gross. User error see notes below.
I found a MAX Sonar EZ1 sensor at my local electronics store and decided to try it out. The selling features of this sensor for me was
- Cheap (< $20), and immediately available, (impulse buy)
- Analog and serial pins, with documentation, oh how I love documentation on electronic parts.
- Operated on 5v, the arduino has a 5V Pin making it as easy as can be to hook it up to the board.
- Mounting holes.
I mounted the sensor on an ‘L’ bracket and pointed it at a wall about 36 inches away. I connected the GRD, 5V, Analog pin to my Arduino chip and started reading data. After playing around with it for a while, I found it hard to get reliable data from this sensor.
Took in 100 readings getting results anywhere from 50-255, unreliable data. I searched Google and found a few other people using this sensor with the Arduino. http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1226321702
Apparently these range finders (less then $100) are notorious for giving spiked reading every once in a while. So all data read from these sensors should be averaged over ~10 or more readings for better accuracy. Also grounding the unused pins can sometimes help.
So I grounded all my unused analog pin (this is where I made my miss take, see below) and changed my code to find the average over 100 readings as the result. Then tested the results for 10k times and found the results to be wildly different between each session.
After a few more hours of playing around with it I gave up. I considered connected to the serial pins but decide it was more work then it was worth. It could be that this particular sensor was damaged or it could be the brand, either way it didn’t work out for me.
I have included my source code for your reference.
dev/arduino/snippets/read_MaxSonarEZ1.c
Update (12 July 2009):
After getting contacted by Bob Gross of MaxBotix Inc. I decided to give this sensor anther chance.
Using the code above I connected analog pin 1 (NOT Pin 0) to the “AN” ping on the chip. GND to GND, +5 to 5V. Picture
Uploaded the code and connected Hyper terminal capturing the output to a text file and let it run for about an ~hour poiting at the roof.
The results where variable as shown in the output.
Update (13 July 2009)
User error. Boy do I feel like an idiot today. When I grounded the analog pins (as noted above) I also connected the pin that I was using for the sensor to all the other analog pins.
I removed the grounding wire, and the connection between all the pins and got reliable results. The sensor works fine this was entirely human error. I decided to keep using the averaging code above with ~10 reads instead of 100 for speed.
My aploagies to Bob Gross and MaxBotix Inc for my error and false claims that the sensor didn’t work.
Thank you for your help.

Not sure why you got the results you did, but I can assure you that this is not normal. In general, when you range to an object, all readings should be the same. Please email us for tech support info@maxbotix.com
Also, we would be curious where you purchased your sensor.
Again, we test every sensor for reliable stable readings before we ship. So if the sensor did not work for you, please let us help.
Bob Gross
CEO MaxBotix Inc.
Hello
I was not expecting a respond, but thank you.
I got my sensor from a local electronics store called. Lee’s electronics in Vancouver.
As I mentioned in my post, it might have been damaged before I got it or while I was connecting it. (i’m new to hardware.)
I will update this post with more information and a pictures later on today.
Maybe you should edit the blog subject title A Blue Star » ARDUINO and MaxSonar EZ1 to something more generic for your blog post you make. I enjoyed the the writing still.