Razumevanje vlečnih uporov
Preden se potopite v posebnosti vlečnih zatičev ESP32, je pomembno razumeti vlogo vlečnih uporov v vezju. Ko digitalni vhodni zatič ostane lebdeč (ni priključen na noben vir napetosti), lahko bere naključne vrednosti, zaradi česar je težko določiti njegovo logično raven.
Da bi se izognili tej težavi, je med vhodnim zatičem in virom napetosti (običajno Vcc) priključen vlečni upor, ki zagotavlja, da vhod privzeto odčita visoko (logično 1) stanje. Ko je vhod povezan z nizkim (logična 0) signalom, upor potegne vhod navzdol na tla, kar omogoča, da vhod odčita nizko stanje.
Vgrajeni Pull-Up zatiči na ESP32
Mikrokrmilnik ESP32 ima 34 vhodno/izhodnih (GPIO) pinov, ki jih je mogoče konfigurirati kot digitalne ali analogne. Med temi 34 zatiči imajo nekateri zatiči vgrajene vlečne upore, ki jih je mogoče omogočiti s programsko opremo.
Naslednja tabela prikazuje nožice na ESP32, ki imajo vgrajene vlečne upore:
PIN številka | Pin Ime | Vgrajen Pull-Up Resistor |
0 | GPIO0 | ja |
2 | GPIO2 | ja |
4 | GPIO4 | ja |
5 | GPIO5 | ja |
12 | GPIO12 | ja |
13 | GPIO13 | ja |
14 | GPIO14 | ja |
petnajst | GPIO15 | ja |
25 | GPIO25 | ja |
26 | GPIO26 | ja |
27 | GPIO27 | ja |
32 | GPIO32 | ja |
33 | GPIO33 | ja |
3. 4 | GPIO34 | št |
35 | GPIO35 | št |
36 | GPIO36 | št |
39 | GPIO39 | št |
Kot lahko vidite, ima večina digitalnih zatičev na ESP32 vgrajene vlečne upore. Vendar te funkcije nimajo vsi zatiči. Nožice 34, 35, 36 in 39 nimajo vgrajenih vlečnih uporov.
Opomba: V ESP32 so integrirani vlečni in uporni upori na voljo samo v zatičih, ki podpirajo vhod in izhod. GPIO 34-39 , ki so omejeni samo na vnos, teh uporov nimajo vgrajenih.
Preverite celotno ESP32 Reference Pinout .
Omogočanje vlečnih uporov na ESP32
Če želite omogočiti vlečni upor na zatiču ESP32, lahko uporabite gpio_set_pull_mode() funkcijo, ki jo zagotavlja ogrodje ESP-IDF.
Ta funkcija sprejme dva argumenta:
- Številka pin GPIO
- Način vlečenja
Način vlečenja je lahko bodisi GPIO_PULLUP_ENABLE oz GPIO_PULLUP_DISABLE . Tukaj je primer kode, ki omogoča vlečni upor na GPIO2:
#include 'driver/gpio.h'praznina enable_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
pinMode ( 5 , INPUT_PULLUP ) ;
Pomembno je upoštevati, da bo omogočanje vlečnega upora na zatiču vplivalo na njegovo obnašanje, ko se zatič uporablja kot izhod. V tem primeru bo vlečni upor deloval kot vir šibkega toka in lahko vpliva na nivo izhodne napetosti.
Druga možnost je, da omogočimo tudi notranje vlečenje na ESP32 z uporabo pinMode() Arduino funkcija.
pinMode ( 5 , INPUT_PULLUP ) ;Zgornja koda bo omogočila notranji vlečni upor na nožici 5 . Podobno lahko omogočite notranji izvlečni upor, tako da določite način INPUT_PULLDOWN .
Zaključek
Pull-up upori so bistvene komponente v digitalnih vezjih in mikrokrmilnik ESP32 ponuja vgrajene pull-up upore na večini svojih digitalnih zatičev. Omogočanje teh uporov lahko zagotovi stabilne logične ravni in prepreči težave s plavajočim vhodom. Vendar je pomembno upoštevati, da nimajo vsi zatiči na ESP32 vgrajenih vlečnih uporov, zato je pomembno, da preverite ESP32 pinout ali podatkovni list pred načrtovanjem vezja. Poleg tega lahko omogočanje vlečnega upora vpliva na obnašanje zatiča, ko se uporablja kot izhod.