Tõmbetakistite mõistmine
Enne ESP32 tõmbetihvtide eripäradesse sukeldumist on oluline mõista tõmbetakistite rolli vooluringis. Kui digitaalsisendi viik jäetakse vedelema (pole ühendatud ühegi pingeallikaga), saab see lugeda juhuslikke väärtusi, mis muudab selle loogilise taseme määramise keeruliseks.
Selle probleemi vältimiseks ühendatakse sisenditihvti ja pingeallika (tavaliselt Vcc) vahele tõmbetakisti, mis tagab, et sisend loeb vaikimisi kõrget (loogiline 1) olekut. Kui sisend on ühendatud madala (loogiline 0) signaaliga, tõmbab takisti sisendi maapinnale, võimaldades sisendil lugeda madalat olekut.
ESP32 sisseehitatud ülestõmbetihvtid
ESP32 mikrokontrolleril on 34 üldotstarbelist sisendi/väljundi (GPIO) tihvti, mida saab konfigureerida kas digitaalsete või analoogviikudena. Nende 34 tihvti hulgas on mõnel kontaktil sisseehitatud tõmbetakistid, mida saab tarkvara lubada.
Järgmises tabelis on näidatud ESP32 kontaktid, millel on sisseehitatud tõmbetakistid:
PIN-kood | Pin Nimi | Sisseehitatud tõmbetakisti |
0 | GPIO0 | Jah |
2 | GPIO2 | Jah |
4 | GPIO4 | Jah |
5 | GPIO5 | Jah |
12 | GPIO12 | Jah |
13 | GPIO13 | Jah |
14 | GPIO14 | Jah |
viisteist | GPIO15 | Jah |
25 | GPIO25 | Jah |
26 | GPIO26 | Jah |
27 | GPIO27 | Jah |
32 | GPIO32 | Jah |
33 | GPIO33 | Jah |
3. 4 | GPIO34 | Ei |
35 | GPIO35 | Ei |
36 | GPIO36 | Ei |
39 | GPIO39 | Ei |
Nagu näete, on enamikul ESP32 digitaalsetest kontaktidest sisseehitatud tõmbetakistid. Kuid mitte kõigil tihvtidel pole seda funktsiooni. Kontaktidel 34, 35, 36 ja 39 ei ole sisseehitatud tõmbetakisteid.
Märge: ESP32-s on integreeritud tõmbetakistid ja tõmbetakistid saadaval ainult kontaktides, mis toetavad nii sisendit kui ka väljundit. GPIO-d 34-39 , mis on piiratud ainult sisendiga, neil pole neid takisteid sisse ehitatud.
Kontrollige täielikku ESP32 pinouti viide .
Tõmbetakistite lubamine ESP32-l
ESP32 viigu tõmbetakisti lubamiseks võite kasutada gpio_set_pull_mode() ESP-IDF raamistiku pakutav funktsioon.
Sellel funktsioonil on kaks argumenti:
- GPIO PIN-kood
- Tõmberežiim
Tõmberežiim võib olla ükskõik milline GPIO_PULLUP_ENABLE või GPIO_PULLUP_DISABLE . Siin on näide koodist, mis lubab GPIO2 tõmbetakisti:
#include 'driver/gpio.h'tühine enable_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
pinMode ( 5 , INPUT_PULLUP ) ;
Oluline on märkida, et tõmbetakisti lubamine tihvtil mõjutab selle käitumist, kui kontakti kasutatakse väljundina. Sel juhul toimib tõmbetakisti nõrga vooluallikana ja võib mõjutada väljundpinge taset.
Teise võimalusena saame lubada ESP32 sisemised tõmbed, kasutades pinMode() Arduino funktsioon.
pinMode ( 5 , INPUT_PULLUP ) ;Ülaltoodud kood lubab sisemise tõmbetakisti kontaktil 5 . Samamoodi saate lubada sisemise ripptakisti, määrates režiimi INPUT_PULLDOWN .
Järeldus
Tõmbetakistid on digitaalsetes ahelates olulised komponendid ja ESP32 mikrokontroller pakub enamikule digitaalsetele kontaktidele sisseehitatud tõmbetakistid. Nende takistite lubamine võib tagada stabiilse loogikataseme ja vältida ujuva sisendi probleeme. Siiski on oluline märkida, et mitte kõigil ESP32 kontaktidel ei ole sisseehitatud tõmbetakisteid, seega on oluline kontrollida ESP32 pinout või andmeleht enne vooluringi projekteerimist. Lisaks võib tõmbetakisti lubamine mõjutada kontakti käitumist, kui seda kasutatakse väljundina.