Razumijevanje Pull-Up otpornika
Prije nego što zaronite u specifičnosti ESP32 pull-up pinova, važno je razumjeti ulogu pull-up otpornika u krugu. Kada je digitalni ulazni pin ostavljen da pluta (nije spojen ni na jedan izvor napona), može očitati nasumične vrijednosti, što otežava određivanje njegove logičke razine.
Kako bi se izbjegao ovaj problem, između ulaznog pina i izvora napona (obično Vcc) spojen je pull-up otpornik kako bi se osiguralo da ulaz očitava visoko stanje (logička 1) prema zadanim postavkama. Kada je ulaz spojen na niski (logička 0) signal, otpornik povlači ulaz na masu, dopuštajući ulazu da očita nisko stanje.
Ugrađene Pull-Up igle na ESP32
Mikrokontroler ESP32 ima 34 pina za ulaz/izlaz opće namjene (GPIO), koji se mogu konfigurirati kao digitalni ili analogni pinovi. Među ova 34 pina, neki pinovi imaju ugrađene otpornike koji se mogu uključiti softverom.
Sljedeća tablica prikazuje pinove na ESP32 koji imaju ugrađene pull-up otpornike:
Pin broj | Ime pribadače | Ugrađeni Pull-Up otpornik |
0 | GPIO0 | Da |
2 | GPIO2 | Da |
4 | GPIO4 | Da |
5 | GPIO5 | Da |
12 | GPIO12 | Da |
13 | GPIO13 | Da |
14 | GPIO14 | Da |
petnaest | GPIO15 | Da |
25 | GPIO25 | Da |
26 | GPIO26 | Da |
27 | GPIO27 | Da |
32 | GPIO32 | Da |
33 | GPIO33 | Da |
3. 4 | GPIO34 | Ne |
35 | GPIO35 | Ne |
36 | GPIO36 | Ne |
39 | GPIO39 | Ne |
Kao što vidite, većina digitalnih pinova na ESP32 ima ugrađene pull-up otpornike. Međutim, nemaju svi pinovi ovu značajku. Pinovi 34, 35, 36 i 39 nemaju ugrađene pull-up otpornike.
Bilješka: U ESP32, integrirani pull-up i pull-down otpornici dostupni su samo u pinovima koji podržavaju i ulaz i izlaz. GPIOs 34-39 , koji su ograničeni samo na ulaz, nemaju ugrađene ove otpornike.
Provjerite kompletan ESP32 Referenca Pinouta .
Omogućavanje Pull-Up otpornika na ESP32
Da biste omogućili pull-up otpornik na ESP32 pinu, možete koristiti gpio_set_pull_mode() funkcija koju pruža okvir ESP-IDF.
Ova funkcija uzima dva argumenta:
- GPIO pin broj
- Način povlačenja
Način povlačenja može biti bilo koji GPIO_PULLUP_ENABLE ili GPIO_PULLUP_DISABLE . Evo primjera koda koji omogućuje pull-up otpornik na GPIO2:
#include 'driver/gpio.h'poništiti omogućiti_povlačenje_gore ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
pinMode ( 5 , INPUT_PULLUP ) ;
Važno je imati na umu da će uključivanje pull-up otpornika na pinu utjecati na njegovo ponašanje kada se pin koristi kao izlaz. U tom slučaju, pull-up otpornik će djelovati kao izvor slabe struje i može utjecati na razinu izlaznog napona.
Alternativno, također možemo omogućiti interna povlačenja na ESP32 pomoću pinMode() Arduino funkcija.
pinMode ( 5 , INPUT_PULLUP ) ;Gornji kod omogućit će unutarnji otpornik za privlačenje na pinu 5 . Slično, možete omogućiti unutarnji padajući otpornik određivanjem načina rada INPUT_PULLDOWN .
Zaključak
Pull-up otpornici bitne su komponente u digitalnim sklopovima, a mikrokontroler ESP32 ima ugrađene pull-up otpornike na većini svojih digitalnih pinova. Omogućavanje ovih otpornika može osigurati stabilne logičke razine i izbjeći probleme s nestalnim ulazom. Međutim, važno je napomenuti da nemaju svi pinovi na ESP32 ugrađene pull-up otpornike, pa je važno provjeriti ESP32 pinout ili podatkovnu tablicu prije projektiranja sklopa. Dodatno, omogućavanje pull-up otpornika može utjecati na ponašanje pina kada se koristi kao izlaz.