Raspberry Pi Pico: Hardware-Reset und Neustart mit Taster

An den seitlich herausgeführten IO-Pins des Raspberry Pi Pico gibt es auch einen Pin mit der Bezeichnung RUN (Pin 30). Auch wenn diese Bezeichnung anderes vermuten lässt, kann dieser IO-Pin als Hardware-Reset verwendet werden, der einen Neustart auslöst, wenn er mit GND verbunden wird.

Wichtig zu wissen ist, dass dabei das laufende Programm abgebrochen wird und auch die Verbindung zu einer Entwicklungsumgebung, wie z. B. der Thonny Python IDE, beendet wird. Hilfreich ist dieser Reset, wenn der Programmablauf irgendwie hängt und der Raspberry Pi Pico neu gestartet werden soll. Man muss dann nicht die Energieversorgung trennen. Man kann auch einfach einen Reset-Taster vorsehen oder mit einem Verbindungskabel zwischen RUN und GND einen manuellen Reset vornehmen.
Der RUN-Pin kann auch für eine Aufweck-Funktion aus dem Schlafmodus verwendet werden.

Aufbau und Bauteile (Variante 1)

Raspberry Pi Pico: Hardware-Reset mit Taster (Neustart)

Mit einem Tasters zwischen dem IO-Pin 30 (RUN) und GND kann man einen Reset-Taster vorsehen, der einen Reset auslöst, wenn er gedrückt wird. Der Taster verbindet dann RUN mit GND.

Aufbau und Bauteile (Variante 2)

Variante 2 ist deshalb interessant, weil man einfach nur ein Taster-Modul ins Steckbrett stecken muss. Und schon hat man sich einen Hardware-Reset gebaut.

Programmcode

Der Programmcode schaltet die Onboard-LED für ein paar Sekunden ein und kurz bevor der Raspberry Pi Pico in den Schlafmodus versetzt wird wieder aus. Durch Drücken des RUN-Tasters wird ein Reset und Neustart ausgelöst und auf diese Weise der Raspberry Pi Pico wieder aufgeweckt.

# Bibliotheken laden
import machine
import time

# Onboard-LED initialisieren (Grundzustand = EIN)
onboard_led = machine.Pin('LED', machine.Pin.OUT, value=1)

# Hauptprogramm
time.sleep(3)
print('SCHLAFEN')
print('RUN-Taster drücken zum Aufwachen')
onboard_led.off()

# In den Schlafmodus versetzen
time.sleep(1)
machine.deepsleep()

Ein Nachteil dieser Lösung ist, dass durch den Reset (Neustart) die Verbindung zur Thonny Python IDE getrennt wird und der Neustart im selben Programmcode nur dann gelingt, wenn der Programmcode in einer Datei mit dem Namen „main.py“ gespeichert ist.
Ein weiterer Nachteil ist, dass der Programmcode damit zwingend neu gestartet wird und die Daten gelöscht sind, wenn sie vor dem Schlafmodus nicht gespeichert wurden.

Alternative: Schlafmodus mit Aufweck-Funktion

Wenn man möchte, dass nach dem Aufwachen der Programmcode an der Stelle ausgeführt wird, nach der er in den Schlafmodus versetzt wurde, der braucht dafür eine universellere Lösung.

Alternative: Software-Reset

Um einen Mikrocontroller wie den Raspberry Pi Pico neu zu starten, kann man den RUN-Pin (Pin 30) mit GND verbinden, oder softwareseitig den Befehl „machine.reset()“ im MicroPython-Programmcode verwenden.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

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

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren