Mit Logik-Level-Konverter können auch 5V Module sicher am Raspi oder ESP32 laufen

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:

PinFunktion
HVHigh-Voltage-Seite (5V)
LVLow-Voltage-Seite (3,3V)
GNDGemeinsame Masse
TX Datenleitung sendend für I2C, UART oder SPI
Ergänzt mit i für Eingang oder o für Ausgang
RXDatenleitung 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

M1M2ModusBeschreibung
00GPIOKlassischer Modus: TRIG & ECHO (wie HC-SR04)
10I²CAdressierbar über I²C-Bus, liefert Distanzdaten
01UARTSerielle Ausgabe der Messwerte
111-WireDatenü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)


, ,
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzerkomfort bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst und hilft uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.