Skip to content

zoubworldArduino/ZSharpIR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharpIR

Arduino Infra Red Sharp Lib

Based on an original work of Dr. Marcal Casas-Cartagena .

  1. Perform 25 reading of analog pin (Nb samples can be changed in .h)
  2. Sort values
  3. Convert median value to cm

Usage

  • #include <SharpIR.h>
  • SharpIR sharp(ir_analog_pin, model);
  • int dist = sharp.distance();

Model :

  • GP2Y0A02YK0F --> "20150"
  • GP2Y0A21YK --> "1080"
  • GP2Y0A710K0F --> "100500"
  • GP2YA41SK0F --> "430"

Sharp IR Volt Centimeter conversion

GP2Y0A02YK0F

Model: "20150" [20cm to 150cm]

Volt Distance
2,8 15
2,5 20
2 30
1,55 40
1,24 50
1,05 60
0,905 70
0,82 80
0,7 90
0,66 100
0,6 110
0,55 120
0,5 130
0,455 140
0,435 150

Using MS Excel, we can calculate function (For distance > 15cm) :

Distance = 60.374 X POW(Volt , -1.16)

GP2Y0A21YK

Model: "1080" [10cm to 80cm]

Volt Distance
2,6 10
2,1 12
1,85 14
1,65 15
1,5 18
1,39 20
1,15 25
0,98 30
0,85 35
0,75 40
0,67 45
0,61 50
0,59 55
0,55 60
0,5 65
0,48 70
0,45 75
0,42 80

Using MS Excel, we can calculate function (For distance > 10cm) :

Distance = 29.988 X POW(Volt , -1.173)

GP2D12_24

Model: "1081" [10cm to 80cm]

Volt Distance
2.534 10
1.391 20
0.952 30
0.727 40
0.581 50
0.493 60
0.483 70

Based on https://mycurvefit.com/ :

Distance = 24.65251/(Volt-0.1065759)

GP2Y0A710K0F

Model: "100500" [100cm to 500cm]

Based on the SHARP datasheet we can calculate the linear function: y = 137500x + 1125 which gives us: 1 / ((Volt - 1125) / 137500) = distance_in_cm (For distance > 100cm)

GP2YA41SK0F ( <=> GP2D120 )

Model: "430" [4cm to 30cm]

Based on the SHARP datasheet we can calculate the function (For distance > 3cm) :

Distance = 12.08 X POW(Volt , -1.058)

history of version :

1.0.0 : release used for Eurobot 2018 1.1.0 : release that add ROS as an option.