Çekme Dirençlerini Anlamak
ESP32 pull-up pimlerinin özelliklerine geçmeden önce, pull-up dirençlerinin bir devredeki rolünü anlamak önemlidir. Bir dijital giriş pimi kayan durumda bırakıldığında (herhangi bir voltaj kaynağına bağlı değilken), rastgele değerleri okuyabilir ve bu da mantık seviyesinin belirlenmesini zorlaştırır.
Bu sorunu önlemek için, girişin varsayılan olarak yüksek (mantıksal 1) bir durum okumasını sağlamak için giriş pimi ile bir voltaj kaynağı (tipik olarak Vcc) arasına bir çekme direnci bağlanır. Giriş düşük (mantıksal 0) bir sinyale bağlandığında, direnç girişi yere doğru çekerek girişin düşük durumu okumasını sağlar.
ESP32'de Yerleşik Çekme Pimleri
ESP32 mikrodenetleyici, dijital veya analog pinler olarak yapılandırılabilen 34 genel amaçlı giriş/çıkış (GPIO) pinine sahiptir. Bu 34 pin arasında, bazı pinlerde yazılım tarafından etkinleştirilebilen yerleşik pull-up dirençleri bulunur.
Aşağıdaki tablo, ESP32'deki yerleşik çekme dirençlerine sahip pinleri göstermektedir:
PIN numarası | Pim Adı | Dahili Çekme Direnci |
0 | GPIO0 | Evet |
2 | GPIO2 | Evet |
4 | GPIO4 | Evet |
5 | GPIO5 | Evet |
12 | GPIO12 | Evet |
13 | GPIO13 | Evet |
14 | GPIO14 | Evet |
onbeş | GPIO15 | Evet |
25 | GPIO25 | Evet |
26 | GPIO26 | Evet |
27 | GPIO27 | Evet |
32 | GPIO32 | Evet |
33 | GPIO33 | Evet |
3. 4 | GPIO34 | HAYIR |
35 | GPIO35 | HAYIR |
36 | GPIO36 | HAYIR |
39 | GPIO39 | HAYIR |
Gördüğünüz gibi, ESP32'deki dijital pinlerin çoğu yerleşik çekme dirençlerine sahiptir. Ancak, tüm pinlerde bu özellik yoktur. 34, 35, 36 ve 39 numaralı pimlerde yerleşik çekme direnci yoktur.
Not: ESP32'de Entegre pull-up ve pull-down dirençleri yalnızca hem girişi hem de çıkışı destekleyen pinlerde mevcuttur. GPIO'lar 34-39 yalnızca girişle sınırlı olan bu dirençler yerleşik değildir.
Tamamını kontrol et ESP32 Bağlantı Referansı .
ESP32'de Çekme Dirençlerini Etkinleştirme
Bir ESP32 pininde pull-up direncini etkinleştirmek için, gpio_set_pull_mode() ESP-IDF çerçevesi tarafından sağlanan işlev.
Bu işlev iki argüman alır:
- GPIO pin numarası
- çekme modu
Çekme modu şunlardan biri olabilir: GPIO_PULLUP_ENABLE veya GPIO_PULLUP_DISABLE . İşte GPIO2'de çekme direncini etkinleştiren bir örnek kod:
#include 'sürücü/gpio.h'geçersiz enable_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
pinModu ( 5 , INPUT_PULLUP ) ;
Bir pim üzerinde yukarı çekme direncinin etkinleştirilmesinin, pim bir çıkış olarak kullanıldığında davranışını etkileyeceğini unutmamak önemlidir. Bu durumda pull-up direnci zayıf akım kaynağı gibi davranır ve çıkış voltaj seviyesini etkileyebilir.
Alternatif olarak, ESP32'de dahili pull-up'ları da etkinleştirebiliriz. pinMode() Arduino işlevi.
pinModu ( 5 , INPUT_PULLUP ) ;Yukarıdaki kod, pin üzerindeki dahili pull-up direncini etkinleştirecektir. 5 . Benzer şekilde, modu belirterek dahili aşağı çekme direncini etkinleştirebilirsiniz. INPUT_PULLDOWN .
Çözüm
Çekme dirençleri, dijital devrelerdeki temel bileşenlerdir ve ESP32 mikrodenetleyici, dijital pimlerinin çoğunda yerleşik çekme dirençleri sağlar. Bu dirençlerin etkinleştirilmesi, kararlı mantık seviyeleri sağlayabilir ve değişken giriş sorunlarını önleyebilir. Bununla birlikte, ESP32'deki tüm pinlerin yerleşik çekme dirençlerine sahip olmadığına dikkat etmek önemlidir, bu nedenle kontrol etmek önemlidir. ESP32 pin çıkışı veya bir devre tasarlamadan önce veri sayfası. Ek olarak, çekme direncinin etkinleştirilmesi, çıkış olarak kullanıldığında pimin davranışını etkileyebilir.