ESP32 Pin Referansı Giriş ve Çıkış Pinleri

ESP32 Pin Referansı Giriş ve Çıkış Pinleri esp32 pin referansı,esp32 giriş ve çıkış pinleri,esp32 pinleri,esp32 pinout,esp32 kullanıımı

ESP32 pin referansı, pin yönlendirme mimarisini, giriş/çıkış sınırlarını, önyükleme (strapping) pinlerinin tehlikelerini ve ADC/DAC donanımlarının gizli kısıtlamalarını içeren kapsamlı bir ESP32 Referans Kılavuzu sunacağız.

Espressif Systems tarafından geliştirilen ESP32, yüksek işlem gücü ve zengin kablosuz haberleşme modülleriyle IoT (Nesnelerin İnterneti) projelerinin vazgeçilmez donanımıdır. Ancak donanım geliştirme süreçlerinde en çok karşılaşılan sorunlar, yanlış pin seçimlerinden kaynaklanan kilitlenmeler, boot döngüleri (bootloop) ve kararsız çalışma durumlarıdır. ESP32 SoC entegresi, her biri farklı işlevlere sahip 48 fiziksel pin ile birlikte gelir.

Ancak bu pinlerin tamamı geliştirme kartları üzerinde dışarıya taşınmaz ve daha da önemlisi, bazı pinlerin kullanımında çok ciddi kısıtlamalar bulunur.

ESP32 Pin Referansı Giriş ve Çıkış Pinleri
ESP32 Pin Referansı Giriş ve Çıkış Pinleri

Projeleriniz için hangi geliştirme kartını seçeceğinize karar vermek ve tüm kartların detaylı elektriksel kıyaslamasını incelemek isterseniz öncelikle ESP32 Geliştirme Kartları ve Kıyaslaması rehberimize göz atabilirsiniz.

Eğer ESP32 platformuyla ilk defa çalışıyorsanız ve kurulum adımlarını öğrenmek isterseniz ESP32 Kullanımı ve Arduino IDE Kurulumu yazımızı inceleyebilirsiniz.

Aşağıdaki görsel, çıplak bir ESP-WROOM-32 modülünün (SoC çipi) detaylı bacak yapısını ve fonksiyonel şemasını göstermektedir. Kendi özel PCB kartınızı tasarlarken veya harici çipleri bağlarken bu şemayı referans alabilirsiniz:

ESP-WROOM-32 Çıplak Çip Bacak Bağlantı ve Fonksiyon Şeması

ESP32 Dahili Çevre Birimleri (Peripherals) Matrix Yapısı

ESP32, zengin analog ve dijital donanımsal arayüzlerle donatılmıştır:

  • 18 adet Analogdan Dijitale Dönüştürücü (ADC) kanalı (12-bit çözünürlük).
  • 2 adet Dijitalden Analoga Dönüştürücü (DAC) kanalı (8-bit gerçek analog çıkış).
  • 3 adet donanımsal SPI arayüzü portu (SPI, HSPI, VSPI).
  • 3 adet donanımsal UART (Seri Port) arayüzü.
  • 2 adet donanımsal I2C kanalı.
  • 16 adet bağımsız ledc donanımlı PWM çıkış kanalı.
  • 2 adet I2S (Entegre Çip Arası Ses) dijital ses kanalı.
  • 10 adet kapasitif dokunmatik (touch) algılama pini.

Dinamik Pin Yönlendirme (Multiplexing / GPIO Matrix): Eski nesil mikrodenetleyicilerin aksine, ESP32’de I2C, SPI, UART veya PWM gibi dijital donanımlar sabit bacaklara kilitlenmemiştir. ESP32’nin içinde yer alan IO MUX ve **GPIO Matrix (Giriş/Çıkış Matrisi)** sayesinde, yazılım üzerinden dilediğiniz herhangi bir dijital çevre birimi fonksiyonunu dilediğiniz herhangi bir dijital GPIO pinine dinamik olarak yönlendirebilirsiniz. Sadece ADC ve DAC gibi analog birimler donanımsal olarak belirli fiziksel pinlere bağlıdır.

Varsayılan donanım konfigürasyonlarında (örneğin popüler 30/36 pinli ESP32 DEVKIT V1 DOIT kartlarında) pin yerleşimleri standart olarak tanımlanmıştır:

36 Pinli ESP32 DEVKIT V1 DOIT Geliştirme Kartı Detaylı Pin Haritası

ESP32 Pin Referansı: Güvenli Kullanım Matrisi

Tasarım yaparken hatalardan kaçınmak için pinlerin çalışma özelliklerini bilmelisiniz. Aşağıdaki tabloda, hangi pinlerin giriş veya çıkış olarak kullanımının güvenli olduğu, hangilerinin açılışta beklenmedik sinyaller ürettiği ve hangilerinin kesinlikle kullanılmaması gerektiği renk kodlarıyla özetlenmiştir:

  • 🟢 **Yeşil (Güvenli):** Genel amaçlı giriş/çıkış (GPIO) olarak tamamen kararlıdır. Projelerinizde öncelikle bu pinleri tercih ediniz.
  • 🟡 **Sarı (Dikkatli Olun):** Kullanımı güvenlidir ancak açılış (boot) esnasında durum değiştirebilir veya özel kısıtlamalara tabidir.
  • 🔴 **Kırmızı (Kullanmaktan Kaçının):** Harici kullanımda boot başarısızlığına, flash yazma hatalarına veya sistem kilitlenmelerine yol açar.
GPIOGiriş (Input)Çıkış (Output)Mühendislik Notu / Kısıtlamalar
GPIO 0Sarı (Pull-up)YeşilStrapping (Önyükleme) pini. Boot esnasında LOW çekilirse kart Flash moduna girer. Açılışta PWM dalgası verebilir.
GPIO 1Kırmızı (TX)SarıDonanımsal debug seri port çıkışıdır (TX0). Boştayken veri çıkışı (debug logs) üretir.
GPIO 2YeşilYeşilStrapping pini. Çoğu kartta dahili LED’e bağlıdır. Boot esnasında HIGH olmamalıdır.
GPIO 3SarıKırmızı (RX)Donanımsal debug seri port girişidir (RX0). Boot esnasında HIGH çekilir.
GPIO 4YeşilYeşilDahili Dokunmatik Kanal T0 ve ADC2 kanalıdır.
GPIO 5SarıYeşilStrapping pini. Boot esnasında HIGH olmalıdır. Açılışta geçici PWM dalgalanması üretebilir.
GPIO 6-11YASAKYASAKDahili SPI Flaş Belleğe bağlıdır! Harici kullanım halinde işlemci anında çöker ve boot döngüsüne girer.
GPIO 12Sarı (MTDI)YeşilSon derece kritik strapping pini! Boot esnasında HIGH çekilirse dahili flaş voltajı 1.8V’a çekilir ve kart açılmaz. Mutlaka boş bırakılmalı veya pull-down edilmelidir.
GPIO 13-14YeşilYeşilHSPI ve JTAG hata ayıklama donanımları tarafından kullanılır.
GPIO 15Sarı (MTDO)YeşilStrapping pini. Boot esnasında debug çıktısını etkinleştirmek için HIGH olmalıdır.
GPIO 16-33YeşilYeşilGenel amaçlı giriş ve çıkışlar için tamamen güvenli, kararlı pin alanlarıdır.
GPIO 34-39Yeşil (GPI)YASAK**Sadece Giriş (Input-Only)** olarak çalışırlar. Dahili pull-up ve pull-down dirençleri yoktur. Çıkış olarak asla konfigüre edilemezler.

Yalnızca Giriş (Input-Only) Olarak Çalışan Pinlerin Karakteristiği

GPIO 34, 35, 36, 37, 38 ve 39 pinleri yalnızca giriş (GPI) modunda çalışabilir. Bu pinlerin elektriksel olarak dahili zayıf yukarı çekme (pull-up) veya aşağı çekme (pull-down) dirençleri bulunmaz. Bunun nedeni, bu pinlerin doğrudan analog giriş kanallarına ayrılmış olmasıdır. Bu pinleri buton veya dijital giriş olarak kullanacağınız zaman, kararsız (floating) durumları engellemek amacıyla devreye mutlaka harici bir pull-up/pull-down direnci (tipik olarak 10\text{ k}\Omega) eklemeniz gerekir.

Analog Dijital Dönüştürücü (ADC) Donanımı ve Wi-Fi Çakışma Tuzağı

ESP32 bünyesinde 12-bit çözünürlüğünde iki adet bağımsız SAR (Ardışık Yaklaşımlı Kayıtlı) ADC modülü barındırır. Bu modüller toplamda 18 kanalı yönetir. Giriş detayları ve kalibrasyon adımları için ESP32 ADC Kullanımı kılavuzumuza başvurabilirsiniz.

  • ADC1 (8 Kanal): GPIO 32 – 39 pinleri arasındadır.
  • ADC2 (10 Kanal): GPIO 0, 2, 4, 12 – 15, 25 – 27 pinleri arasındadır.

Hayati Donanımsal Kısıtlama (Wi-Fi ve ADC2 Çakışması): ESP32’nin RF ön uç devresi (Wi-Fi ve Bluetooth), dahili PLL ve analog kaynakları ADC2 modülü ile ortak kullanır. **Wi-Fi modülü etkinleştirildiği anda (kodda `WiFi.begin()` çağrıldığında), ADC2 kanallarının tamamı donanımsal olarak kilitlenir.** Bu esnada ADC2 pinlerinden `analogRead()` yapmaya çalışırsanız okuma başarısız olacak veya sürekli hata değeri dönecektir. Dolayısıyla, Wi-Fi kullanan projelerinizde (web server, akıllı ev vb.) analog ölçümler yapmanız gerekiyorsa **mutlaka ADC1 kanal grubu pinlerini (GPIO 32-39)** kullanmalısınız.

ADC Doğrusalsızlığı (Non-linearity): ESP32’nin ADC girişleri doğrusal bir karaktere sahip değildir. Özellikle 0\text{V} - 0.1\text{V} aralığında ve 3.1\text{V} - 3.3\text{V} sınır bölgelerinde voltaj değişimlerine yanıt vermeyen ölü bölgeler (dead zones) mevcuttur (S-eğrisi karakteristiği):

ESP32 ADC Çıkışının Gerçek Voltaj Değerine Göre Doğrusal Olmayan Grafiği
Doğrusal Olmayan Giriş Karakteristiği ve Doyum Noktaları

Dijitalden Analoga Dönüştürücü (DAC) Yeteneği

Kare dalgayı taklit eden PWM çıkışlarının aksine, ESP32’de gerçek analog çıkış sinyalleri üretebilen iki adet donanımsal 8-bit R-2R mimarili DAC kanalı mevcuttur. Bu kanallar vasıtasıyla pürüzsüz sinüs, üçgen veya ses dalgaları üretilebilir. Atanmış fiziksel DAC pinleri şunlardır:

  • DAC1 (GPIO 25): Birinci bağımsız analog çıkış kanalı.
  • DAC2 (GPIO 26): İkinci bağımsız analog çıkış kanalı.

Derin Uyku ve RTC (Real-Time Clock) Giriş/Çıkışları

ESP32’nin ana işlemci çekirdekleri kapatılarak derin uyku (deep sleep) moduna geçildiğinde, sadece Ultra Düşük Güç (ULP) yardımcı işlemcisi ve RTC (Gerçek Zamanlı Saat) alt sistemi aktif kalır. RTC birimine doğrudan bağlı olan 18 adet özel **RTC GPIO** pimi, derin uykudayken dışarıdan gelen harici kesme (interrupt) sinyallerini algılayabilir ve işlemciyi uyandırabilir. Harici uyandırma kaynakları hakkında teknik detaylar için ESP32 Derin Uyku Kullanımı ve Uyandırma Kaynakları rehberimizi inceleyebilirsiniz.

SPI ve I2C Protokol Donanım Eşlemeleri

ESP32 iki adet donanımsal I2C denetleyicisine sahiptir. Arduino IDE üzerinde varsayılan I2C pinleri:

  • SDA: GPIO 21
  • SCL: GPIO 22

Varsayılan kütüphane bağlantılarını değiştirmek isterseniz `Wire.begin(SDA_PIN, SCL_PIN)` koduyla dilediğiniz pinleri I2C hattına dönüştürebilirsiniz. Detaylı rehber için ESP32 I2C Kullanımı yazımıza göz atabilirsiniz.

Hassas yüksek hızlı seri haberleşme protokolü olan SPI için varsayılan donanım bağlantıları ise şu şekildedir:

SPI PortuMOSIMISOSCK (Clock)CS (Chip Select)
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 15

Önemli Yüksek Hız Notu (Native MUX vs GPIO Matrix): SPI protokolünde dilediğiniz pinleri yazılımsal olarak atayabilirsiniz. Ancak 80\text{ MHz} gibi çok yüksek hızlarda ekran veya bellek sürmek istiyorsanız, sinyali GPIO Matrix üzerinden geçirmek ufak bir gecikmeye yol açar ve maksimum hızı 40\text{ MHz} ile sınırlar. Bu nedenle, yüksek hızlı uygulamalarda doğrudan yukarıda belirtilen **varsayılan (native) SPI donanım pinlerini** kullanmanız elzemdir.

Çemberleme (Strapping) Pinlerinin Çalışma Dinamikleri ve Boot Hataları

ESP32’de önyükleme anında (reset veya ilk enerji verildiğinde) işlemcinin hangi modda başlayacağını belirleyen **Strapping (Çemberleme) Pinleri** bulunur. Bu pinler: GPIO 0, GPIO 2, GPIO 5, GPIO 12 ve GPIO 15‘tir.

  • GPIO 0: Boot anında dahili pull-up ile HIGH seviyesindedir. Eğer bu pin LOW seviyesine çekilirse, işlemci seri port üzerinden yeni kod yazma (UART Download) moduna girer. Projelerinizde bu pin üzerine buton veya sensör bağlarken, açılış esnasında pini yanlışlıkla LOW konumuna çekmemesine dikkat etmelisiniz.
  • GPIO 12 (MTDI): Dahili regülatörün (VDD\_SDIO) voltajını ayarlar. Eğer boot anında bu pin harici bir devre nedeniyle HIGH çekilirse regülatör 1.8\text{V} üretir, ancak standart WROOM modülleri 3.3\text{V} flash kullanır. Voltaj uyumsuzluğundan dolayı entegre boot edemez ve sürekli reset döngüsüne (boot loops) girer. **GPIO 12 bacağının boot esnasında daima LOW veya boşta kalması gerekir.**

Akım Limitleri ve Hasar Sınırları

ESP32 veri sayfalarında (datasheet) belirtilen mutlak maksimum değerlere göre, tek bir GPIO pininden çekilebilecek (source/sink) maksimum akım limit değeri 40\text{mA}‘dir. Kararlı ve güvenilir bir donanım tasarımı için pin başına çekilen akımın **20\text{mA} ve altında** tutulması, toplam entegre üzerinden geçen akım sınırının ise 1200\text{mA}‘i aşmaması önemle tavsiye edilir. ESP32 üzerindeki dahili manyetik alan algılayıcıları hakkında bilgi almak için ESP32 Dahili Hall Effect Sensörü rehberimizi inceleyebilirsiniz.

Özetlemek gerekirse; ESP32’nin GPIO Matrix yapısı tasarımcıya büyük bir esneklik sunsa da, strapping pinlerinin boot limitleri ve Wi-Fi ile ADC2 arasındaki donanımsal çakışma gibi kısıtlamalar bilinerek yapılan tasarımlar, projelerinizin sorunsuz, kararlı ve yüksek performansla çalışmasını sağlayacaktır.

Örnek olması adına ESP32 veri sayfası buradan ulaşabilirsiniz.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.