Ein Logik-Level-Konverter ist ein essenzielles Bauteil, wenn es darum geht, die 3,3V-Welt der zB. Raspberry Pi oder der ESP32 mit 5V-Modulen wie Ultraschallsensor, Temperatur- und Feuchtigkeitssensor oder Relaismodule zu verbinden.

Warum brauchen wir einen Logik-Level-Konverter?
Wenn du mit Mikrocontrollern arbeitest, stößt du früher oder später auf ein Problem: Spannungskompatibilität.
Während manche Arduino-Boards mit 5V-Logik arbeiten, verkraftet der Raspberry Pi oder der ESP32 lediglich 3,3V. Das führt dazu, dass einige Sensoren und Module nicht direkt miteinander kommunizieren können – ohne eine sichere Spannungsübersetzung kann es sogar zu Schäden kommen!
Hier kommt der Logik-Level-Konverter ins Spiel – er ermöglicht die bidirektionale Kommunikation zwischen diesen Geräten und sorgt dafür, dass Spannungen korrekt angepasst werden.
Wie funktioniert ein Logik-Level-Konverter?
Ein Logik-Level-Konverter besteht meist aus einem MOSFET-Schaltung oder speziellen ICs, die Signale sicher zwischen 3,3V und 5V konvertieren. Die typischen Anschlüsse sind:
Pin | Funktion |
---|---|
HV | High-Voltage-Seite (5V) |
LV | Low-Voltage-Seite (3,3V) |
GND | Gemeinsame Masse |
TX | Datenleitung sendend für I2C, UART oder SPI Ergänzt mit i für Eingang oder o für Ausgang |
RX | Datenleitung empfangend Ergänzt mit i für Eingang oder o für Ausgang |
Er kann sowohl Signale von 5V auf 3,3V reduzieren als auch 3,3V-Signale auf 5V anheben, je nach Bedarf.
Verdrahtung eines Logik-Level-Konverters mit ESP32 und Arduino-Modulen
Um ein ESP32-Board mit einem 5V-Sensor oder Aktuator zu verbinden, braucht es eine sichere Spannungsanpassung. Ein Beispiel wäre die Verwendung eines TXS0108E oder eines 2-Kanal-Logik-Level-Konverters:
Beispiel: HC-SR04 Ultraschallsensor mit ESP32
Für eine korrekte Verbindung benötigen wir einen Spannungswandler für den Echo-Pin, um Schäden am ESP32 zu vermeiden.
Empfohlene Verdrahtung:
- HC-SR04 VCC → ESP32 5V
- HC-SR04 GND → ESP32 GND
- HC-SR04 TRIG → ESP32 GPIO 25 (direkt)
- HC-SR04 ECHO → HV TX (5V-Seite des Konverters) – LV RX → ESP32 GPIO 26 (3,3V-Seite des Konverters)

Dadurch wird das 5V-Signal des Echo-Pins sicher auf 3,3V reduziert, bevor es den ESP32 erreicht. Ohne diese Spannungsanpassung kann es zu langfristigen Schäden an den GPIO-Pins des ESP32 kommen.
Falls kein Konverter verfügbar ist, kann auch ein Spannungsteiler mit zwei Widerständen (z. B. 1kΩ und 2kΩ) verwendet werden.

Code-Beispiel für ESP32 mit Ultraschallsensor
#define TRIG_PIN 25
#define ECHO_PIN 26
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Entfernung: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
Fazit
Dank Logik-Level-Konvertern können viele 5V-Arduino-Module problemlos mit ESP32 verwendet werden. Sei es bei I2C-Kommunikation, UART-Verbindungen oder SPI-Schnittstellen. Wer gerne experimentiert, sollte sich einige dieser kleinen Helfer zulegen, um sichere Spannungsanpassungen zu gewährleisten.
Ultraschall Modul HC-SR04p mit 3,3 Volt
Es gibt auch eine Alternative zum HC-SR04 mit 5 Volt. Wer ohne Logik-Level-Konverter Ultraschallmessungen durchführen möchte, der sollte nach dem HC-SR04p mit RCWL-9610 IC suchen.
Dieser Ultraschallsensor ist eine verbesserte Version des Standard-Ultraschallsensors.
Der Hauptunterschied besteht in der Integration des RCWL-9610 ICs, der es dem Sensor ermöglicht, sowohl mit 3,3-V- als auch mit 5-V-Logikpegeln zu arbeiten. Dadurch eignet er sich besonders für Mikrocontroller wie den ESP32 oder dem alten ESP8266, die mit 3,3 V Logik arbeiten, ohne dass ein separater Logikpegelwandler erforderlich ist.

M1 & M2 Brückenfunktion (Schnittstellenauswahl) beim HC-SR04p
M1 | M2 | Modus | Beschreibung |
---|---|---|---|
0 | 0 | GPIO | Klassischer Modus: TRIG & ECHO (wie HC-SR04) |
1 | 0 | I²C | Adressierbar über I²C-Bus, liefert Distanzdaten |
0 | 1 | UART | Serielle Ausgabe der Messwerte |
1 | 1 | 1-Wire | Datenübertragung über eine Leitung |
„0“ = nicht gebrückt (offen)
„1“ = gebrückt (Lötpad verbunden)
Quellcode für GPIO
// Für HC-sr04p mit
#include <AlashUltrasonic.h>
// GPIO pins
const uint8_t TRIGGER_PIN = A5;
const uint8_t ECHO_PIN = A4;
AlashUltrasonic sensorGPIO(TRIGGER_PIN, ECHO_PIN);
void setup() {
Serial.begin(9600);
sensorGPIO.begin();
}
void loop() {
float distance = sensorGPIO.getDistance();
Serial.print("Distance (GPIO): ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}
Weitere für I²C, UART und 1-Wire auf Github
Anmerkung: I2C hat bei mir nur mit 5 Volt Stromversorgung funktioniert (I2C_ADDRESS = 0x57)