Help with IR distance sensor Sharp 2Y0A02

Hi guys! I'm involved in a school project that requires tu misure a distance of an object, i was considering the PING ultrasonic sensor, but i read that is used for far away objects, and i need to measure short distances. Than my teacher came up with a IR distance sensor manufactured by Sharp. Now, the point is how can i get a good measure? If anyone want to help me here is the datasheet. http://sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a02_e.pdf

A simple analogRead isn't good enough. Thank's to everyone who's gonna help or suggest, and sorry 4 my poor english.

Your closest distance will be 7.88 inches. Is this what you need and why is an analogread not good enough?

Hi, Read this : http://www.societyofrobots.com/sensors_sharpirrange.shtml

Thank's for the link airman00. 7.88 inches ar perfect for my project, i only need to understand how to manage the values that i retrieve from the sensor. According to the datasheet there isn't a linear proportion between the values and the distance, but maybe i'm wrong... I need to have an high precision measure ( less than a cm? ).

Record the values that come out for various known distances. Plug them into Excel, and plot them. Use a polynomial trend line, and find one that "fits" pretty good. Copy down the coefficients, and you have a function that you can use to turn the values into a distance.

can you please post the formular, if you found one that fits nicely?

thx sunny

hurley,

Thanks for the tip about using Excel - it works great!
I used “power” rather than polynomial for the trend line and got an almost perfect fit.

For the Sharp GP2Y0A02YK0F (long range) I came up with . . .

#define VOLTS_PER_UNIT    .0049F        // (.0049 for 10 bit A-D) 
float volts;
float inches;
float cm;

  volts = (float)proxSens * VOLTS_PER_UNIT; // ("proxSens" is from analog read)
  inches = 23.897 * pow(volts,-1.1907); //calc inches using "power" trend line from Excel
  cm = 60.495 * pow(volts,-1.1904);     // same in cm
  if (volts < .2) inches = -1.0;        // out of range

The pow function costs about 900 bytes.
Thanks again.

Sunny, your formula will likely be a little different for your particular sensor.

thx! Thats ok, i din't have a ir sensor right now. ;o)

ciao sunny

Glad it worked for you, BroHogan! I suggested polynomial because they can be of arbitrary order and are good at interpolating, but if a power fits well, then that's definitely simpler. Good luck with the rest of your project!

inches = 23.897 * pow(volts,-1.1907); //calc inches using “power” trend line from Excel
cm = 60.495 * pow(volts,-1.1904); // same in cm

Just got my range sensor, and found these formulas. I was wondering why there is a - although tiny - difference in the exponent, and why 60.495 / 23.897 = 2.531489 while I learned the factor should be 2.54.