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.

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:

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:

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.
| GPIO | Giriş (Input) | Çıkış (Output) | Mühendislik Notu / Kısıtlamalar |
|---|---|---|---|
| GPIO 0 | Sarı (Pull-up) | Yeşil | Strapping (Önyükleme) pini. Boot esnasında LOW çekilirse kart Flash moduna girer. Açılışta PWM dalgası verebilir. |
| GPIO 1 | Kırmızı (TX) | Sarı | Donanımsal debug seri port çıkışıdır (TX0). Boştayken veri çıkışı (debug logs) üretir. |
| GPIO 2 | Yeşil | Yeşil | Strapping pini. Çoğu kartta dahili LED’e bağlıdır. Boot esnasında HIGH olmamalıdır. |
| GPIO 3 | Sarı | Kırmızı (RX) | Donanımsal debug seri port girişidir (RX0). Boot esnasında HIGH çekilir. |
| GPIO 4 | Yeşil | Yeşil | Dahili Dokunmatik Kanal T0 ve ADC2 kanalıdır. |
| GPIO 5 | Sarı | Yeşil | Strapping pini. Boot esnasında HIGH olmalıdır. Açılışta geçici PWM dalgalanması üretebilir. |
| GPIO 6-11 | YASAK | YASAK | Dahili 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 12 | Sarı (MTDI) | Yeşil | Son 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-14 | Yeşil | Yeşil | HSPI ve JTAG hata ayıklama donanımları tarafından kullanılır. |
| GPIO 15 | Sarı (MTDO) | Yeşil | Strapping pini. Boot esnasında debug çıktısını etkinleştirmek için HIGH olmalıdır. |
| GPIO 16-33 | Yeşil | Yeşil | Genel amaçlı giriş ve çıkışlar için tamamen güvenli, kararlı pin alanlarıdır. |
| GPIO 34-39 | Yeş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
) 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
aralığında ve
sınır bölgelerinde voltaj değişimlerine yanıt vermeyen ölü bölgeler (dead zones) mevcuttur (S-eğrisi karakteristiği):

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 Portu | MOSI | MISO | SCK (Clock) | CS (Chip Select) |
|---|---|---|---|---|
| VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
| HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Önemli Yüksek Hız Notu (Native MUX vs GPIO Matrix): SPI protokolünde dilediğiniz pinleri yazılımsal olarak atayabilirsiniz. Ancak
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ı
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 (
) voltajını ayarlar. Eğer boot anında bu pin harici bir devre nedeniyle HIGH çekilirse regülatör
üretir, ancak standart WROOM modülleri
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
‘dir. Kararlı ve güvenilir bir donanım tasarımı için pin başına çekilen akımın **
ve altında** tutulması, toplam entegre üzerinden geçen akım sınırının ise
‘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.

