• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
  • Französisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Hardware & GPIO»Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)

Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)

Facebook Twitter LinkedIn Tumblr Email Reddit
infrarot sharp distance senser
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Vom Hersteller Sharp gibt es einige Infrarot Abstandssensoren, welche sehr einfach mit dem Raspberry Pi betrieben werden können. Hierbei gibt es verschiedene Abstandsmesser, welche unterschiedliche Distanz Bereiche abdecken. Diese Module funktionieren ähnlich zu Laser Distanzmessgeräten, allerdings mit Infrarot Licht. Dabei wird gebündeltes Licht mit einem Sender ausgestrahlt und durch einem Empfänger anhand des Einstrahlwinkels eine (analoge) Spannung durchgeleitet, womit die Distanz berechnet werden kann.

In diesem Tutorial wird anhand des Distanzsensors GP2Y0A02YK0F gezeigt, wie ein Abstand bestimmt werden kann. Nützlich kann dies z.B. im Auto als Car PC (Rückfahrkamera – Abstand), als Roboter Auto oder auch im Rahmen der Hausautomation.

 

Zubehör – Abstandssensoren

Der IR Sender befindet sich auf der "eingedrückten" Seite (rechts).
Der IR Sender befindet sich auf der „eingedrückten“ Seite (rechts).

Insgesamt hat Sharp einige Distanzmesser im Angebot, wobei individuell geschaut werden sollte, welche für die Aufgabe passend ist. Dieses Tutorial ist auf den Sharp GP2Y0A02YK0F ausgelegt, welcher für Bereiche von 20cm bis 150cm geeignet ist. Entfernungen außerhalb dieses Bereichs werden nicht korrekt gemessen.
Folgende Module stehen zur Auswahl:

  • GP2Y0A02YK0F (20cm – 150cm)
  • GP2Y0A41SK0F (4cm – 30cm)
  • GP2Y0A21 (10cm – 80cm)
  • GP2Y0A710K0F (100cm – 550cm)

Solltest du einen anderen Sensor als den GP2Y0A02YK0F verwenden, so musst du die einzelnen Schritte ggf. anpassen. Die Datenblätter sind auf der Sharp Homepage verfügbar.

Weiterhin brauchst du noch folgendes:

  • MCP3008 ADC
  • Female-Female Jumper Kabel
  • Breadboard

 

 

Funktionsweise des Infrarot Abstandssensors

Dieser IR Sensor braucht eine Eingangsspannung zwischen 4.5V und 5.5V, kann also perfekt mit den 5V des Raspberry Pi’s betrieben werden. Dabei liegt laut Datenblatt eine unterschiedliche Spannung am Daten Pin an, je nach dem, wie weit das vom Sensor gemessene Objekt ist. Dies ist in folgendem Graphen sichtbar:

gp2y0a02yk
Anhand der Spannung kann die Distanz zwischen ca. 15cm und 150cm relativ exakt hergeleitet werden.

 

 

Anschluss des MCP3008

mcp3008-e1397762478714

Da die ausgehende Spannung analog ist, müssen wir sie erst mit einem Analog-Digital Wandler „übersetzen“, sodass wir sie mir dem Raspberry Pi auswerten können. Dies geht am besten mit einem MCP3008 ADC.

Dieser Baustein wird über den SPI Bus des Pi’s angesteuert und hat acht Kanäle, an denen analoge Spannungen übersetzt werden können. Diese werden in 2^20 also 1024 Bereiche (0-1023) aufgeteilt. Wird der MCP3008 an 3.3V angeschlossen, entspricht ein Signal von 1 also 0.00322V (3.22mV). Da der SPI Bus des Raspberry Pi’s auf 3.3V arbeitet, sollte auch nicht mehr Spannung angelegt werden, da sonst die GPIOs beschädigt werden können.

Die ganze Schaltung sieht schematisch folgendermaßen aus:

 

sharp_GP2Y0A02YK0F_Steckplatine

RaspberryPi MCP3008
Pin 1 (3.3V) Pin 16 (VDD)
Pin 1 (3.3V) Pin 15 (VREF)
Pin 6 (GND) Pin 14 (AGND)
Pin 23 (SCLK) Pin 13 (CLK)
Pin 21 (MISO) Pin 12 (DOUT)
Pin 19 (MOSI) Pin 11 (DIN)
Pin 24 (CE0) Pin 10 (CS/SHDN)
Pin 6 (GND) Pin 9 (DGND)

 

Der Abstandssensor hat dabei lediglich drei Anschlüsse: Rot (5V), Schwarz (GND) und Gelb, was der Datenpin ist und an den MCP3008 ADC angeschlossen wird. Bei manchen werden dabei eventuell die Alarmglocken läuten und sagen, warum ein 5V Modul direkt angeschlossen wird, obwohl der SPI Bus des Pi’s nicht mehr als 3.3V Input bekommen darf. Im Datenblatt ist angegeben, dass die Ausgangsspannung des Sensors nie über 3V kommt (siehe Graph aus dem Datenblatt). Wer dennoch Angst hat, dass dem Pi etwas zustoßen könnte, der kann davor einen Spannungsteiler mit 2 Widerständen setzen, allerdings nimmt dadurch die Genauigkeit ab und auch meine verwendete Formel müsste neu berechnet werden. In meinen Tests kamen aber nie Spannungen über 2.7V an (GP2Y0A02YK0F). Bei den anderen Sharp Sensoren kann dies evtl. abweichen.

 

 

Software zum Auslesen der Distanz

Um den MCP3008 steuern zu können, muss der SPI-Bus aktiviert werden. Dies geht folgendermaßen:

sudo raspi-config

„8 Advanced Options“ -> „A6 SPI“ -> „Yes“.
Danach musst du den Neustart bestätigen.

In manchen Fällen muss das Modul (spi-bcm2708) auch noch in die /etc/modules Datei eingetragen werden. Dazu einfach

sudo nano /etc/modules

aufrufen und folgende Zeile am Ende hinzufügen (falls Sie nicht vorhanden ist):

Shell
1
spi-bcm2807

Nun kann die spidev Bibliothek installiert werden, falls das noch nicht geschehen ist:

sudo apt-get install git python-dev
git clone git://github.com/doceme/py-spidev
cd py-spidev/
sudo python setup.py install

 

Nachdem nun alle benötigten Pakete installiert sind, können wir das Skript zum messen der Distanz erstellen.

sudo nano ir_distance.py

Das Skript hat folgenden Inhalt:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python
import spidev
 
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz=1000000
 
 
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

Führen wir es nun aus (sudo python ir_distance.py), nachdem wir auf ein Objekt zielen, wird der Abstand ausgegeben.

Was passiert hier genau? Zu erst einmal wird der analoge Wert (zwischen 0 und 1023) ausgelesen (Zeile 15). Da wir allerdings die Spannung wissen möchten, wird der Wert durch 1023 dividiert und mit 3.3 (Volt) multipliziert.

Achtung: In diesem Fall wissen wir (laut Datenblatt), dass die Ausgangsspannung nie über ca. 2.8V geht, obwohl wir den Sensor mit 5V versorgen. Andere Module (analog als auch digital) geben oft Signale mit Spannungen zurück, die so hoch wie die angelegte Spannung ist. Sollte man das nicht beachten, kann dies zu Schäden am Raspberry Pi führen.

 

In Zeile 16 des Skripts rechne ich die Spannung in Zentimeter um. Die Formel dazu habe ich hier gefunden und ein wenig angepasst. Dazu habe ich verschiedene Abstände getestet und die Faktoren etwas verändert, sodass die errechnete Distanz möglichst genau zutrifft. Wie ich anfangs erwähnt habe, ist diese Formel nur für den Sharp GP2Y0A02YK0F Sensor. Da die anderen Sensoren analoge Signale im ähnlichen Bereich liefern, muss diese Formel für die entsprechenden Sensoren angepasst werden (falls das jemand macht, würde ich mich freuen, falls er sie hierunter postet).
Alternativ kann man auch zwischen den Bereichen (Datenblatt) interpoliert werden, indem man alle Anhaltspunkte (Volt, Abstand) speichert und den bestimmten Wert ausliest und mittels linearer Interpolation den Abstand zu der gemessenen Spannung errechnet.

Ich habe früher oder später vor ein solches Modul an die Innenseite der Heckscheibe meines Autos zu befestigen und damit einen Distanzmesser beim rückwärts einparken zu haben – falls jemand noch nicht weiß, was er damit anstellen kann 😉

Abstandssensor ADC Car PC Distanz messen entfernung messen infrared infrarot infrarot lichtschranke IR MCP3008
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
Nächster Beitrag Raspberry Pi RTC Modul steuern – I2C Real Time Clock

Ähnliche Beiträge

ESP32 TDS Sensor: Wasserqualität im Smart Home messen

ESP32 pH-Sensor – Automatische pH-Messung für Pool und Hydroponik

Home Assistant auf dem Raspberry Pi – Erste Schritte

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

56 Kommentare

  1. Harry S. am 21. Mai 2016 9:53

    Hallo, und guten Tag,
    meine Frage zum GP2Y0A02YK0F:
    würde sich dieser Sensor auch als „Lichtschranke“ im Außenbereich eignen ?
    D.h. wenn sich ein Objekt in einem Abstand von ca. 0,5 m an dem Sensor vorbei bewegt, sollte ein Signal ausgelöst werden.
    Eine originale Lichtschranke möchte ich nicht verwenden.

    b.r. Harry

    Antworten
    • Felix am 22. Mai 2016 18:17

      Ja das sollte funktionieren. Allerdings müsstest du dann dauerhaft die Distanz abfragen oder den analogen Wert zu einem „Trigger“ umbauen (sodass ab einer bestimmten Spannung bspw. ein Transisotr/Relais öffnet und Strom an einen GPIO Pin gelegt wird, welchem du ein Event zuweist).

      Antworten
  2. Harry Schröder am 25. Mai 2016 11:38

    Vielen Dank für die freundliche Info.
    In diesem Zusammenhang stellt sich mir die Frage, wie man die Auslösung des Sensors zeitlich erfassen und auslesen könnte (Python). Wäre es vielleicht möglich für dieses Vorhaben ein kleines Tutorial einzurichten?

    br. Harry.S

    Antworten
    • Felix am 25. Mai 2016 22:55

      Die einfachere Methode wäre alle X ms die Spannung zu messen und damit die Entfernung berechnen (wie hier im Tutorial mit einer zusätzlichen Schleife). Die andere Methode wäre u.U. etwas komplizierter, da weniger Programmierung dazu nötig ist, dafür mehr Messungen. Wenn auch noch andere daran Interesse haben, könnte ich in Zukunft dazu auch ein Tutorial machen.

      Antworten
  3. Harry S. am 31. Mai 2016 21:20

    Hallo Felix,
    vielen Dank für Deine Nachricht.
    Vielleicht habe ich mich etwas missverständlich ausgedrückt.
    Ich möchte lediglich den Zeitpunkt dokumentieren, an dem der Sensor ausgelöst hat –
    die Zeitangabe in eine Datei schreiben und diese bei Bedarf auslesen.
    b.r. Harry

    Antworten
    • Felix am 31. Mai 2016 22:03

      Naja den Zeitpunkt kannst du einfach mit time.time() feststellen und in eine Datei schreiben ist auch nicht so schwer. Oder wo liegt das Problem genau?
      LG, Felix

      Antworten
  4. Professor Futura am 7. Juni 2016 8:38

    Hallo Zusammen!
    Ich würde gerne einen zweiten und am liebesten noch einen dritten Infrarot Sensor dieser Art an meinen Pi betreiben. Hab aber leider keine Ahnung wie ich das am besten mache … gibt es iwo möglichkeiten sich drüber zu informieren oder ist eventuell mal ein weiteres How-To dieser Art geplant?

    Antworten
    • Felix am 7. Juni 2016 19:56

      Nunja, der MCP3008 hat 8 analoge Channels, d.h. du kannst mit einem Modul bis zu 8 analoge Sensoren auslesen. Ist im Prinzip das gleiche wie in diesem Tutorial, nur dass eben ein anderer Channel (statt CH0) ausgelesen ausgelesen werden muss (woran der zweite Sensor hängt).

      Antworten
  5. Harry S. am 19. Juni 2016 18:07

    Hallo Felix,
    vielleicht magst Du mir einen Hinweis zu folgendem Problem geben:
    Der Abstand zwischen dem Sensor und dem MCP3008 beträgt 18 Meter!
    Aufgrund des Spannungsverlustes (Verbindungskabel = 3 X 1) ist die Sensor- Ausgangsspannung am MCP3008 zu gering.
    Wie könnte ich die Spannung auf einen brauchbaren Wert erhöhen?
    b.r. Harry

    Antworten
    • Felix am 19. Juni 2016 20:12

      Hallo Harry,
      also ich würde wenn dann den MCP3008 möglichst nahe zum Sensor stellen, da der Sapnnungsabfall bei analogen Werten zu falschen Messungen führt. Kannst du dickere Leitungen verwenden oder ggf. eine externe Stromversorgung für den MCP3008? Du müsstest mal den Widerstand des Kabels messen um festzustellen, wie hoch der Verlust sein wird (bis zu einem gewissen Wert ist das digitale Signal weiterhin auslesbar).

      Antworten
  6. Harry.S am 20. Juni 2016 16:23

    Hallo Felix,
    da die Leitung bereits verlegt ist und auch die anderen Gegebenheiten kaum zu verändern sind, werde ich wohl auf den PIR – Bewegungsmelder zurückgreifen müssen.
    Ist Dir vielleicht bekannt, ob dieser Sensor auch Bewegungen unter 3 Meter erfassen kann?

    b.r. Harry

    Antworten
    • Felix am 20. Juni 2016 18:12

      Hey Harry,
      der PIR kann definitiv Bewegungen, die in weniger als 3m Abstand stattfinden wahrnehmen. Das Problem des Sensors werden eher weite Entfernungen sein.
      LG, Felix

      Antworten
  7. Harry S. am 20. Juni 2016 19:50

    Hallo Felix,
    Danke für Deine Info.

    b.r.Harry

    Antworten
  8. Tristan am 4. Dezember 2016 21:04

    Hallo,
    gib´s die möglichkeit die Schaltung umzubauen sodass man in einer Abstand von 50 m ein bewegendes Objekt detektiert? Oder hätten Sie Vorschläge wie man so ewtas it Rasp PI bauen kann?

    vielen Dank

    Antworten
    • Felix am 5. Dezember 2016 1:23

      Die Sharp Module können je nach Modell, leider nur einen Abstand von maximal 10m erkennen. Es gibt einige Laser-Messer, die aber etwas teurer sind. Man müsste ein solches Gerät aufschrauben und die Datenpins anklemmen, um so auch am Raspberry Pi den Abstand auslesen zu können.

      Antworten
      • Chris am 12. November 2018 10:14

        hi
        ich suche genau solch einen Sensor, jedoch bis min 8m. Du schreibst es werden Sensoren bis zu 10 m angeboten, jedoch finde ich da nur welche bis max 550cm.
        Könntest du mir da helfen ?

        Lg Chris

  9. Harald am 15. Dezember 2016 10:55

    Hi,

    ich wollte kurz fragen ob schon jemand eine brauchbare Formel für den GP2Y0A41SK0F (4-30cm) hat, hatte versucht das ergebnis des anderen um ein 5tel zu reduzieren, da die reichweite ja auch jeweils das 5 fache ist, jedoch bringt das leider gar nix 🙁

    mit der formel selbst kann ich leider aufgrund fehlender mathematikkenntisse nichts anfangen 🙁

    lg
    Harald

    Antworten
  10. Deniver am 15. Mai 2017 10:06

    Hi;

    ich habe das System mit dem GP2Y0A21 mit dem Ziel gebaut, dadurch eine Lichtschrank zu erhalten. Nach der Verkabelung habe ich im ersten Schritt einfach den Abstand auslesen wollen und auch wenn die Formel sicher nicht für diesen Typ korrekt ist, so müsste das Ergebnis ja dennoch immer gleich sein. Dies ist leider nicht der Fall. Die Ergebnisse weichen bei jeder Messung leider ab. Da sie aber alle im Ergebnis um die 6000cm liegen und ich ja im Prinzip nur eine Lichtschranke brauche, war mir dies erst einmal egal. Ich wollte dann den „Alarm“ einfach auslösen, wenn der Wert auf unter 3000 fällt. Die Endlosschleife läuft, jedoch wird der Alarm auch so sehr oft ausgelöst ohne dass etwas in die Schranke kommt. Umso häufiger ich den Wert auslese, um so größer sind die Schwankungen. Kann mir vielleicht jemand sagen, wie ich dieses Problem in den Griff bekomme?

    Vielen Dank

    Deniver

    Antworten
    • Felix am 15. Mai 2017 12:41

      Schau dir mal nur die reinen analogen Werte an (0-1023) und prüfe, ob der abgebildete Wert laut Datenblatt mit dem Abstand übereinstimmt. Es könnte natürlich auch sein, dass der Sensor einen Fehler hat.

      Antworten
  11. Martin am 1. September 2017 22:39

    Hi, ich würde gerne den Füllstans meines Heizöltanks messen. Der Ultraschallsensor ist aufgrund der Form meiner Tanks ungeeignet. Denkst Du das würde per Infrarot gehen? Oder wird da auch durch einen Kegel gemessen? Und kann das Teil Flüssigkeit also Öl messen?

    Danke

    Antworten
    • Felix am 13. September 2017 20:15

      Sollte tendentiell funktionieren, aber ich weiß nicht, ob die Oberfläche von Öl dafür geeignet ist. Im Zweifel würde ich es einfach mal ausprobieren 🙂

      Antworten
  12. Dirk am 18. September 2017 10:43

    Hi Felix,

    ich habe mir das mal nachgebaut. Leider werden mir immer 301.4cm angezeigt wenn ich das skript auslese. Ich habe schon beim Sharp Sensor nachgemessen und der funktioniert. Die Spannung am Analogausgang verändert sich je nach Abstand. Den MCP3008 hatte ich erst genau andersrum angeschlossen und daher einen Defekt in Verdacht. Aber den habe ich nun ausgetauscht und das gleiche Resultat. Ich habe als Bauchgefühl das Skript im Verdacht, irgendwas stimmt da wohl nicht wenn er immer nur einen statischen Abstand ausgibt. Aber ich komme nicht drauf was die Ursache genau ist. Kannst du mir da behilflich sein?

    Antworten
    • Dirk am 18. September 2017 11:47

      Ich habe das Ganze nun mal mit der Adafruit Libary ausprobiert.

      https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008

      Dort bekomme ich auf auf Channel 1 auch entsprechende Werte dort wo der Sensor angeschlossen ist (den Channel habe ich in deinem Skript schon geändert). Allerdings auch auf den anderen Channels.

      Reading MCP3008 values, press Ctrl-C to quit…
      | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
      ———————————————————
      | 0 | 483 | 0 | 0 | 0 | 0 | 0 | 0 |
      | 1 | 479 | 0 | 6 | 8 | 11 | 19 | 46 |
      | 199 | 480 | 240 | 279 | 280 | 284 | 288 | 280 |
      | 273 | 483 | 275 | 213 | 212 | 202 | 197 | 157 |
      | 0 | 480 | 0 | 0 | 0 | 0 | 0 | 0 |
      | 18 | 473 | 14 | 19 | 24 | 32 | 49 | 94 |
      | 287 | 476 | 288 | 232 | 227 | 230 | 223 | 201 |
      | 200 | 491 | 229 | 44 | 0 | 0 | 0 | 0 |
      | 0 | 481 | 0 | 0 | 5 | 8 | 17 | 43 |
      | 292 | 482 | 293 | 279 | 279 | 283 | 285 | 274 |
      | 257 | 484 | 261 | 196 | 183 | 176 | 162 | 111 |
      | 0 | 475 | 0 | 0 | 0 | 0 | 0 | 0 |
      | 68 | 482 | 197 | 280 | 283 | 282 | 287 | 281 |
      | 282 | 478 | 271 | 208 | 196 | 190 | 176 | 133 |
      | 0 | 482 | 0 | 0 | 0 | 0 | 0 | 0 |
      | 51 | 477 | 24 | 34 | 137 | 283 | 291 | 284 |
      | 277 | 483 | 281 | 223 | 213 | 208 | 201 | 170 |

      Nun frage ich mich warum kommt auf den ungenutzten Channels was an und weshalb liest dein Skript das nicht korrekt aus.

      Antworten
      • Felix am 18. September 2017 20:49

        An den ungenutzen Channeln ist keine (positive oder negative) Spannung, daher wird diese zufällig festgelegt. Das selbe Verhalten haben die GPIOs wenn du sie ausließt, ohne dass sie an etwas angeschlossen sind.

    • Tobias am 4. Dezember 2017 13:01

      Hallo Dirk,
      hast du die Ursache des Problems damals gefunden? Ich habe nämlich aktuell das gleiche Problem mit 301.44 cm, obwohl der Entfernungsmesser die richtige Spannung ausgibt und alles richtig verdrahtet ist.
      Vielen Dank im Voraus!

      Antworten
      • Robby Ertmann am 26. Mai 2021 21:03

        hallo hast du eine Lösung gefunden

  13. Andreas am 18. Dezember 2017 9:45

    Hallo Felix,
    Kannst du vielleicht Zeile 16 etwas genauer erklären? Ich verstehe nicht wo die Werte herkommen die da angegeben sind. Auch im Originalbeitrag hat sich mir das nicht erschlossen.

    Vielen Dank
    Andreas

    Antworten
    • Felix am 18. Dezember 2017 11:46

      Naja die brauchen eine Parabel die nur einen Eingabeparameter nimmt und müssen diese entsprechend modellieren, sodass der Graph aus dem Datenblatt entsteht. Wenn du eine besser Formel erstellen kannst, die besser passt, immer her damit 🙂

      Antworten
      • hoca am 21. März 2018 17:56

        Sensorspannung bei unterschiedlichen Abständen auslesen, in excel einen Graphen erzeugen, Trendlinie(Regression) mit der grüßtmöglichen Genauikeit (Korrelation) hinzufügen. Die angezeigte Übertragungsfunktion übernehmen.

  14. Tobias am 21. Februar 2018 16:14

    Hallo Felix,
    ich habe heute auch versucht, dass System so nachzustellen und auch ich bekomme auch nur die Zahl 301.44 cm als Ergebnis angezeigt. Die Verkabelung habe ich x-mal kontrolliert und auch das Modul spi_bcm2835 ist geladen. Es sieht ja so aus, als wenn die Funktion readChannel nichts zurückgibt, denn es wird 0 durch 301.439 geteilt, was der Inhalt der Variable dist ist, wenn man sich den ausgeben lässt.
    Irgendeine Idee? Ich wäre echt sehr an dieser Lösung interessiert 🙂
    Danke und Gruß

    Antworten
  15. Marcus am 22. Februar 2018 15:13

    Hallo,

    wie exakt bzw. mit welcher Toleranz arbeiten denn die Sensoren? Auch würde mich interessieren, welcher Durchmesser der Strahl hat und ob sich dieser konzentrisch vergrößert.

    Vielen Dank im Voraus!

    Antworten
    • Felix am 22. Februar 2018 17:41

      Das wird wahrscheinlich von Model des Sensors unterschiedlich sein und im Datenblatt stehen.

      Antworten
  16. Ulrich K am 1. April 2018 17:35

    Hallo zusammen,
    hat sich jemand mal Gedanken über die Genauigkeit gemacht.
    Die Infrarot-LED zieht kräftig Strom und die Ausgangsspannung
    ist entsprechend unruhig.
    Versorgungsspannung abblocken?
    Ausgangsspannung mit Tiefpassfilter versehen?
    Zuleitungen und Abgabespannung getrennt verlegen?

    Antworten
  17. Tobias am 16. Mai 2018 17:38

    Hi Felix,

    noch mal ein Versuch nach einer Lösung zu dem Problem mit den 301.44 cm zu fragen. Ich komme dem so nicht auf die Spur. Hat es hier vielleicht jemand lösen können!?!
    Habt Dank.

    Gruß
    Tobias

    Antworten
    • kelvin am 20. Mai 2018 16:40

      Me too.

      Antworten
  18. kelvin2 am 20. Mai 2018 16:41

    Please help me. I get 301.44 m everytime. Is this bug?

    Antworten
  19. Valentin Willmann am 22. Februar 2019 15:50

    Ich hab mal die Gleichung untersucht. Aus dem Datenblatt von Sharp soll eine Formel erstellt werden. Uns interessiert ja, welche Spannung (also x, bzw v im Programm) welchen Abstand (also y, bzw. dist) ergibt. Sharp gibt die Umkehrung (leider) davon grafisch an. Wenn man also die Achsen vertauscht ergibt sich eine Kurve, die natürlich nur im Bereich von 20 bis 150 cm vernünftige Werte anzeigt, sonst wüsste ich nicht, ob z.B. 2V als 30 oder 8 cm zu verstehen ist. Habe also Messpunkte, so gut es geht ausgelesen und in ein einfaches Grapherprogramm (Grapher am Mac) eingetragen, dazu die Gleichung y = 16,2537 x^4 + … 301,439, die irgendjemand gefunden hat (Annäherung durch ein einfachen Polynom 4. Grades durch hier maximal 5 Messpunkte, mehr kann ja nicht gehen, da 5 Koeffizienten errechnet wurden) . Man sieht dann gleich, das die Funktion nur im Bereich von etwa 70 – 140 cm einigermaßen die Messwerte trifft, sonst liegt die Abweichung bei 5 cm und mehr. Also hochgenau werden die Messungen damit nicht, muss ja auch nicht immer sein, vermutlich haben die Dinger auch Fertigungsstreuungen. Wenns geht ist Ultraschall genauer und billiger.

    Als Funktion müsste eine e-Funktion alleine von der Physik her besser passen. Ich habe jetzt kein schweres Geschoß wie Mathematica drauf angesetzt, sondern nur mit Grapher gespielt, z.B. die Gleichung y = 5*e ^(5,5/(x+1,2)) liefert schon genauere Ergebnisse. Oder man sucht eine Softwarelösung, bei der auf eine Tabelle mit Zwischenwertberechnungen zugegriffen wird.

    Antworten
  20. Valentin Willmann am 22. Februar 2019 17:00

    Für die Kurve des 550cm – Modells funktioniert die Gleichung y = 2*e(8/(x+0,1))+35 einigermaßen genau.

    Antworten
  21. Valentin Willmann am 22. Februar 2019 17:03

    …natürlich y=2*e^(8/(x+01))+35…

    Antworten
  22. Tobias am 25. April 2019 23:23

    Gibt es mittlerweile eine Lösung zu dem 301.44 cm Problem?

    Antworten
  23. Ralf Haeuseler am 30. April 2019 10:54

    Hi, ich sitze auch am 301,44 Problem fest.
    Gruß Ralf

    Antworten
  24. Tobias am 1. Mai 2019 22:57

    Hallo Zusammen,

    ich hatte auch das 301.44 cm Problem, und habe im Netz mal etwas gestöbert und das Skript wie folgt abgeändert. Nun scheint es zu funktionieren. 🙂 Ich habe von Python nur minimale Kenntnisse,
    sollte ich einen Fehler reingebaut haben, bitte ich um Feedback.

    lg Tobias

    #!/usr/bin/python

    import spidev

    spi = spidev.SpiDev()
    spi.open(0,0)
    spi.max_speed_hz=1000000

    def readMCP3008(channel):
    adc=spi.xfer2([1,(8+channel)<<4,0])
    wert = ((adc[1]&3) << 8) + adc[2]
    return wert

    if __name__ == "__main__":
    v=(readMCP3008(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

    Antworten
  25. Micha93 am 6. März 2020 19:56

    Welches Kabel wird eigentlich am Sensor angeschlossen? Es werden F2F-Jumperkabel genannt, aber müssen die vom Steckertyp Dupont sein? Außerdem bin ich verwundert, dass hier nur F2F genannt wird. Benötige ich nicht M2F, damit ich in das Steckbrett etwas einstecken kann? Sehe ich richtig, dass das Kabel, dass beim Sensor mitgeliefert wird, dann in den Female-Stecker eingesteckt werden muss?

    Robotshop empfiehlt bspw. ein SIRC-01 Sharp GP2 IR-Sensorkabel – 8 „, was man vom Sensor direkt auf die GPIO-Pin-Stiftleiste stecken können müsste.

    Gibt es vielleicht ein Bild, dass den tatsächlichen und nicht den schematischen Aufbau zeigt?

    Antworten
  26. Tobi am 27. April 2020 9:47

    Hallo,

    kann dieser Abstandssensor auch für Wasser verwendet werden (Füllstand einer Zisterne)?

    Antworten
    • Felix am 27. April 2020 21:57

      Ich würde schätzen ja, aber du müsstest es ausprobieren.

      Antworten
  27. Adrian Pfender am 5. Mai 2020 19:06

    wie sehe ich die werte?

    das sind alle Fragen

    Antworten
    • Felix am 5. Mai 2020 23:32

      Siehe Schaubild im Datenblatt.

      Antworten
  28. Michdo93 am 23. Juni 2020 21:24

    Das Ergebnis lautet immer 301.44 cm. Egal, wie nah ein Objekt ist und wie weit entfernt.

    Antworten
    • Felix am 11. Juli 2020 23:35

      Dann scheint der analog gemessene Wert nicht zu stimmen…

      Antworten
    • Robby Ertmann am 26. Mai 2021 21:04

      Hallo hast du eine Lösung gefunden? Habe das selbe Problem.

      Antworten
  29. Evil am 9. Juli 2020 16:29

    Hallo zusammen,

    ich habe mal ein ganz ähnliches Projekt mit Temperaturmessung gemacht. Im Kern ist es aber gleich (ADC):
    evil2000.de/Wiki/Thermistor103JT

    Dort habe ich kurz die Steinhart-Hart-Gleichung erwähnt. Es ist die selbe Gleichung welche hier mit dem IR-Abstandsmesser genutzt wird. Wenn ich mir das Schaubild des Sharp GP2Y0A02YK anschaue, kommt das der Kurve eines Thermistors sehr nahe.
    Vielleicht lohnt es sich wenn jemand mal verschiedene Abstände misst und die Spannungen dazu in eine Tablle einträgt. Anschließend füttert man diese der thermistor.1.0.jar. Vielleicht werden die Werte für [a0 .. an] dann genauer und man kann auf eine lineare Interpolation verzichten.
    VG

    Antworten
  30. Kurt Mühlemann am 31. Oktober 2020 16:46

    Hallo zusammen

    301.44cm erhält man, wenn in der Formel v=0V ist. Wenn man die Spannung misst, ist v≠0V. Das bedeutet, dass der ADC MCP3008 nicht richtig arbeitet. Warum ist das so?
    Mit diesem Problem habe ich mich schon in verschiedenen Tutorials herumgeschlagen! Es kommt daher, dass wir inzwiscchen mit RaspberryPi 4 arbeiten. Dieser arbeitet zu schnell für den MCP3008, sofern man den RaspberryPi 4 nicht „bremst“.
    Tobias hat am 1.5.2019 schon die Lösung publiziert! Man muss den Befehl spi.max_speed_hz=1000000
    einfügen, weil der MCP3008 bei VDD=2.7V (was in der Nähe von 3.3V liegt) nur mit 1.35MHz betrieben werden kann! Der Befehlt beschränkt die Transferrate des SPI-Buses auf 1MHz.
    Viel Erfolg!

    Antworten
  31. Michdo93 am 11. November 2020 22:01

    Habe es für mein Roboterauto wie folgt gelöst:
    distance = 10650.08 * pow(read,-0.935)

    https://github.com/Michdo93/robotcar/blob/master/driver/sensor/ir_GP2Y0A02YKOF.py

    Das Problem und die Lösung habe ich hier gefunden:
    http://arduinomega.blogspot.com/2011/05/infrared-long-range-sensor-gift-of.html

    Antworten
  32. Erich am 14. Februar 2021 11:25

    Vielen Dank für den hochinteressanten Beitrag. Ich habe da einen Traum, wer weiß ob das machbar ist. Ich muß meine neue Wohnung ausmessen, weil es leider keinen Plan (mehr?) gibt. Ich habe allerdings wenig Lust dies per Hand mit einem Lasermeßgerät zu machen. Ist auch nicht so prickelnd. Mir würde da eine Lösung vorschweben, in der meinen Raspberry mit einem Messgerät montiert an einem kleinen Motor verbinde. Wenn jetzt das Messgerät den ganzen Raum abtastet, dann müßte ich ein 3D Modell bekommen, das dann „nur“ noch in Linien und Flächen konvertiert werden muß. Rein theoretisch. Welche Lasermodule würdet Ihr mir da empfehlen ? Oder hat dies schon ein anderer implementiert, will ja nicht das Rad neu erfinden.
    Vielen Dank für Ideen oder Infos
    Erich

    Antworten
    • Felix am 14. Februar 2021 11:40

      Dafür sind die Lidar Sensoren gut geeignet, aber leider sehr teuer.

      Antworten
  33. Qui am 19. Mai 2021 22:16

    Hallo,
    vielen Dank für das Tutorial und die Kommentare sind auch sehr interessant.
    Ich habe das Vorhaben, Infrarotsensoren, mit genau dem vorgeschlagenen Aufbau, für eine Triangulationsmessung zu verwenden. Genauer möchte ich den Durchmesser eines runden Querschnittes, bei unbekannter Positionierung im Messfeld, mit drei Sensoren messen.
    Abgesehen von Messungenauigkeiten auf Grund der Oberflächenbeschaffenheit und Reflexionsgrad, wie genau sind die GP2Y0A02YK0F bei gleichbleibenden Randbedingungen?
    Kann ich mit diesen im 1mm Bereich (+-0,5mm) oder sogar genauer messen?
    Ist die Genauigkeit am Ende sogar eher von der Software oder der Mathematik (Kurve) abhängig?

    Vielen Dank schon mal und viele Grüße
    Qui

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Joystick am Raspberry Pi benutzen (mit MCP3008)

Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi

CrowPi 2 Testbericht: Raspberry Pi Laptop & Lern-Kit für Kinder

Raspberry Pi wird 4 Jahre alt – Rückblick

Raspberry Pi: YouTube Live Streaming einrichten

Raspberry Pi Autostart: Programm automatisch starten lassen

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.