ESP32 Pin Referansı Giriş ve Çıkış Pinleri
ESP32 pin referansı sayesinde, hangi pinin ne için kullanacağını, giriş ve çıkış pinlerini, pwm gibi pinleri kolaylıkla ayırt edebilirsiniz. ESP32 entegresi, çoklu işlevlere sahip 48 pin ile birlikte gelir. Tüm pinler tüm ESP32 geliştirme kartlarında gösterilmez ve bazı pinler kullanılamaz.
Kullanabilceğiniz birden fazla ESP32 geliştirme kartı mevcuttur, en yaygın kullanılan ESP32 geliştirme kartlarını bu yazımızda derledik ve kıyaslamalarını yaptık.
Eğer daha önce hiç ESP32 kullanmadıysanız, bu yazımıza bakmanızı öneriyoruz.
ESP32 GPIO’ların nasıl kullanılacağına dair birçok soru alıyoruz. Projemde hangi pinleri kullanmaktan kaçınmalıyım? Bu gönderi, ESP32 GPIO’lar için basit ve takip etmesi kolay bir referans kılavuzu olmayı amaçlamaktadır.
Aşağıdaki şekil ESP-WROOM-32 pin çıkışını göstermektedir. Özel bir kart oluşturmak için bir ESP32 sade bir çip şeklinde kullanıyorsanız bunu referans olarak kullanabilirsiniz:
ESP32 Çevre Birimleri
- 18 Analogdan Dijitale Dönüştürücü (ADC)
- 3 SPI arayüzü
- 3 UART arayüzü
- 2 I2C arayüzü
- 16 PWM çıkış kanalı
- 2 Dijital-Analog Dönüştürücü (DAC)
- 2 I2S arayüzü
- 10 Kapasitif algılama GPIO’su
ADC (analogdan dijitale dönüştürücü) ve DAC (dijitalden analoga dönüştürücü) özellikleri belirli statik pinlere atanır. Bununla birlikte, hangi pinlerin UART, I2C, SPI, PWM, vb olduğuna karar verebilirsiniz bunları kodda atamanız yeterlidir. Bu, ESP32 çipinin çoğullama(multiplexing) özelliği sayesinde mümkündür.
Yazılım üzerinde pin özelliklerini tanımlayabilmenize rağmen, aşağıdaki şekilde gösterildiği gibi varsayılan olarak atanmış pinler vardır (bu, 36 pinli ESP32 DEVKIT V1 DOIT kartı için bir örnektir, pin konumu üreticiye bağlı olarak değişebilir).
Ek olarak, belirli bir proje için uygun veya uygun olmamalarını sağlayan belirli özelliklere sahip pinler vardır. Aşağıdaki tablo, hangi pinlerin giriş, çıkış olarak kullanılmasının en iyi olduğunu ve hangilerine dikkat etmeniz gerektiğini gösterir.
Yeşil ile vurgulanan pinlerin kullanımı uygundur. Sarı ile vurgulananların kullanımı uygundur, ancak özellikle açılışta beklenmedik bir davranış sergileyebileceklerinden dikkat etmeniz gerekir. Kırmızı ile vurgulanan pinlerin giriş veya çıkış olarak kullanılması önerilmez.
GPIO Pinleri | Input/Giriş | Output/Çıkış | Açıklama |
---|---|---|---|
0 | pull-up | Uygun | Önyüklemede PWM sinyali verir |
1 | TX pini | Uygun | Önyüklemede hata ayıklama çıktısı |
2 | Uygun | Uygun | Yerleşik LED’e bağlı |
3 | Uygun | RX pini | Önyüklemede YÜKSEK |
4 | Uygun | Uygun | |
5 | Uygun | Uygun | Önyüklemede PWM sinyali verir |
6 | X | X | entegre SPI flashına bağlı |
7 | X | X | entegre SPI flashına bağlı |
8 | X | X | entegre SPI flashına bağlı |
9 | X | X | entegre SPI flashına bağlı |
10 | X | X | entegre SPI flashına bağlı |
11 | X | X | entegre SPI flashına bağlı |
12 | Uygun | Uygun | Yükseğe çekilirse önyükleme başarısız olur |
13 | Uygun | Uygun | |
14 | Uygun | Uygun | Önyüklemede PWM sinyali verir |
15 | Uygun | Uygun | Önyüklemede PWM sinyali verir |
16 | Uygun | Uygun | |
17 | Uygun | Uygun | |
18 | Uygun | Uygun | |
19 | Uygun | Uygun | |
21 | Uygun | Uygun | |
22 | Uygun | Uygun | |
23 | Uygun | Uygun | |
25 | Uygun | Uygun | |
26 | Uygun | Uygun | |
27 | Uygun | Uygun | |
32 | Uygun | Uygun | |
33 | Uygun | Uygun | |
34 | Uygun | X | Sadece giriş olarak çalışır |
35 | Uygun | X | Sadece giriş olarak çalışır |
36 | Uygun | X | Sadece giriş olarak çalışır |
39 | Uygun | X | Sadece giriş olarak çalışır |
ESP32 GPIO’ların ve işlevlerinin daha ayrıntılı ve derinlemesine analizi için okumaya devam edin.
Sadece Giriş Olarak Çalışan Pinler
34 ila 39 arasındaki GPIO’lar – yalnızca giriş pinleridir. Bu pinlerin dahili pull-up veya pull-down dirençleri yoktur. Çıkış olarak kullanılamazlar, bu nedenle bu pinleri yalnızca giriş olarak kullanın:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
Entegre SPI Flashına Bağlı Pinler
GPIO 6 ila GPIO 11, bazı ESP32 geliştirme kartlarında kullanıma sunulur. Ancak bu pinler, ESP-WROOM-32 kitinde, entegre SPI flaşına bağlıdır ve diğer kullanımlar için önerilmez. Bu nedenle, projelerinizde bu pinleri kullanmayın:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Kapasitif Dokunmatik GPIO’lar
ESP32, 10 adet dahili kapasitif dokunmatik sensöre sahiptir. Bunlar, insan derisi gibi elektrik yükü taşıyan herhangi bir şeydeki değişiklikleri algılayabilir. Böylece GPIO’lara parmakla dokunulduğunda ortaya çıkan varyasyonları tespit edebilirler. Bu pinler, kapasitif pedlere kolayca entegre edilebilir ve mekanik düğmelerin yerini alabilir. Kapasitif dokunmatik pinler, ESP32’yi derin uykudan uyandırmak için de kullanılabilir.
Bu dahili dokunmatik sensörler şu GPIO’lara bağlıdır:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
ESP32 dokunmatik pinlerin nasıl kullanılacağını bu yazımızdan daha detaylı bir şekilde öğrenebilirsiniz.
Analogdan Dijitale Dönüştürücü (ADC) Pinler
ESP32’de 18 x 12 bit ADC giriş kanalları bulunur (ESP8266’da yalnızca 1x 10 bit ADC bulunur). ADC ve ilgili kanallar olarak kullanılabilen GPIO’lar şunlardır:
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
ESP32 ADC Kullanımı hakkındaki bilgilere bu yazımızdan ulaşabilirsiniz.
Not: Wi-Fi kullanıldığında ADC2 pinleri kullanılamaz. Bu nedenle, Wi-Fi kullanıyorsanız ve bir ADC2 GPIO’dan değer almakta sorun yaşıyorsanız, bunun yerine bir ADC1 GPIO kullanmayı düşünebilirsiniz.
ADC giriş kanalları 12 bit çözünürlüğe sahiptir. Bu, 0’dan 0V’a ve 4095’ten 3.3V’a karşılık gelen 0 ila 4095 arasında analog okumalar alabileceğiniz anlamına gelir. Ayrıca kod ve ADC aralığında kanallarınızın çözünürlüğünü ayarlayabilirsiniz.
ESP32 ADC pinlerinin doğrusal davranışı yoktur. Muhtemelen 0 ile 0,1V veya 3,2 ile 3,3V arasında ayrım yapamayacaksınız. ADC pinlerini kullanırken bunu aklınızda tutmanız gerekir. Aşağıdaki şekilde gösterilene benzer bir davranış elde edeceksiniz.
Dijitalden Analoga Dönüştürücü (DAC) Pinler
ESP32’de dijital sinyalleri analog voltaj sinyal çıkışlarına dönüştürmek için 2 x 8 bit DAC kanalı bulunmaktadır. Bunlar DAC kanallarıdır:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO Pinleri
ESP32’de RTC GPIO desteği vardır. RTC düşük güç alt sistemine yönlendirilen GPIO’lar, ESP32 derin uykudayken kullanılabilir. Bu RTC GPIO’lar, Ultra Düşük Güç (ULP) yardımcı işlemcisi çalışırken ESP32’yi derin uykudan uyandırmak için kullanılabilir. Aşağıdaki GPIO’lar harici uyandırma kaynağı olarak kullanılabilir.
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
ESP32’yi derin uykudan uyandırmak için RTC GPIO’ları nasıl kullanacağınızı öğrenin: ESP32 Derin Uyku Kullanımı ve Uyandırma Kaynakları
PWM Pinleri
ESP32 LED PWM denetleyicisi, farklı özelliklere sahip PWM sinyalleri üretmek üzere yapılandırılabilen 16 bağımsız kanala sahiptir. Çıkış görevi görebilen tüm pinler PWM pinleri olarak kullanılabilir (34 ila 39 GPIO’ları PWM üretemez).
Bir PWM sinyali ayarlamak için kodda şu parametreleri tanımlamanız gerekir:
- Sinyalin frekansı;
- Görev döngüsü(duty cycle);
- PWM kanalı;
- GPIO, sinyali çıkarmak istediğiniz yer.
ESP32 ile PWM Kullanımı için bu yazımıza göz atabilirsiniz.
I2C Pinleri
ESP32’nin iki I2C kanalı vardır ve herhangi bir pin SDA veya SCL olarak ayarlanabilir. ESP32’yi Arduino IDE ile kullanırken, varsayılan I2C pinleri şunlardır:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Wire kütüphanesini kullanırken diğer pinleri kullanmak istiyorsanız, şöyle çağırmanız yeterlidir:
Wire.begin(SDA, SCL);
ESP32 ile I2C Kullanımı hakkındaki yazımıza buradan ulaşabilirsiniz.
SPI Pinleri
Varsayılan olarak, SPI için pin eşlemesi şu şekildedir:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Kesmeler(Interrupts)
Tüm GPIO’lar kesme olarak yapılandırılabilir.
ESP32 ile kesmelerin nasıl kullanılacağını öğrenmek için bu yazımıza bakabilirsiniz.
Çemberleme Pinleri(Strapping)
ESP32 entegresinde aşağıdaki çemberleme pinleri bulunur:
- GPIO 0
- GPIO 2
- GPIO 4
- GPIO 5 (önyükleme sırasında YÜKSEK olmalıdır)
- GPIO 12 (önyükleme sırasında DÜŞÜK olmalıdır)
- GPIO 15 (önyükleme sırasında YÜKSEK olmalıdır)
Bunlar, ESP32’yi önyükleyici veya flash moduna geçirmek için kullanılır. Yerleşik USB/Serili çoğu geliştirme kartında, bu pinlerin durumu hakkında endişelenmenize gerek yoktur. Kart, flash veya önyükleme modu için pinleri doğru duruma getirir. ESP32 Önyükleme Modu Seçimi hakkında daha fazla bilgiyi burada bulabilirsiniz.
Ancak, bu pinlere bağlı çevre birimleriniz varsa, yeni kod yüklemeye çalışırken, ESP32’yi yeni bellenim ile flash veya kartı sıfırlamada sorun yaşayabilirsiniz. Çemberleme pimlerine bağlı bazı çevre birimleriniz varsa ve kod yükleme veya ESP32’yi flash moduna sokmakta sorun yaşıyorsanız, bunun nedeni bu çevre birimlerinin ESP32’nin doğru moda girmesini engellemesi olabilir.
Önyüklemede YÜKSEK Pinler
Bazı GPIO’lar, durumlarını YÜKSEK olarak değiştirir veya önyükleme veya sıfırlama sırasında PWM sinyalleri verir. Bu, GPIO’lara bağlı çıkışlarınız varsa, ESP32 sıfırlandığında veya önyüklendiğinde beklenmedik sonuçlar alabileceğiniz anlamına gelir.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 – GPIO 11 (ESP32 entegre SPI flash belleğe bağlı – kullanılması önerilmez).
- GPIO 14
- GPIO 15
Enable (EN) Pini
Enable (EN), 3.3V regülatörün etkinleştirme pinidir. Yukarı çekilidir, bu nedenle 3.3V regülatörünü devre dışı bırakmak için toprağa bağlayın. Bu, örneğin ESP32’nizi yeniden başlatmak için bir düğmeye bağlı bu pimi kullanabileceğiniz anlamına gelir.
GPIO Pinlerin Akım Çekimi
ESP32 veri sayfasındaki “Önerilen Çalışma Koşulları” bölümüne göre GPIO başına çekilen mutlak maksimum akım 40mA’dır.
ESP32 Dahili Hall Effect Sensörü
ESP32 ayrıca çevresindeki manyetik alandaki değişiklikleri algılayan dahili bir hall effect sensörüne de sahiptir.
ESP32 GPIO’lar için bu başvuru kılavuzunu yararlı bulduğunuzu umuyoruz. ESP32 GPIO’lar hakkında daha fazla bilgiye varsa, lütfen aşağıya bir yorum yazarak paylaşın.
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.