Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Low-Cost Infrarot-Näherungssensor für Raspberry Pi nur mit Digitalpins

Hintergrund

Raspberry Pi Boards basieren auf dem Broadcom BCM2835 Prozessor, der 26 General-Purpose Input/Output (GPIO) Pins bietet. Während Python-Bibliotheken wie RPi.GPIO die Steuerung dieser Pins vereinfachen, besteht eine bemerkenswerte Einschränkung gegenüber Arduino: das Fehlen echter Analogeingänge. GPIO-Pins sind strikt digital: ein als Output gesetzter Pin kann nur 0 V (LOW) oder 3,3 V (HIGH) liefern. Als Input konfiguriert, wird jede Spannung unter 0,8 V als LOW interpretiert, jede über 1,3 V als HIGH.

In vielen realen Anwendungen – Temperaturüberwachung, Distanzmessung, Lichtintensitätsmessung – ist das zugrundeliegende Signal inhärent kontinuierlich. Ein binärer „An/Aus“-Output ist oft unzureichend. Der typische Workaround ist ein externer Analog-Digital-Wandler (ADC) wie MCP3008, TLC549 oder MCP23017, die über SPI oder I²C kommunizieren. Diese Chips sind einzeln günstig, aber in Kombination mit kommerziellen Sensoren können die Gesamtkosten auf 20–30 $ steigen und der Aufbau wird sperrig – problematisch für Robotik-Projekte, die mehrere Sensoren benötigen.

Glücklicherweise existiert ein simpler, effektiver Ansatz, der den Bedarf an externem ADC eliminiert. Indem man die analoge Messung in ein zeitbasiertes Signal umwandelt, können die digitalen Pins des Raspberry Pi kontinuierliche Daten indirekt abtasten. Zeit ist eine natürlich analoge Größe, und die Technik basiert auf dem klassischen RC (Widerstand-Kondensator) Ladeprinzip.

DIY Infrarot-Näherungssensor Design

Die Schaltung nutzt nur günstige Bauteile: eine Handvoll Infrarot-LEDs, einen Phototransistor, einen 2N3904 NPN-Transistor, einen 100 nF Keramikkondensator und Low-Power-Widerstände. Exakte Bauteilnummern sind austauschbar; entscheidend ist die Einhaltung der korrekten elektrischen Charakteristiken.

Wichtiger Bauteil-Hinweis: Der 100 nF Kondensator kann ein Low-Profile Keramik- oder Class-1 Keramik/Folien-Kondensator für optimale Stabilität sein.

Hardware-Setup

  1. Stromversorgung: +5 V und GND an externe 5 V Versorgung anschließen. GND mit Raspberry Pi Masse verbinden.
  2. GPIO-Zuweisung: Einen GPIO-Pin (z. B. PIN_A) als Trigger-Output, einen anderen (z. B. PIN_B) als Mess-Input wählen.

Messprinzip

Wenn PIN_A auf HIGH geschaltet wird, beleuchten die Infrarot-LEDs die Zieloberfläche. Reflektiertes Licht aktiviert den Phototransistor, der einen proportional zur reflektierten Intensität Strom erzeugt. Dieser Strom lädt den Kondensator über den 2N3904 Transistor. Die Zeit, die der Kondensator braucht, um den digitalen Schwellwert des Raspberry Pi an PIN_B zu überschreiten, ist umgekehrt proportional zum Phototransistor-Strom und damit direkt proportional zur Distanz zum reflektierenden Objekt.

Python-Steuerablauf

# 1. Kondensator vollständig entladen
GPIO.setup(PIN_B, GPIO.OUT)
GPIO.output(PIN_B, 0)
time.sleep(0.01)  # 10 ms > 200×RC (≈0,00005 s)

# 2. PIN_B auf Input-Mode schalten
GPIO.setup(PIN_B, GPIO.IN)

# 3. IR-LEDs triggern
GPIO.setup(PIN_A, GPIO.OUT)
GPIO.output(PIN_A, 1)

# 4. Low-Dauer an PIN_B messen
counter = 0
start_time = time.time() * 1000  # Millisekunden
while GPIO.input(PIN_B) == 0 and counter < 1e4:
    counter += 1
elapsed = time.time() * 1000 - start_time
# elapsed (in ms) ≈ k × Distanz

Mit 4,3 kΩ Widerstand und 100 nF Kondensator beträgt die RC-Zeitkonstante 0,43 ms. Der 2N3904 verstärkt den Phototransistor-Strom um ca. 150×, sodass die LEDs während der Aktivierung ca. 50 mA ziehen. Die resultierende Zeitverzögerung elapsed skaliert linear mit der Distanz und liefert eine simple Analog-zu-Zeit-Umsetzung ohne dedizierte ADC-Hardware.

Diese Methode bietet eine kompakte, kostengünstige Alternative zu konventionellen ADC-basierten Näherungssensoren – ideal für eingebettete Robotik, Hobby-Projekte und Lehrdemonstrationen.

Herstellungsprozess

  1. Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
  2. DS1820 One-Wire Temperatursensor an Raspberry Pi GPIO anschließen
  3. Sensordaten in Raspberry Pi integrieren: GPS & MPU-9150 Hands-On Guide
  4. HC-SR04 Ultraschallsensor an Raspberry Pi 3 anschließen – Komplettanleitung
  5. Line-Tracking-Sensor mit Raspberry Pi – Einfacher KY-033 Tür/Line Detektor
  6. Analoge Sensoren am Raspberry Pi mit nur einem GPIO-Pin auslesen
  7. DIY Infrarot-Bewegungsmelder für Raspberry Pi – Schritt-für-Schritt-Anleitung
  8. Analoge Sensoren am Raspberry Pi ohne nativen ADC auslesen – Step-Response Methode
  9. DS18B20 1-Wire Digitalthermometer an Raspberry Pi anschließen – Schritt-für-Schritt-Anleitung
  10. Linearen Hall-Sensor mit Raspberry Pi auslesen: Java-Anleitung & ADC0832 Einblicke