3,3V ve 5V Seviye Dönüştürme
Arduino Uno 5 V, ESP32 ve ESP8266 ise 3,3 V lojik seviyeyle çalışır. Bu iki dünyayı birleştirmek, ESP kartlarıyla çalışırken karşılaşacağınız en somut donanım problemidir.
Yanlış yapıldığında sonuç genellikle sessizdir: kart bir süre çalışır, sonra pin ölür veya rastgele davranmaya başlar.
Sorun Nedir?
Bir mikrodenetleyicinin giriş pinleri, besleme geriliminin üzerinde bir gerilime dayanacak şekilde tasarlanmaz.
| Kart | Lojik seviye | Girişe uygulanabilecek maksimum |
|---|---|---|
| Arduino Uno / Nano / Mega | 5 V | ~5,5 V |
| ESP8266 | 3,3 V | ~3,6 V |
| ESP32 | 3,3 V | ~3,6 V |
| Raspberry Pi | 3,3 V | ~3,3 V |
3,3 V’luk bir pine 5 V uygulamak, giriş koruma diyodundan akım geçmesine yol açar. Bazen hemen bir şey olmaz — ama pin yavaşça bozulur ve arıza günler sonra ortaya çıkar.
İki Yön, İki Farklı Durum
Yön çok önemlidir ve ikisi aynı çözümü gerektirmez.
5 V → 3,3 V (indirme) — TEHLİKELİ
5 V’luk bir cihazın çıkışını 3,3 V’luk bir karta bağlamak mutlaka dönüştürme gerektirir.
Örnek: HC-SR04’ün Echo pini (5 V) → ESP32 girişi.
3,3 V → 5 V (yükseltme) — GENELLİKLE GEREKMEZ
5 V’luk bir kartın girişi, HIGH kabul etmek için genellikle 3 V’un üzerini yeterli görür. 3,3 V bu eşiğin üzerindedir.
Yani ESP32’nin çıkışını Arduino’nun girişine doğrudan bağlamak çoğunlukla sorunsuz çalışır.
Ama her zaman değil. Bazı 5 V’luk entegreler HIGH eşiğini besleme geriliminin %70’i olarak alır (5 × 0,7 = 3,5 V). Bu durumda 3,3 V yetmez ve sinyal güvenilmez olur. Böyle bir durumda yükseltme gerekir.
Yöntem 1: Gerilim Bölücü (Sadece indirme)
En basit ve en ucuz çözümdür. İki dirençle 5 V’u 3,3 V’a düşürür.
5V sinyal ──[ R1 = 1 kΩ ]──┬── 3,3V karta
│
[ R2 = 2 kΩ ]
│
GNDV_cikis = 5 V × R2 / (R1 + R2) = 5 × 2 / 3 = 3,33 V ✔Yaygın direnç çiftleri:
| R1 | R2 | Çıkış |
|---|---|---|
| 1 kΩ | 2 kΩ | 3,33 V |
| 1 kΩ | 2,2 kΩ | 3,44 V |
| 10 kΩ | 20 kΩ | 3,33 V |
| 2,2 kΩ | 3,3 kΩ | 3,00 V |
Avantajı: Ucuz, iki bileşen, hemen kurulur.
Sınırları:
- Tek yönlüdür. Yalnızca 5 V → 3,3 V çalışır.
- Yavaştır. Dirençler ile kablo kapasitesi bir RC filtresi oluşturur. Yaklaşık 100 kHz üzerindeki sinyaller bozulur. I2C’nin 400 kHz hızlı modunda veya SPI’da kullanmayın.
- Sürekli akım çeker. Küçük ama pille çalışan projelerde önemli olabilir.
Ultrasonik sensör Echo hattı, buton, PIR çıkışı gibi yavaş sinyaller için fazlasıyla yeterlidir.
Yöntem 2: MOSFET ile Çift Yönlü Dönüştürücü
I2C gibi çift yönlü hatlar için standart çözümdür. Tek bir N-kanal MOSFET (BSS138) ve iki pull-up direnci kullanır.
3,3V ──[ 10 kΩ ]──┬── 3,3V taraf (SDA)
│
Gate ← 3,3V
│
[ BSS138 ]
│
5V ──[ 10 kΩ ]────┴── 5V taraf (SDA)Bağlantı:
- MOSFET Gate → 3,3 V beslemeye
- Source → 3,3 V tarafındaki sinyal hattına
- Drain → 5 V tarafındaki sinyal hattına
- Her iki hatta kendi besleme gerilimine 10 kΩ pull-up
Nasıl çalışır? 3,3 V tarafı LOW olduğunda MOSFET iletime geçer ve 5 V tarafını da aşağı çeker. 5 V tarafı LOW olduğunda MOSFET’in gövde diyodu üzerinden 3,3 V tarafı da aşağı çekilir. İki taraf da HIGH olduğunda pull-up dirençleri hatları kendi seviyelerine çeker.
Bu devre I2C’nin açık kolektör yapısıyla mükemmel uyumludur.
Yöntem 3: Hazır Seviye Dönüştürücü Modülü
Pratikte en çok tercih edilen çözümdür ve çok ucuzdur.
4 kanallı çift yönlü modül (BSS138 tabanlı)
Yukarıdaki MOSFET devresinin dört kanallı hazır halidir.
| Pin | Bağlantı |
|---|---|
| LV | 3,3 V besleme |
| HV | 5 V besleme |
| GND | Ortak toprak (iki taraf da) |
| LV1–LV4 | 3,3 V taraf sinyalleri |
| HV1–HV4 | 5 V taraf sinyalleri |
Kullanım: I2C, tek yönlü sinyaller, düşük hızlı SPI. En yaygın ve en esnek modüldür.
Sınırı: MOSFET tabanlı olduğu için çok yüksek hızlarda (>2 MHz) zorlanır.
TXS0108E (8 kanal, otomatik yön)
Sekiz kanallı, yön algılamalı bir entegredir. Daha hızlıdır ama tek yönlü hatlarda bazen “yön kararsızlığı” yaşayabilir.
74HCT125 / 74AHCT125 (tek yönlü tampon)
3,3 V → 5 V yükseltme için en güvenilir çözümdür. HCT serisinin HIGH eşiği düşüktür (~2 V), bu yüzden 3,3 V sinyali kesin olarak HIGH kabul eder.
WS2812 LED şeritlerini ESP32 ile sürerken tavsiye edilen çözüm budur.
Hangi Durumda Ne Kullanmalı?
| Durum | Çözüm |
|---|---|
| HC-SR04 Echo → ESP32 | Gerilim bölücü (1 kΩ + 2 kΩ) |
| 5 V I2C cihaz ↔ ESP32 | Çift yönlü modül (BSS138) |
| 5 V buton/switch → ESP32 | Gerilim bölücü, veya butonu GND’ye bağlayıp INPUT_PULLUP |
| ESP32 → 5 V röle kartı girişi | Genellikle doğrudan çalışır |
| ESP32 → WS2812 LED şerit | 74AHCT125 tampon |
| ESP32 → 5 V motor sürücü (L298N) | Genellikle doğrudan çalışır |
| 5 V UART cihaz ↔ ESP32 | RX hattına gerilim bölücü, TX doğrudan |
| Yüksek hızlı SPI | Özel seviye dönüştürücü entegre |
En İyi Çözüm: Sorunu Baştan Yaratmamak
Çoğu sensör hem 3,3 V hem 5 V ile çalışır. Sensörü 3,3 V’tan beslerseniz çıkışı da 3,3 V olur ve dönüştürücüye hiç gerek kalmaz.
3,3 V ile sorunsuz çalışan yaygın sensörler:
- DHT11 / DHT22
- DS18B20
- BMP280 / BME280
- MPU6050
- OLED ekranlar (SSD1306)
- Çoğu I2C modülü
Veri sayfasında “Operating Voltage: 3,0 – 5,5 V” gibi bir aralık görüyorsanız sensörü 3,3 V’tan besleyin ve sorunu tamamen ortadan kaldırın.
Ana istisna: HC-SR04. 3,3 V ile beslendiğinde güvenilir çalışmaz; 5 V gerekir ve bu yüzden Echo hattı dönüştürülmelidir. (3,3 V ile çalışan HC-SR04P versiyonu da mevcuttur.)
Kaçınılması Gereken Yanlış Çözümler
Seri direnç koymak. “Araya 1 kΩ koydum, akımı sınırlıyor” yaklaşımı yanlıştır. Giriş pini akım çekmez; koruma diyodu üzerinden geçen akımı sınırlarsınız ama gerilim yine 5 V’a yakın kalır. Bu, hasarı yavaşlatır ama önlemez.
Zener diyot. Çalışır ama sinyal kenarlarını bozar ve sürekli akım çeker.
“Bende çalışıyor” varsayımı. ESP kartları 5 V sinyalle bir süre sorunsuz çalışabilir. Bu, güvenli olduğu anlamına gelmez; pinler kümülatif olarak yıpranır.
Ortak Toprak
Hangi yöntemi kullanırsanız kullanın, iki devrenin GND hatları birleştirilmelidir. Lojik seviye, GND’ye göre tanımlanır; ortak referans olmadan hiçbir dönüştürücü çalışmaz.
Özet
3,3 V ve 5 V lojik seviyeler doğrudan birleştirilemez. 5 V → 3,3 V yönü mutlaka dönüştürme gerektirir; ters yön genellikle gerekmez ama her zaman değil.
Bu derste şunları öğrendik:
- Hangi kartın hangi lojik seviyede çalıştığını
- İki yönün neden farklı ele alınması gerektiğini
- Gerilim bölücü ile indirmeyi ve hız sınırını
- BSS138 MOSFET ile çift yönlü dönüştürmeyi
- Hazır modülleri ve hangisinin ne zaman uygun olduğunu
- Sensörü 3,3 V’tan besleyerek sorunu baştan çözmeyi
- Seri direnç ve zener gibi yanlış çözümleri