Raspberry Pi Pico: Schnittstellen ansteuern

Das Mikrocontroller-Board Raspberry Pi Pico verfügt über eine Vielzahl unterschiedlicher Schnittstellen, die es ermöglichen, verschiedene Komponenten und Geräte anzuschließen.

Dazu gehört ein MicroUSB-Anschluss für die Stromversorgung und Datenübertragung, GPIO-Pins zur Steuerung externer Geräte, I2C und SPI, sowie UART für die Kommunikation mit anderen Geräten. Darüber hinaus lassen sich an den GPIOs ein PWM-Signal zum Ansteuern von Motoren oder LEDs ausgeben.
Der Raspberry Pi Pico W (WH) verfügt sogar über einen Funkchip, der den Pico mit einem WLAN verbinden kann.

Welche Schnittstelle man verwendet hängt davon ab, was die Gegenstelle anbietet. Entscheidend ist die Kommunikationsrichtung, unidirektional als Eingang, Ausgang oder bidirektional mit einem Protokoll.

Übersicht: Werte und Zustände messen

  • GPIO als digitaler Eingang zum Ermitteln eines Zustands
  • GPIO als analoger Eingang mit ADC zum Messen einer Spannung

Übersicht: Unidirektionale Kommunikation: Signalisieren und steuern

  • GPIO als digitaler Ausgang
  • GPIO als Ausgang mit PWM-Signal

Übersicht: Bidirektionale Kommunikation

Bidirektionale Kommunikation wird zur Übermittlung unterschiedlicher Kommandos zur Abfrage von Daten oder Steuerung verwendet.
Ein Nachteil davon ist, dass die Software-seitige Ansteuerung geeignete Treiber oder Bibliotheken notwendig macht.

  • UART
  • SPI
  • I2C
  • Bit Banging

Digitaler Ausgang (GPIO)

Ein GPIO-Ausgang kann die Zustände "High" und "Low" annehmen. Das bedeutet, dass entweder eine Spannung von VCC für "High" oder 0 V für "Low" am Ausgang anliegt. Die anliegende Spannung nutzt man im Regelfall, um Bauteile oder Geräte zu schalten. Ist ein GPIO als Ausgang definiert, dann kann man im einfachsten Fall eine LED zum Leuchten bringen oder über einen Transistor, ein Relais oder einen Motor steuern.

Digitaler Eingang (GPIO)

Ein digitaler Eingang an einem Mikrocontroller ist eine Schnittstelle, über die externe Geräte Signale an den Mikrocontroller weitergeben können. Diese Signale müssen der binären Logik folgen und können nur zwei Zustände annehmen: HIGH oder LOW. Ein HIGH-Signal entspricht dabei in der Regel VCC während ein LOW-Signal 0 V hat.

Das funktioniert gut bei Sensoren, die wie ein Schalter arbeiten. Sie liefern die beiden Zustände: ein und aus. Solche Signale lassen sich besonders einfach auswerten, da der Mikrocontroller an einen GPIO-Eingang direkt erkennen kann, ob ein Signal HIGH oder LOW ist.

Analoger Eingang (ADC)

Sensoren ändern ihren elektrischen Widerstand als Reaktion auf eine physikalische Änderung. Zum Beispiel von Temperatur oder Licht. Mit einem analogen Eingang (ADC) kann man diese Widerstandsänderung durch das Messen einer Spannung feststellen. Während ein digitaler Eingang nur zwei Zustände feststellen und somit nur einen Schwellwert auswerten kann, kann ein analoger Eingang in Abhängigkeit vom ADC viel mehr Werte unterscheiden. Die Kalibrierung und Definition der Schwellwerte kann dann in der Software erfolgen, die sogar dynamisch angepasst werden können.

GPIO-Ausgang mit PWM-Signal

PWM steht für Pulsweitenmodulation bzw. Pulse Width Modulation. Modulationsverfahren werden eingesetzt, um Informationen und Daten so in elektrische Signale umzuwandeln, dass sie für die Übertragung geeignet sind.
In einem PWM-Signal kann man eine Information im Rechtecksignal mit unterschiedlicher Pulsbreite übertragen. Die Information steckt im Verhältnis der Impulsbreite bzw. Impulsweite zur Periodendauer des Signals.
Um ein PWM-Signal zu erzeugen benötigt man einen PWM-Signalgenerator. Ein Raspberry Pi Pico kann an jedem GPIO ein PWM-Signal erzeugen und damit externe Geräten steuern. Einmal programmiert, wiederholt der PWM-Generator das Signal so lange, bis es geändert oder abgeschaltet wird.

UART

UART ist eine Standard-Schnittstelle, die eine Vielzahl von Geräten haben, um Daten mit einem anderen Geräte austauschen zu können. Obwohl im PC-Bereich fast alle externen Verbindungen mit USB realisiert werden, wird die serielle Schnittstelle oft zur Übertragung von Daten über USB emuliert.
Eine serielle Schnittstelle wie UART ist die einfachste Form, um Textzeichen zwischen Geräten auszutauschen. Die Schnittstelle kann sowohl unidirektional als auch bidirektional eingesetzt werden.

I2C

I2C verwendet bidirektionale Daten- und Taktleitungen und wird typischerweise für die Kommunikation zwischen mehreren Komponenten auf der selben Platine oder zwischen Platinen benutzt.

SPI

SPI ist eine Schnittstelle und ein Protokoll, das häufig zum Verbinden von Mikrocontrollern mit anderen Geräten wie Sensoren, Speichermedien oder Anzeigen verwendet wird. SPI ermöglicht eine einfache Datenübertragung mit mehreren Geräten an einem Bus. Es ist für eine Vielzahl von Anwendungen einsetzbar, bei denen eine schnelle Übertragung von Daten erforderlich ist.

Bit Banging

Bit Banging bezeichnet ein Verfahren, bei dem ein Bussystem über die GPIO-Pins eines Mikrocontrollers nachgebildet wird. Dieses Vorgehen wird dann nötig, wenn ein Sensor so spezielle Anforderungen hat, dass er sich nicht mit einem gängigen Standardprotokoll ansprechen lässt. In solchen Fällen muss ein eigener Code geschrieben werden, um die Kommunikation mit dem Sensor zu ermöglichen.
Beim Bit Banging werden Ausgänge in exakt vorgegebenen Zeitabständen ein- und ausgeschaltet oder an Eingängen Zeitdifferenzen zwischen Pegeländerungen gemessen.
Ein typisches Beispiel ist die Ansteuerung eines Ultraschall-Entfernungssensors vom Typ HC-SR04: Über den Trigger-Pin wird eine Zeitmessung gestartet, während am Echo-Pin ein Signal empfangen wird. Aus der gemessenen Zeitspanne lässt sich anschließend die Entfernung berechnen.

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