Pegelwandler 3,3 V auf 5 V: ESP32 und Arduino sicher verbinden
Pegelwandler erklärt: warum ESP32- und Pico-Pins keine 5 V vertragen, VIH/VIL, Spannungsteiler, BSS138 für I2C, 74HCT-Chips und eine Tabelle für Module.
Ein Pegelwandler (Logic Level Converter) ist eine kleine Schaltung, mit der ein 3,3-V-Board (ESP32, Raspberry Pi Pico, ESP8266) sicher mit einem 5-V-Board oder -Modul (Arduino Uno, I2C-LCD, HC-SR04, WS2812B) kommuniziert. Einen 5-V-Ausgang direkt an einen 3,3-V-Pin zu legen, kann den Pin schleichend oder sofort zerstören; in die andere Richtung wird ein 3,3-V-Signal von einem 5-V-Eingang manchmal nicht einmal als "1" erkannt. Wer weiß, wann ein Pegelwandler nötig ist und welcher genügt, beseitigt die rätselhaften Fehler in der Hälfte aller Projekte mit gemischten Spannungen.
In diesem Artikel siehst du zuerst, was die Schwellen VIH und VIL bedeuten und warum die Pins von ESP32 und Pico keine 5 V vertragen. Danach gehen wir drei Lösungen mit Beispielen durch: die Einweg-Wandlung mit einem Spannungsteiler aus zwei Widerständen, den bidirektionalen BSS138-MOSFET-Wandler für I2C und 74HCT-Chips für schnelle Signale wie WS2812B oder SPI. Am Ende findest du eine Tabelle, welche Module direkt mit 3,3 V laufen, und eine Liste häufiger Fehler.

Was sind 3,3-V- und 5-V-Logikpegel?
Ein Digitalpin kennt nur 0 und 1, in der echten Welt kann die Spannung aber jeden Wert zwischen 0 und der Versorgung annehmen. Deshalb nennt jedes Datenblatt vier Schwellen. VIH (Eingang HIGH) ist die niedrigste Spannung, die der Eingang sicher als 1 liest. VIL (Eingang LOW) ist die höchste Spannung, die sicher als 0 gilt. Dazwischen liegt ein undefinierter Bereich, in dem der Chip 0 oder 1 lesen kann. Auf der Ausgangsseite ist VOH die niedrigste Spannung, die der Pin bei HIGH garantiert, und VOL die höchste, die er bei LOW garantiert. Damit zwei Chips zuverlässig kommunizieren, muss VOH des Senders sicher über VIH des Empfängers und VOL des Senders sicher unter VIL des Empfängers liegen. Wie Gatter mit diesen Schwellen entscheiden, zeigt der Artikel Logikgatter, ausprobieren kannst du es im Logikgatter-Werkzeug.
| Chip (Versorgung) | VIL (max.) | VIH (min.) | VOL (max.) | VOH (min.) | Pin höchstens |
|---|---|---|---|---|---|
| ATmega328P, Arduino Uno (5 V) | 1,5 V (0,3 × VCC) | 3,0 V (0,6 × VCC) | 0,9 V | 4,2 V | 5,5 V |
| ESP32 (3,3 V) | 0,83 V (0,25 × VDD) | 2,48 V (0,75 × VDD) | 0,33 V | 2,64 V | 3,6 V |
| RP2040, Raspberry Pi Pico (3,3 V) | 0,8 V | 2,0 V | 0,5 V | Etwa 2,6 V | 3,8 V |
| 74HC-Serie (5 V) | 1,5 V | 3,5 V | 0,1 V | 4,4 V | 5,5 V |
| 74HCT-Serie (5 V) | 0,8 V | 2,0 V | 0,1 V | 4,4 V | 5,5 V |
Aus der Tabelle folgen drei wichtige Punkte. Erstens überschreitet der HIGH-Ausgang eines 5-V-Uno (4,2–5 V) klar die Grenze von 3,6 V beim ESP32 und 3,8 V beim Pico; in dieser Richtung ist eine Wandlung Pflicht. Zweitens schafft der 3,3-V-HIGH-Ausgang des ESP32 meist die VIH-Schwelle des Uno von 3,0 V, garantiert sind laut Datenblatt aber nur 2,64 V; die Verbindung funktioniert also oft, wird mit längeren Leitungen oder belastetem Pin aber knapp. Drittens werten ein mit 5 V versorgter 74HC-Chip, ein I2C-Expander mit 0,7 × VCC-Schwelle wie der PCF8574 oder eine WS2812B-LED nichts unter 3,5 V sicher als HIGH; für sie reicht ein 3,3-V-Signal wirklich nicht. Die 74HCT-Serie hat dagegen eine VIH von 2,0 V und ist deshalb einer der saubersten Wege, 3,3 V auf 5 V umzusetzen.
Warum vertragen die Pins von ESP32 und Pico keine 5 V?
Jeder Eingangspin eines 3,3-V-Chips hat kleine Schutzdioden, die den Pin mit der 3,3-V-Schiene und mit GND verbinden. Sie sollen sehr kurze Impulse wie elektrostatische Entladungen abfangen, keinen Dauerstrom. Legst du 5 V an den Pin, leitet die obere Diode und es fließt Strom aus der 5-V-Quelle in die 3,3-V-Schiene. Ist der Innenwiderstand der Quelle klein, sind das Dutzende Milliampere, die Diode und Umgebung des Pins durch Erhitzen zerstören. Ist der Strom kleiner, stirbt der Pin nicht sofort, der Chip altert aber, und die 3,3-V-Schiene kann sogar so weit angehoben werden, dass sich das Board über den Pin versorgt: Du ziehst das Stromkabel ab, und die LED des ESP32 glimmt weiter. Das Datenblatt des ESP32 nennt als Grenze für die Pins Versorgung + 0,3 V (etwa 3,6 V), das des RP2040 Versorgung + 0,5 V (etwa 3,8 V). "Hab's einmal probiert, ist nicht kaputtgegangen" heißt nicht, dass der Pin 5-V-tolerant ist.
Was brauchst du in welchem Fall?
| Fall | Beispiel | Lösung |
|---|---|---|
| 5-V-Ausgang → 3,3-V-Eingang | Uno TX → ESP32 RX, HC-SR04 ECHO → Pico | Spannungsteiler (langsame Signale) oder 74LVC-Puffer (schnelle Signale) |
| 3,3-V-Ausgang → 5-V-Eingang (VIH um 3 V) | ESP32 TX → Uno RX | Klappt oft direkt; mit 74HCT auf der sicheren Seite |
| 3,3-V-Ausgang → 5-V-Eingang (VIH 3,5 V) | ESP32 → WS2812B, 5-V-74HC-Chip | Ein Puffer wie 74HCT125 / 74AHCT125 |
| Bidirektionale Open-Drain-Leitung | I2C (SDA, SCL), 1-Wire | BSS138-MOSFET-Wandler |
| Bidirektionale schnelle Push-Pull-Leitung | Paralleler Datenbus | 74LVC245 mit Richtungspin oder TXS0108E |
Einweg-Wandlung mit Spannungsteiler (5 V → 3,3 V)
Am einfachsten bringst du einen 5-V-Ausgang mit zwei Widerständen an einen 3,3-V-Eingang. Das Signal kommt über den oberen Widerstand R1, der Mittelpunkt geht an den 3,3-V-Pin, der untere Widerstand R2 an GND. Am Ausgang liegt Vaus = 5 V × R2 / (R1 + R2); ist R2 doppelt so groß wie R1, werden aus 5 V 3,33 V. Ein Teiler arbeitet nur in eine Richtung, von der höheren zur niedrigeren Spannung, und taugt nicht für bidirektionale Leitungen, auf denen die 3,3-V-Seite antworten muss. Auch die Geschwindigkeit ist begrenzt, weil der Ausgangswiderstand des Teilers mit der Pinkapazität einen kleinen RC-Tiefpass bildet und die Flanken abrundet. Werte findest du mit dem Spannungsteiler-Rechner, die ausführliche Erklärung im Artikel zum Spannungsteiler.
| R1 (Signalseite) | R2 (GND-Seite) | Ausgang bei 5 V | Ausgangswiderstand | Geeignet für |
|---|---|---|---|---|
| 1 kΩ | 2 kΩ (zwei 1 kΩ in Reihe) | 3,33 V | 667 Ω | Die meisten Aufgaben, auch schnelle Signale; zieht bei HIGH 1,7 mA |
| 2,2 kΩ | 3,3 kΩ | 3,00 V | 1,3 kΩ | Größte Sicherheitsreserve; UART, HC-SR04 ECHO |
| 10 kΩ | 20 kΩ | 3,33 V | 6,7 kΩ | Wenig Strom; UART bis 115200 Baud und langsame Signale |
| 4,7 kΩ | 10 kΩ | 3,40 V | 3,2 kΩ | Grenzwertig; bei 5,25 V auf der 5-V-Schiene werden es 3,57 V, nicht empfohlen |
Beispiel: UART zwischen Arduino Uno und ESP32
In Projekten, in denen der Uno die Sensoren liest und der ESP32 die Daten per WLAN ins Internet bringt, sprechen beide Boards über UART. Da die TX-Leitung des Uno 5 V liefert, geht sie über einen Teiler aus 1 kΩ + 2 kΩ an den RX-Pin des ESP32. Die 3,3-V-TX-Leitung des ESP32 darf direkt an den RX-Pin des Uno, denn der Uno wertet alles über 3,0 V als HIGH. Damit die USB-Schnittstelle des Uno (D0, D1) für den Computer frei bleibt, nutzt der Uno SoftwareSerial auf D10 und D11; beim ESP32 läuft die zweite Hardware-Schnittstelle Serial2 auf GPIO 16 (RX) und 17 (TX). Die GNDs beider Boards müssen verbunden sein.
1// Arduino Uno: SoftwareSerial ile ESP32'ye veri gönder / send data to the ESP32 with SoftwareSerial
2// Uno D11 (TX, 5 V) -> 1k -> ESP32 GPIO 16 ; GPIO 16 -> 2k -> GND
3// ESP32 GPIO 17 (TX, 3,3 V) -> Uno D10 (RX) doğrudan / directly ; GND <-> GND
4#include <SoftwareSerial.h>
5
6SoftwareSerial link(10, 11); // RX, TX
7
8void setup() {
9 Serial.begin(9600); // bilgisayar / computer
10 link.begin(9600); // ESP32 hattı / ESP32 line
11}
12
13void loop() {
14 int raw = analogRead(A0);
15 link.print(F("A0="));
16 link.println(raw); // ör. / e.g. "A0=512"
17
18 unsigned long start = millis();
19 while (millis() - start < 1000) { // 1 sn cevap bekle / wait 1 s for a reply
20 if (link.available()) {
21 String reply = link.readStringUntil('\n');
22 Serial.print(F("ESP32: "));
23 Serial.println(reply);
24 }
25 }
26}1// ESP32: Serial2 ile Uno'dan gelen satırları oku ve cevap ver / read lines from the Uno on Serial2 and reply
2const int RX2_PIN = 16; // bölücünün orta noktası / divider midpoint
3const int TX2_PIN = 17; // Uno D10'a doğrudan / straight to Uno D10
4
5void setup() {
6 Serial.begin(115200);
7 Serial2.begin(9600, SERIAL_8N1, RX2_PIN, TX2_PIN);
8}
9
10void loop() {
11 if (Serial2.available()) {
12 String line = Serial2.readStringUntil('\n');
13 line.trim();
14 Serial.print("Uno: ");
15 Serial.println(line);
16 Serial2.print("OK "); // 3,3 V çıkış Uno için yeterli / 3.3 V output is enough for the Uno
17 Serial2.println(line.length());
18 }
19}Miss vor dem Hochladen den Mittelpunkt des Teilers mit dem Multimeter: Läuft der Uno und sendet nichts, solltest du etwa 3,3 V sehen, weil eine UART-Leitung im Ruhezustand HIGH ist. Erscheint im seriellen Monitor des Uno jede Sekunde eine Zeile wie "ESP32: OK 6", funktioniert die Verbindung in beide Richtungen. Bei 9600 Baud dauert ein Bit 104 µs, die Verzögerung durch den 1-kΩ-+-2-kΩ-Teiler liegt dagegen im Nanosekundenbereich; die Geschwindigkeit ist also kein Thema.
Beispiel: HC-SR04 am Raspberry Pi Pico

Der HC-SR04 arbeitet nur mit 5 V zuverlässig. Versorgst du den Pico per USB, schließt du VCC des Sensors an VBUS des Pico (Pin 40) an. Der TRIG-Eingang erkennt den 3,3-V-Impuls des Pico problemlos und geht direkt an GP15. ECHO liefert dagegen einen 5-V-Impuls; zwischen ECHO und GP14 kommt ein 1-kΩ-Widerstand, zwischen GP14 und GND ein 2-kΩ-Widerstand. Der Code misst die Länge des ECHO-Impulses mit time_pulse_us in Mikrosekunden und rechnet sie über die Schallgeschwindigkeit in Luft (etwa 343 m/s) in eine Entfernung um.
1# Raspberry Pi Pico + HC-SR04 (ECHO bölücüyle) / Raspberry Pi Pico + HC-SR04 (ECHO through a divider)
2# VCC -> VBUS (pin 40), GND -> GND, TRIG -> GP15, ECHO -> 1k -> GP14 -> 2k -> GND
3from machine import Pin, time_pulse_us
4import time
5
6trig = Pin(15, Pin.OUT)
7echo = Pin(14, Pin.IN)
8
9
10def distance_cm():
11 trig.value(0)
12 time.sleep_us(2)
13 trig.value(1) # 10 µs tetik darbesi / 10 µs trigger pulse
14 time.sleep_us(10)
15 trig.value(0)
16 t = time_pulse_us(echo, 1, 30000) # en fazla 30 ms bekle / wait at most 30 ms
17 if t < 0:
18 return None # yankı yok / no echo
19 return t * 0.0343 / 2 # gidiş-dönüş / round trip
20
21
22while True:
23 d = distance_cm()
24 if d is None:
25 print("Olcum yok / No echo")
26 else:
27 print("Mesafe / Distance: {:.1f} cm".format(d))
28 time.sleep(0.5)Der bidirektionale BSS138-Pegelwandler
Die meisten kleinen Platinen, die als "4-Kanal-Pegelwandler" verkauft werden, haben pro Kanal einen N-Kanal-MOSFET BSS138 und zwei 10-kΩ-Pull-up-Widerstände. Die Schaltung ist denkbar einfach: Das Gate des MOSFET liegt an 3,3 V (LV), Source geht an die Niederspannungsseite, Drain an die Hochspannungsseite. Jede Seite zieht die Leitung über ihren eigenen Pull-up auf ihre Versorgung. Dieser Aufbau ist für Open-Drain-Leitungen wie I2C gedacht, die die Leitung nur auf 0 ziehen und den Pegel 1 den Pull-ups überlassen, und er arbeitet von selbst in beide Richtungen; einen Richtungspin, der angibt, welche Seite spricht, gibt es nicht.
- Beide Seiten im Ruhezustand: Gate und Source liegen beide an 3,3 V, zwischen ihnen ist keine Spannung, der MOSFET sperrt. Jede Seite wird über ihren eigenen Widerstand auf HIGH gezogen: LV auf 3,3 V, HV auf 5 V.
- Die 3,3-V-Seite zieht auf LOW: Source fällt auf 0 V; da das Gate auf 3,3 V bleibt, beträgt die Gate-Source-Spannung 3,3 V und der MOSFET leitet. Die HV-Seite wird über den MOSFET auf LOW gezogen.
- Die 5-V-Seite zieht auf LOW: Die Body-Diode im MOSFET leitet und zieht Source auf etwa 0,7 V. Erreicht die Gate-Source-Spannung etwa 2,6 V, schaltet der MOSFET voll durch, und auch die LV-Seite geht ganz auf LOW.
| Modulpin | Anschließen an | Hinweis |
|---|---|---|
| LV | 3V3-Pin des 3,3-V-Boards | Versorgung der Niederspannungsseite und Gate-Spannung der MOSFETs |
| HV | 5-V-Quelle (Uno 5V oder ESP32 VIN) | Pull-up-Versorgung der Hochspannungsseite |
| GND (zwei) | GND beider Boards | Gemeinsame Masse ist Pflicht |
| LV1–LV4 | Pins von ESP32 oder Pico | Signale der 3,3-V-Seite |
| HV1–HV4 | Pins des 5-V-Moduls | Gehört jeweils zum LV-Pin mit derselben Nummer |
Beispiel: ESP32 an einem 5-V-I2C-LCD
16x2-Zeichen-LCDs liefern ohne 5-V-Versorgung zu wenig Kontrast, und das PCF8574-I2C-Modul auf ihrer Rückseite zieht SDA und SCL mit 4,7-kΩ-Widerständen auf 5 V. Dazu kommt, dass der PCF8574 eine VIH-Schwelle von 0,7 × VCC hat, also 3,5 V bei 5 V; die 3,3 V des ESP32 liegen darunter. Ein BSS138-Wandler zwischen I2C-LCD und ESP32 schützt deshalb die Pins und macht die Kommunikation zuverlässig. So wird verdrahtet: 3V3 des ESP32 an LV, VIN (5 V vom USB) an HV und an VCC des LCD, alle GNDs verbunden; GPIO 21 an LV1, HV1 an SDA des LCD; GPIO 22 an LV2, HV2 an SCL des LCD. Findet der Scanner-Code unten das LCD (meist unter 0x27 oder 0x3F), arbeitet der Wandler richtig.
1// ESP32 I2C tarayıcı: BSS138 dönüştürücü üzerinden 5 V'luk cihazları bul
2// ESP32 I2C scanner: find 5 V devices through a BSS138 converter
3// GPIO 21 -> LV1 / HV1 -> SDA ; GPIO 22 -> LV2 / HV2 -> SCL ; 3V3 -> LV ; VIN (5 V) -> HV
4#include <Wire.h>
5
6const int SDA_PIN = 21;
7const int SCL_PIN = 22;
8
9void setup() {
10 Serial.begin(115200);
11 Wire.begin(SDA_PIN, SCL_PIN);
12 Wire.setClock(100000); // 100 kHz, BSS138 için rahat hız / comfortable speed for the BSS138
13}
14
15void loop() {
16 int found = 0;
17 for (byte addr = 1; addr < 127; addr++) {
18 Wire.beginTransmission(addr);
19 if (Wire.endTransmission() == 0) { // 0 = ACK, cihaz var / device present
20 Serial.printf("Cihaz / Device: 0x%02X\n", addr);
21 found++;
22 }
23 }
24 if (found == 0) Serial.println("Cihaz yok / No device found");
25 Serial.println("---");
26 delay(3000);
27}74HCT-Chips: schnelle Einweg-Signale
Sind Teiler und BSS138 zu langsam, ist ein Pufferbaustein die professionelle Lösung. Die 74HCT-Serie wird mit 5 V versorgt, hat aber TTL-kompatible Eingangsschwellen (VIH = 2,0 V); sie erkennt das 3,3-V-Signal von ESP32 oder Pico also sicher als HIGH und gibt ein volles 5-V-Signal mit steilen Flanken aus. Am häufigsten wird das für die Datenleitung von WS2812B-Streifen genutzt: Der ESP32-Pin geht an den Eingang eines 74AHCT125, dessen Ausgang über 330 Ω an DIN des Streifens; der OE-Pin (Freigabe) des 74AHCT125 liegt an GND. Für die Gegenrichtung, also ein schnelles 5-V-Signal auf 3,3 V, nimmt man einen mit 3,3 V versorgten 74LVC125 oder 74LVC245; deren Eingänge vertragen unabhängig von der eigenen Versorgung bis 5,5 V.
| Lösung | Versorgung | Richtung | Kanäle | Typische Aufgabe |
|---|---|---|---|---|
| 74AHCT125 / 74HCT125 | 5 V | 3,3 V → 5 V | 4 | WS2812B-Daten, SPI, MAX7219 |
| 74HCT245 | 5 V | 3,3 V → 5 V | 8 | Paralleler Datenbus, viele Ausgänge |
| 74LVC125 / 74LVC245 | 3,3 V | 5 V → 3,3 V | 4 / 8 | Schnelle 5-V-Sensorausgänge, SD-Kartenmodule |
| BSS138-Modul | 3,3 V und 5 V | Bidirektional | 4 | I2C, 1-Wire, langsamer UART |
| Spannungsteiler | Keine | 5 V → 3,3 V | 1 | UART RX, HC-SR04 ECHO, Taster |
Welche Module laufen direkt mit 3,3 V?
Die folgende Tabelle fasst zusammen, ob die in ESP32- und Pico-Projekten häufigsten Module ohne Wandler an ein 3,3-V-Board dürfen. Module mit "Ja" kannst du über den 3V3-Pin versorgen und ihre Signalpins direkt anschließen. Unter demselben Namen gibt es aber verschiedene Versionen; schau nach, ob auf der Platine ein Regler oder Pegelwandler sitzt, und miss im Zweifel bei eingeschalteter Versorgung die Spannung am Signalpin.
| Modul | Direkt an 3,3 V | Hinweis |
|---|---|---|
| BME280-/BMP280-Modul | Ja | Der Chip selbst verträgt höchstens 3,6 V; über 3V3 versorgen |
| DHT11 / DHT22 | Ja | 3,3–5,5 V; bei 3,3 V Kabel kurz halten |
| DS18B20 | Ja | 3,0–5,5 V; 4,7-kΩ-Pull-up an 3,3 V |
| 0,96"-OLED (SSD1306) | Ja | Das Modul hat einen Regler; mit 3V3 bleibt auch I2C bei 3,3 V |
| MPU6050 (GY-521) | Ja | Die Pull-ups des Moduls hängen an VCC; über 3V3 versorgen |
| RC522-RFID | Ja, nur 3,3 V | Mit 5 V versorgt geht das Modul kaputt |
| nRF24L01 | Ja, nur 3,3 V | 10–100 µF an die Versorgung |
| HC-SR04 | Nein | Mit 5 V versorgen, ECHO herunterteilen; die 3,3-V-Version heißt HC-SR04P |
| I2C-16x2-LCD (PCF8574) | Teilweise | Das LCD braucht 5 V; für SDA und SCL einen BSS138 verwenden |
| WS2812B-LED-Streifen | Teilweise | Versorgung mit 5 V; 3,3-V-Daten sind grenzwertig, 74AHCT125 empfohlen |
| 5-V-Relaismodul | Teilweise | Bei Low-aktiven Modulen lässt ein 3,3-V-HIGH das Relais evtl. nicht ganz los; Modul mit 3,3-V-Ansteuerung wählen |
| SG90-Servo | Signal ja | Motor mit 5 V versorgen; ein 3,3-V-PWM-Signal reicht meist |
Häufige Fehler und ihre Lösungen
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| Der BSS138-Wandler funktioniert gar nicht | LV und HV nicht angeschlossen oder vertauscht | 3,3 V an LV, 5 V an HV; GNDs verbinden |
| Die LED des ESP32 glimmt ohne USB | Ein 5-V-Signal versorgt das Board über einen Pin | Teiler oder Wandler in diese Leitung |
| Signal nach dem Teiler verzerrt oder abgerundet | Widerstände zu groß für eine schnelle Leitung | Auf 1 kΩ + 2 kΩ gehen oder 74LVC-Puffer nutzen |
| Die erste LED eines WS2812B-Streifens flackert | 3,3-V-Daten liegen unter der VIH-Schwelle von 3,5 V | Mit 74AHCT125 auf 5 V wandeln, 330 Ω in die Datenleitung |
| I2C läuft mal, hängt mal | Pull-ups an 5 V und hohe VIH-Schwelle am Gerät | BSS138 verwenden, Takt auf 100 kHz senken |
| Relais fällt nie ab | Low-aktives Relaismodul sieht 3,3 V nicht als HIGH | Modul mit 3,3-V-Ansteuerung oder Transistortreiber verwenden |
| UART-Zeichen über den Wandler verstümmelt | Keine gemeinsame Masse | GNDs beider Boards verbinden |
Pegelwandlung klingt technisch, lässt sich aber auf drei Regeln herunterbrechen: Eine Leitung von 5 V nach 3,3 V immer absichern, bei einer Leitung von 3,3 V nach 5 V die VIH-Schwelle des Empfängers prüfen und auf bidirektionalen Leitungen wie I2C einen BSS138 einsetzen. Mit diesen Regeln kombinierst du Arduino, ESP32 und Pico problemlos im selben Projekt. In der BlueGrays-App wird jede Verbindung der ESP32- und Raspberry-Pi-Pico-Projekte mit Pins passend zum Logikpegel des Boards und einem Schritt-für-Schritt-Schaltplan erklärt.
Häufige Fragen
Ist der ESP32 5-V-tolerant?
Nein. Das Datenblatt des ESP32 erlaubt an den GPIO-Pins höchstens Versorgung + 0,3 V, also etwa 3,6 V. Bei 5 V leiten die Schutzdioden des Pins, Strom fließt in die 3,3-V-Schiene, und der Pin kann mit der Zeit oder sofort ausfallen. Dass es eine Weile zu funktionieren scheint, macht es nicht sicher.
Kann ich Arduino und ESP32 ohne Pegelwandler verbinden?
Teilweise. 3,3-V-Signale vom ESP32 zum Arduino überschreiten meist die 3,0-V-Schwelle des Uno und dürfen direkt angeschlossen werden. 5-V-Signale vom Arduino zum ESP32 müssen dagegen immer über einen Spannungsteiler oder Pegelwandler laufen. In jedem Fall müssen die GNDs beider Boards verbunden sein.
Welchen Pegelwandler nehme ich für I2C?
Da I2C-Leitungen Open-Drain sind, ist ein bidirektionaler BSS138-MOSFET-Wandler die beste Wahl; er läuft bei 100 und 400 kHz problemlos. Für I2C entwickelte Chips wie der PCA9306 erfüllen denselben Zweck. Ein Spannungsteiler taugt für I2C nicht, weil die Leitung Daten in beide Richtungen überträgt.
Funktioniert ein WS2812B mit den 3,3-V-Daten des ESP32?
Oft ja, garantiert ist es aber nicht. Ein mit 5 V versorgter WS2812B erwartet am Dateneingang mindestens 3,5 V, und 3,3 V liegen darunter; besonders bei längeren Kabeln oder einer Versorgung über 5 V kann die erste LED flackern. Die zuverlässige Lösung ist ein Puffer wie 74AHCT125 oder 74HCT125 in der Datenleitung.
Spannungsteiler oder Pegelwandlermodul?
Musst du ein langsames Einweg-Signal von 5 V auf 3,3 V bringen, etwa UART RX oder HC-SR04 ECHO, reichen zwei Widerstände, und das ist die günstigste Lösung. Ist die Leitung bidirektional (I2C) oder müssen 3,3 V auf 5 V angehoben werden, hilft ein Teiler nicht; dann nimmst du ein BSS138-Modul oder einen 74HCT-Puffer. Für sehr schnelle Signale sind Pufferbausteine die richtige Wahl.
Was bedeuten HV und LV auf einem Pegelwandler?
HV (High Voltage) ist die Hochspannungsseite und kommt meist an 5 V, LV (Low Voltage) ist die Niederspannungsseite und kommt an 3,3 V. Die Pins HV1–HV4 gehen an die Signale des 5-V-Geräts, die gleich nummerierten LV1–LV4 an die Pins des 3,3-V-Boards. Die GNDs beider Seiten werden an den GND-Pins des Moduls verbunden.
Projekte, die du danach bauen kannst
Alle Projekte ansehen
LED Blinken mit ESP32
Lehrt die grundlegende Verwendung von GPIO-Ausgängen mit ESP32. Wir erreichen einen Blinkeffekt, indem wir eine LED über einen digitalen Pin ein- und ausschalten. ESP32-Version des klassischen Blink-Projekts auf Arduino UNO; die grundlegenden Blink-Befehle in der Arduino-Umgebung bleiben gleich, aber die Pinbelegung und die GPIO-Pegel von 3,3 V des ESP32 unterscheiden sich von denen des Arduino UNO.

ESP32 LED-Steuerung mit Drucktaste (Push)
Die LED leuchtet auf, wenn die Taste gedrückt wird und geht aus, wenn sie losgelassen wird. Zeigt, wie der digitale Eingangspin des ESP32 und der interne Pull-up-Widerstand verwendet werden. Dank des INPUT_PULLUP-Modus ist kein externer Widerstand erforderlich.

Messung der Lichtintensität mit dem ESP32-LDR-Modul
Echtzeit-Anzeige des ADC-Rohwerts des LDR-Moduls und des anhand von Dunkel- und Hellreferenzwerten berechneten relativen Lichtwerts in Prozent im Serial Monitor. Dieser Prozentwert ist keine Lux-Messung. Vermittelt die Kalibrierungslogik des Moduls. Sollte idealerweise vor Projekt 10 durchgeführt werden, da es zur Festlegung des Schwellenwerts dient.

Raspberry Pi Pico Onboard-LED Blinken (Pico und Pico W)
Das Eröffnungsprojekt der Raspberry Pi Pico-Serie! Wir bringen die grüne interne LED zum Blinken, um zu überprüfen, ob die Platine funktioniert — ein klassisches "Hello World"-Erstexperiment. Keine externen Komponenten, nur Pico und USB-Kabel. Der Code ist in MicroPython geschrieben (die offiziell von der Raspberry Pi Foundation unterstützte Sprache). Lerne die machine.Pin-Klasse, Pin.OUT-Modus, led.on()/off()-Methoden und time.sleep() in Thonny IDE. Verfolge jede Umsch

ESP32 I2C-LCD-Display (16×2)
In diesem Projekt zeigen wir Text an, indem wir ein 16x2-Zeichen-LCD-Display über das I2C-Protokoll an den ESP32 anschließen. Dank I2C können wir das Display mit nur zwei Datenpins (SDA und SCL) steuern; die Verschwendung von 6+ Pins bei einer klassischen parallelen Verbindung entfällt. Der Code schreibt in die erste Zeile eine feste Meldung und in die zweite Zeile einen Zähler, der sich jede Sekunde erhöht. Außerdem lassen wir zu Beginn den I2C-Scanner laufen und geben die Adresse des Displays

ESP32 HC-SR04 Ultraschall-Entfernungsmesser
Der Ultraschallsensor HC-SR04 berechnet die Entfernung, indem er die Zeit misst, die die von ihm ausgesendete Schallwelle benötigt, um auf ein Objekt zu treffen und zurückzukehren (Time of Flight). In diesem Projekt senden wir mit dem ESP32 einen 10-Mikrosekunden-Impuls an den TRIG-Pin und lesen die vom ECHO-Pin kommende Echozeit mit pulseIn(). Die berechnete Entfernung geben wir in cm auf einem 16x2-I2C-LCD aus. Da der HC-SR04 mit 5 V betrieben wird, ist ein Spannungsteiler am ECHO-Pin zw

Steuerung des ESP32 WS2812B NeoPixel-Streifens
WS2812B (NeoPixel) adressierbare LEDs sind intelligente RGB-LEDs, die über einen einzigen Datenpin in Reihe geschaltet gesteuert werden können. In diesem Projekt werden wir einen WS2812B-Streifen mit 8 LEDs mithilfe der Adafruit_NeoPixel-Bibliothek steuern und eine fließende Regenbogenanimation erzeugen. Obwohl der 3,3-V-Logikpegel des ESP32 bei den meisten WS2812B-Bausteinen problemlos funktioniert, zeigen wir im Falle von Instabilität die Lösung mit einem 470-Ω-Reihenwiderstand und einem 1000-

Raspberry Pi Pico: Externe LED zum Leuchten bringen (Steckbrett)
Der nächste Schritt nach der integrierten LED des Pico: Eine externe LED an das Breadboard anschließen und über den GP14-Pin steuern. In diesem Projekt lernst du, wie du einen beliebigen universellen GPIO-Pin des Pico als Ausgang nutzen kannst, welche Polarität die LED hat (langes Bein = Anode/+, kurzes Bein = Kathode/–) und warum ein Strombegrenzungswiderstand (220 Ω) erforderlich ist. Wenn du den Widerstand weglässt, fließt zu viel Strom durch die LED und sie kann durchbrennen. Die Schaltung i
Weitere Artikel
BlueGrays-App
Diese Schaltung Schritt für Schritt auf dem Handy nachbauen
Schaltplan, Code und Teileliste auf einem Bildschirm. Über 200 Arduino-, ESP32- und Pico-Projekte zum Nachbauen.
Mit dem Handy scannen
Richte die Kamera auf den Code, dann öffnet sich der App-Store deines Handys.
oder im Store öffnen

