Wie verbindet man Arduino mit anderen Mikrocontrollern oder Geräten?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Das Zusammenspiel von Arduino mit anderen Mikrocontrollern (MCUs) oder Geräten hat drei Ebenen: elektrische Kompatibilität → physischer Bus/Protokoll → Anwendungslogik. Hier ist ein kompakter, praxisnaher Leitfaden.
1) Elektrische Grundlagen (nicht überspringen!)
-
Spannungspegel: Viele Arduinos (Arduino UNO/Nano) arbeiten mit 5 V; viele MCUs/Sensoren mit 3,3 V.
-
Pegelwandler verwenden:
-
I²C: PCA9306, BSS138-Typ.
-
SPI/UART/digital: TXS0108E (open-drain-freundlich), einfacher Teiler (auf Arduino-Eingänge), Transistor/MOSFET-Puffer.
-
-
-
Stromgrenzen: Behandle Arduino-GPIOs als ~20 mA pro Pin (weniger ist besser). Relais/Motoren nie direkt treiben — nutze Transistor/MOSFET + Freilaufdiode oder einen Treiber-IC.
-
Masse: GND zwischen Boards verbinden, außer du isolierst bewusst (Optokoppler/Isolatoren, isolierte DC-DC).
-
Schutz: 100–330 Ω in Reihe auf empfindlichen Leitungen, TVS-Dioden bei langen Kabeln, richtige Abschlüsse bei differentiellen Bussen.
2) Übliche Verbindungsarten
A) UART (asynchron, einfaches Peer-to-Peer)
-
Einsatz: Zwei MCUs tauschen Bytes/Strings; auch für RS-232/RS-485 mit Transceiver.
-
Verdrahtung (TTL): Arduino
TX
→ anderer MCURX
, ArduinoRX
← anderer MCUTX
, plus GND.-
RS-232: MAX3232 hinzufügen.
-
RS-485 (lange Kabel, Multidrop): MAX485/75176; 120-Ω-Abschluss an den Enden; DE/RE steuern.
-
-
Beispiel (Hardware-UART):
-
RS-485 DE/RE-Steuerung:
B) I²C (zwei Leitungen, adressierbarer Bus)
-
Einsatz: Viele Sensoren/MCUs auf kurzem Leiterplatten-Bus; Master/Slave-Modell.
-
Verdrahtung: SDA, SCL, Pull-ups (typ. 4,7 kΩ) auf Busspannung, gemeinsame Masse. Leitungen kurz halten.
-
Master schreibt/liest:
-
Arduino als I²C-Slave (vor allem AVR-Boards):
Hinweis: Manche Nicht-AVR-Cores haben eingeschränkten/alternativen Slave-Support.
C) SPI (schnell, Master-zentriert)
-
Einsatz: Hochgeschwindigkeits-Peripherie (ADCs, DACs, Displays) oder MCU-zu-MCU mit klarem Master.
-
Verdrahtung: MISO, MOSI, SCK, CS (pro Gerät), GND (+ ggf. Pegelwandlung).
-
Master-Beispiel:
Arduino als SPI-Slave ist möglich, aber board-/core-spezifisch; für MCU-zu-MCU sind UART oder I²C meist einfacher.
D) 1-Wire / GPIO-„Bit-Banging“
-
Einsatz: Sehr einfache Sensoren (DS18B20) oder kundenspezifische Protokolle mit niedriger Geschwindigkeit.
-
Bibliotheken (z. B. OneWire) übernehmen das Timing.
E) Analog & PWM-Brücken
-
Analog in: Fremdgerät gibt 0–5 V (UNO) oder 0–3,3 V (viele andere) aus → Teiler/Puffer nutzen; mit
analogRead()
einlesen. -
Arduino als „DAC“: PWM mit R-C filtern (z. B. 10 kΩ + 0,1 µF) und skalieren.
F) Feld-/Industriebusse und höhere Schichten
-
CAN: MCP2515 + TJA1050/TJA1051 (SPI) oder integriertes CAN auf manchen Boards.
-
Modbus RTU (RS-485): MAX485 + Modbus-Bibliothek.
-
USB: USB-Device-Boards (Arduino Leonardo/Micro) emulieren CDC/KB/MIDI; für USB-Host (z. B. Maus) USB-Host-Shield oder Board mit nativem USB-Host.
-
Ethernet/Wi-Fi/BLE: ESP32/ESP8266, W5500 oder Arduino-Ethernet/Wi-Fi-Shields; dann TCP/UDP, MQTT, HTTP, WebSockets sprechen.
3) Protokoll & Framing (robust machen)
-
Frame definieren: Start-Byte(s), Länge, Payload, CRC oder Checksumme.
-
Timeouts & Retries: Nicht-blockierende Reads; mit Teilframes umgehen.
-
Flusskontrolle: Bei schnellen UART-Links CTS/RTS oder App-seitige Acks/Fenster.
-
Adressen: I²C nutzt 7-Bit-Adressen; Kollisionen vermeiden.
4) Schnellwahl Pegelwandler
-
I²C: PCA9306 oder BSS138-Typ (bidirektional, Open-Drain).
-
Push-Pull-GPIO/SPI/UART: TXS0108E/TXB0108 (TXB kann mit Pull-ups zickig sein); einfacher Teiler → Arduino-Eingang; MOSFET/BJT für 3,3→5-V-Treiber.
5) Isolation (wenn Massen nicht verbunden sein sollen)
-
Digital: Optokoppler oder ADuM-Digitalisolatoren (I²C-spezifische Varianten existieren).
-
Versorgung: Isolierter DC-DC, um die Gegenseite zu speisen.
-
RS-485/CAN: In rauer/weiter Umgebung isolierte Transceiver bevorzugen.
6) Debug-Checkliste
-
Logikanalysator oder Oszi: Spannungen, Flanken, Pull-ups und Timing prüfen.
-
Doppelt checken: Baudrate, I²C-Pull-ups, SPI-Modus (CPOL/CPHA), CS-Polarität.
-
Langsam starten: Bus-Geschwindigkeit reduzieren (
Wire.setClock(100000)
, langsameres SPI, geringere UART-Baudrate), dann steigern. -
Loopback auf jeder Seite separat testen; dann verbinden.
Schnellwahl-Matrix
-
Kurz & simpel MCU↔MCU: UART (TTL)
-
Mehrere Bausteine auf kurzem Bus: I²C
-
Hochgeschwindigkeits-Peripherie, ein Master: SPI
-
Lange Leitung / Störumgebung / viele Knoten: RS-485 (+ Modbus) oder CAN
-
PC/Phone/Cloud: USB-CDC, Wi-Fi/Ethernet (HTTP/MQTT), BLE-GATT
Verwandte Artikel
- ·Was ist die Rolle der DSP in Machine-Learning- und KI-Anwendungen?
- ·Die Anwendung von Sensoren in Smart Homes
- ·Welcher Mikrocontroller ist am besten, um Motorsprung zu steuern?
- ·Wie verbindet man einen Arduino mit Bluetooth-Modulen?
- ·Welche Sprache ist am besten für Robotik, IoT, KI, Spiele oder Web-Apps?
- ·Welche sind die zehn am häufigsten verwendeten Sensoren für das industrielle IoT?
- ·Wie nutzt man Arduino für IoT-Anwendungen?
- ·STM32 + LoRa Drahtloses Sensornetzwerk (WSN) — Komplettes Design
- ·Wie erstelle ich ein physisches Mikrocontrollerprojekt mit nuller Grundlage?