Raspi, Arduino und ESP: GPIO-Pins per Extender erweitern

Wenn die integrierten GPIO-Pins am Arduino, ESP8266, ESP32 oder Raspi nicht reichen, hilft ein per I2C-Bus angeschlossener GPIO-Extender-Chip wie der MCP23017.

Lesezeit: 7 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 14 Beiträge
Von
  • Pina Merkert
Inhaltsverzeichnis

Auf dem Basteltisch breiten sich die Teile fürs neueste Projekt aus: fünf Relais, eine LED, zwei Schalter und ein Temperatursensor. Kurz durchgezählt: Die Bauteile belegen 10 GPIO-Pins am Mikrocontroller. Der geplante ESP-12f hat aber nur acht nutzbare Pins. Was tun?

Eine Lösung sind GPIO-Extender wie der MCP23017, den man für weniger als einen Euro bekommt. Den Chip steuert der Mikrocontroller über den seriellen I2C-Bus an und der Baustein kümmert sich seinerseits ums Auslesen der Schalterstellung und das Schalten der Relais. Die seriellen Befehle kosten ein paar Millisekunden Zeit, dafür liefert der Chip satte 16 konfigurierbare digitale Ein- oder Ausgabe-Pins.

Einen I2C-Bus können alle gängigen Bastelplatinen bereitstellen: Die verschiedenen Arduinos reservieren dafür fest Pin 4 (Daten) und 5 (Zeitsignal). ESP8266 und ESP32 können jeweils zwei beliebige ihrer GPIO-Pins für I2C verwenden und arbeiten bei Bedarf sogar als Master für mehrere I2C-Busse. Beim Raspi muss man I2C über raspi-config aktivieren und findet das Zeitsignal anschließend an GPIO 5 und die Daten an GPIO 3.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+