Lernen Sie UART und I2C Protokolle mit praktischen ESP32 Beispielen und interaktiven Visualisierungen.
Universal Asynchronous Receiver-Transmitter
Inter-Integrated Circuit
UART Sensor
I2C Display
Universal Asynchronous Receiver-Transmitter - Die Grundlage der seriellen Kommunikation
UART ist ein Hardware-Kommunikationsprotokoll, das asynchrone serielle Kommunikation zwischen Geräten ermöglicht. Es verwendet nur zwei Leitungen: TX (Transmit) und RX (Receive).
// UART Konfiguration am ESP32
void setup() {
Serial.begin(115200); // Baudrate: 115200 bps
Serial.println("UART initialisiert");
}
void loop() {
if (Serial.available()) {
String data = Serial.readString();
Serial.println("Empfangen: " + data);
}
}
Inter-Integrated Circuit - Effiziente Multi-Device Kommunikation
I2C ist ein synchrones, serielles Kommunikationsprotokoll, das mehrere Geräte über nur zwei Leitungen verbinden kann: SDA (Serial Data) und SCL (Serial Clock).
// I2C Konfiguration am ESP32
#include <Wire.h>
void setup() {
Wire.begin(); // I2C als Master initialisieren
Serial.begin(115200);
}
void readSensor(uint8_t address) {
Wire.beginTransmission(address);
Wire.write(0x00); // Register-Adresse
Wire.endTransmission();
Wire.requestFrom(address, 2); // 2 Bytes anfordern
if (Wire.available() >= 2) {
uint16_t data = Wire.read() << 8 | Wire.read();
Serial.println("Sensor-Wert: " + String(data));
}
}
SDA fällt bei HIGH SCL
7-Bit Adresse + R/W Bit
Slave bestätigt Empfang
8-Bit Datenpakete
SDA steigt bei HIGH SCL
Entscheidungshilfe für die richtige Protokollwahl
| Eigenschaft | UART | I2C |
|---|---|---|
| Leitungen | 2 (TX, RX) | 2 (SDA, SCL) |
| Geräte | 2 (Punkt-zu-Punkt) | Bis zu 127 |
| Synchronisation | Asynchron | Synchron |
| Geschwindigkeit | Bis zu 5 Mbps | Bis zu 5 MHz |
| Komplexität | Einfach | Mittel |
GPS-Module senden kontinuierlich NMEA-Daten über UART an den ESP32.
Serial2.begin(9600, SERIAL_8N1, 16, 17);
String gpsData = Serial2.readString();
OLED-Displays werden über I2C angesteuert und können Text und Grafiken anzeigen.
Wire.begin(21, 22);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Bluetooth-Module ermöglichen drahtlose Kommunikation über UART-Schnittstelle.
Serial2.begin(38400, SERIAL_8N1, 16, 17);
Serial2.println("AT+NAME=ESP32_Device");