see cpp code in Githuphttps://github.com/zoubworldArduino/ZSharpIR
Python code at https://tutorials-raspberrypi.de/infrarot-abstandsmessung-mit-dem-raspberry-pi-sharp-gp2y0a02yk0f/
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)
#!/usr/bin/python import spidev spi = spidev.SpiDev() spi.open(0,0) def readChannel(channel): val = spi.xfer2([1,(8+channel)<<4,0]) data = ((val[1]&3) << 8) + val[2] return data if __name__ == "__main__": v=(readChannel(0)/1023.0)*3.3 dist = 16.2537 * v**4 - 129.893 * v**3 + 382.268 * v**2 - 512.611 * v + 301.439 print "Distanz: %.2f cm" % dist
Formel
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)