Raspberry Pi Pico: Relais-Board steuern (mit ULN2003A)

Die typischen Relais-Boards sind für Mikrocontroller, wie den Arduino, konzipiert und arbeiten eingangsseitig mit TTL-Steuersignalen (5 Volt und 0 Volt). Der Raspberry Pi Pico 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 somit 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 ULN2003A-IC dazwischen. Das ULN2003A-IC hat eine Treiber-Schaltung 7-fach in einem Bauteil integriert. Zwar ist dieses IC 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 Pico: Relais-Board steuern (mit ULN2003A)

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 Pico. 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. Und der Ground (GND) des Relais-Boards wird durch das ULN2003A-IC gesteuert.

Schnell und einfach alle Bauteile zusammen bestellen

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 wird das Programm beendet.

# Bibliotheken laden
from machine import Pin
from time import sleep

# Initialisierung von GPIO14 als Ausgang
device = Pin(14, Pin.OUT, value=0)

# LED einschalten
print('EIN')
device.on()

# 3 Sekunden warten
print('.')
sleep(1)
print('.')
sleep(1)
print('.')
sleep(1)

# LED ausschalten
print('AUS')
device.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.

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Sets für das Hardware-nahe Programmieren