Dieser Sensor benutzt infrarotes Licht, um Hindernisse zu erkennen. Trifft das ausgesendete Infrarot Licht auf ein Hindernis, so wird dieses reflektiert und von der Fotodiode detektiert. Die Entfernung, die zum Detektieren erreicht werden muss, kann mit den beiden Reglern justiert werden.

Dieses Verhalten kann man in Steuerungen einsetzten, wie sie z.B. bei Robotern Verwendung finden, um autonom stoppen zu können, falls sie auf ein Hindernis zu fahren würden.

Zustand 1: Vor dem Detektor ist kein Hindernis [LED auf dem Modul: Aus] [Sensor Signal= Digital Ein]

Zustand 2: Detektor hat Hindernis erkannt [LED auf dem Modul: Ein] [Sensor Signal= Digital Aus]

Dieser Sensor besitzt mit dem zusätzlichen Pin "Enable" die Möglichkeit, die Hindernis-Detektion mittels Kontroller zu aktivieren oder zu deaktivieren. Standardmäßig ist bei diesem Sensor dieses aktiviert, also dauerhaft wird die Detektion durchgeführt - möchte man dies nicht, da die gewünschte Programmierung z.B. nicht vorsieht, so muss man die Steckbrücke (siehe grün im Bild) mit der Beschriftung "EN" entfernen und auf den "Enable-Pin" ein Steuersignal aktivieren.

*Hierbei ist zu beachten, dass der rechte Regler für die messbare Entfernung des Sensors zuständig ist. Wenn dieser nach rechts gedreht wird, steigt die messbare Entfernung und wenn dieser nach links gedreht wird, sinkt die messbare Entfernung.

*Hierbei ist zu beachten, das der linke Regler für die Empfindlichkeit des Sensor zuständig ist. Wenn dieser nach rechts gedreht wird, steigt die Empfindlichkeit und wenn dieser nach links gedreht wird, sinkt die Empfindlichkeit des Sensors.

Pin-Belegung

Codebeispiel Arduino

Anschlussbelegung Arduino

Arduino Sensor
- Enable
5V +V
Masse GND
Pin 10 Signal

Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Hindernis Detektor sich aktuell vor einem Hindernis befindet oder nicht.

int Led = 13 ;// Deklaration des LED-Ausgangspin
int Sensor = 10; // Deklaration des Sensor-Eingangspin
int val; // Temporaere Variable
   
void setup ()
{
  pinMode (Led, OUTPUT) ; // Initialisierung Ausgangspin
  pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin
}
   
void loop ()
{
  val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen
   
  if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet.
  {
    digitalWrite (Led, LOW);
  }
  else
  {
    digitalWrite (Led, HIGH);
  }
}

Beispielprogramm Download

KY032-Arduino.zip

Codebeispiel Raspberry Pi

Anschlussbelegung Raspberry Pi

Raspberry Pi Sensor
- Enable
3,3V [Pin 1] +V
Masse [Pin 6] GND
GPIO 24 [Pin 18] Signal

Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Hindernis Detektor sich aktuell vor einem Hindernis befindet oder nicht.

# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist.
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
 
# Pause zwischen der Ausgabe des Ergebnisses wird definiert (in Sekunden)
delayTime = 0.5
 
print ("Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]")
 
# Hauptprogrammschleife
try:
    while True:
        if GPIO.input(GPIO_PIN) == True:
            print ("Kein Hindernis")
        else:
            print ("Hindernis erkannt")
        print ("---------------------------------------")
 
        # Reset + Delay
        time.sleep(delayTime)
 
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
    GPIO.cleanup()

Beispielprogramm Download

KY032-RPi.zip

Zu starten mit dem Befehl:

sudo python3 KY032-RPi.py

Codebeispiel Micro:Bit

Anschlussbelegung Micro:Bit:

Micro:Bit Sensor
Pin 1 Signal
3V +V
Masse GND

Hierbei handelt es sich um ein MakeCode Beispiel für Micro:Bit welches essenziel das gleiche macht wie die Beispiele der anderen beiden Varianten. Jedoch ist dieses Beispiel eher näher an das Beispiel des Raspberry Pi angelehnt als an das Beispiel des Arduino.

Beispielprogramm Download

microbit-KY-032