Raspberry Pi: Relais-Board über ULN2003A steuern (mit Python und GPIO Zero)

Die typischen Relais-Boards sind für Mikrocontroller, wie dem Arduino, konzipiert und arbeiten eingangsseitig mit TTL-Steuersignalen (5 Volt und 0 Volt). Der Raspberry Pi gibt an seinen GPIO-Ausgängen aber nur eine Spannung von 3,3 Volt aus. Das reicht normalerweise aus, um ein TTL-High-Signal zu erkennen und zu schalten. Die Frage ist, ob das in der Praxis immer so funktionieren wird und betriebssicher ist.

Wenn knapp dimensionierte Bauteile und Baugruppen zu gelegentlicher Fehlfunktion führen, dann kann das ungeahnte Folgen haben. Deshalb verbinden wir das vorhandene Relais-Board nicht direkt mit dem GPIO, sondern schalten ein ULN2003-IC dazwischen. Zwar ist dieses IC auch für TTL-Signale gedacht, also 5 und 0 Volt, allerdings reagiert es wegen der integrierten Darlington-Schaltung ziemlich empfindlich. Das heißt, es steuert sicherer durch als die Eingangsschaltung eines Relais-Boards.

Aufbau und Bauteile

Raspberry Pi: Relais-Board über ULN2003A steuern (mit Python und GPIO Zero)

Der Aufbau und die Beschaltung des Relais-Boards scheinen auf den ersten Blick ungewöhnlich, vielleicht sogar falsch zu sein. Und tatsächlich ist es so, dass die Beschaltung des Relais-Boards auf diese Weise nicht vorgesehen ist.

Warum machen wir es trotzdem? Ein Relais-Board hat den Vorteil dass es eine Schutzschaltung für das Relais, eine Treiberstufe zur Relais-Ansteuerung und Anschlüsse herausführt. Leider ist diese Treiberstufe am Eingang der meisten Relais-Boards für Mikrocontroller, wie den Arduino gemacht, aber nicht für den Raspberry Pi. Deshalb lassen wir das Relais-Board durch ein ULN2003A schalten.

Zur Beschaltung: Normalerweise ist die Betriebsspannung des Relais dauerhaft an das Relais-Board angelegt. Das Relais selber wird über den Signaleingang geschaltet. Bei dieser Beschaltung des Relais-Boards wird der Steuereingang mit einer Verbindung mit 5 Volt dauerhaft auf „High“ gelegt. Die Betriebsspannung für das Relais bzw. Relais-Board wird durch das ULN2003A-IC gesteuert.

Programmcode

Das Programm funktioniert vergleichsweise einfach. Der GPIO wird mit „on“ auf „High“ gesetzt und das Relais zieht an. In diesem Zustand bleibt das Relais für 3 Sekunden. Danach wird der GPIO mit „off“ auf „Low“ gesetzt und das Relais wird gelöst. Danach ist das Programm beendet.

# Bibliotheken laden
from gpiozero import DigitalOutputDevice
from time import sleep

# Initialisierung von GPIO4 als digitaler Ausgang für eine Relais-Steuerung
relais = DigitalOutputDevice(4)

# 1 Sekunde warten
sleep(1)

# Relais einschalten
relais.on()

# 3 Sekunden warten
sleep(3)

# Relais ausschalten
relais.off()

Darf es ein bisschen mehr sein?

Es gibt noch eine weitere Möglichkeit ein Relais-Board zu steuern. Ohne ULN2003A-IC. Direkt über einen GPIO.

Highlights: Elektronik mit dem Raspberry Pi

Alternative: Elektronik mit dem Raspberry Pi Pico

Raspberry Pi Pico ist ein Mikrocontroller. Er ermöglicht Dank vieler analoger und digitaler Eingänge und Ausgänge vielfältige Anwendung im Bereich der Steuerung von elektronischen Bauteilen, Sensorik, Robotik und Automation.

Weitere verwandte Themen:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Verschiedene Zustände auswerten und anzeigen lassen
  • LED mit Taster einschalten und ausschalten
  • Relais-Board steuern
  • LED, Relais-Board und Motor über ULN2003A steuern
  • Ampel- und Lauflicht-Steuerung
  • Herunterfahren per Taster
  • Reaktionsspiel mit Tastern und LEDs
  • Eigene Steuerungen programmieren

Mehr Informationen Elektronik-Set jetzt bestellen

Teilen:

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • sofort Loslegen mit All-in-one-Set

Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Mehr Informationen Am Online-Workshop teilnehmen