Serielle Kommunikation Arduino-Raspberry
Serielle Kommunikation zwischen Arduino und Raspberry Pi
Verdrahtungsbeispiel:

[Bild: Arduino Uno und Raspberry Pi, Quelle:
https://shepherdingelectrons.blogspot.com/2019/06/serial-uart-gpio-on-raspberry-pi-zero.html
https://shepherdingelectrons.blogspot.com/2019/06/serial-uart-gpio-on-raspberry-pi-zero.html
Wichtig:
NICHT 5V und 3.3V direkt verbinden! Verwende einen Spannungsteiler für 5V→3.3V.
Dafür gibt es die Wiederstände mit 10k und 20 die hier als Spannungsteiler dienen.
1. Arduino-Code
void setup() { Serial.begin(9600); // Serielle Kommunikation starten } void loop() { // Daten vom Raspberry Pi lesen if(Serial.available() > 0) { String input = Serial.readStringUntil('\n'); Serial.print("Empfangen: "); Serial.println(input); } // Eigene Daten senden int sensorValue = analogRead(A0); Serial.print("Sensor: "); Serial.println(sensorValue); delay(1000); }
2. Raspberry Pi Python-Code
import serial import time # Serielle Verbindung konfigurieren ser = serial.Serial( port='/dev/ttyS0', # Bei USB: /dev/ttyUSB0 baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) try: while True: # Daten senden ser.write(b"Hello Arduino!\n") # Daten empfangen if ser.in_waiting > 0: line = ser.readline().decode('utf-8').rstrip() print(f"Empfangen: {line}") time.sleep(1) except KeyboardInterrupt: ser.close() print("Verbindung geschlossen")
3. Überprüfung der Verbindung
- Hardware-Check:
- Stromversorgung beider Geräte prüfen
- RX/TX-Kabel vertauscht? (RX→TX und TX→RX)
- GND verbunden?
- Software-Check Raspberry Pi:
# Verfügbare serielle Ports anzeigen ls /dev/tty* # Berechtigungen setzen sudo usermod -a -G dialout $USER sudo reboot
- Test mit minicom:
sudo apt install minicom minicom -b 9600 -o -D /dev/ttyS0
Im minicom sollte die Arduino-Ausgabe sichtbar sein
4. Fehlerbehebung
Problem | Lösung |
---|---|
Keine Daten empfangen |
|
Korrupte Zeichen | Erde verbinden oder Spannungsteiler verwenden |
Permission denied | Benutzer zur dialout-Gruppe hinzufügen |
5. Wichtige Hinweise
- Immer zuerst USB abstecken bevor Verbindungen geändert werden
- Bei direkter GPIO-Verbindung (ohne USB):
# UART auf Raspberry Pi aktivieren sudo raspi-config → Interface Options → Serial Port → No→Yes
- Für USB-Verbindung Arduino IDE Serial Monitor deaktivieren