Hvilke ESP32-pinner har pull-ups

Hvilke Esp32 Pinner Har Pull Ups



Hvis du er en elektronikkentusiast eller en utvikler som jobber med ESP32, har du kanskje hørt om pull-up og pull-down motstandene. Disse motstandene sørger for at en digital inngangspinne har et stabilt logisk nivå. I denne artikkelen vil vi diskutere hvilke pinner på ESP32 som har innebygde pull-up motstander og hvordan de aktiveres.

Forstå Pull-Up-motstander

Før du dykker inn i detaljene til ESP32 pull-up pins, er det viktig å forstå rollen til pull-up motstander i en krets. Når en digital inngangspinne blir stående flytende (ikke koblet til noen spenningskilde), kan den lese tilfeldige verdier, noe som gjør det vanskelig å bestemme dets logiske nivå.

For å unngå dette problemet er en pull-up motstand koblet mellom inngangspinnen og en spenningskilde (typisk Vcc) for å sikre at inngangen leser en høy (logisk 1) tilstand som standard. Når inngangen er koblet til et lavt (logisk 0) signal, trekker motstanden inngangen ned til bakken, slik at inngangen kan lese en lav tilstand.







Innebygde Pull-Up Pins på ESP32

ESP32-mikrokontrolleren har 34 generelle inngangs-/utgangspinner (GPIO), som kan konfigureres som enten digitale eller analoge pinner. Blant disse 34 pinnene har noen pinner innebygde pull-up motstander som kan aktiveres av programvare.



Følgende tabell viser pinnene på ESP32 som har innebygde pull-up motstander:



PIN-kode Pin navn Innebygd Pull-Up Resistor
0 GPIO0 Ja
2 GPIO2 Ja
4 GPIO4 Ja
5 GPIO5 Ja
12 GPIO12 Ja
1. 3 GPIO13 Ja
14 GPIO14 Ja
femten GPIO15 Ja
25 GPIO25 Ja
26 GPIO26 Ja
27 GPIO27 Ja
32 GPIO32 Ja
33 GPIO33 Ja
3. 4 GPIO34 Nei
35 GPIO35 Nei
36 GPIO36 Nei
39 GPIO39 Nei

Som du kan se, har de fleste digitale pinnene på ESP32 innebygde pull-up motstander. Imidlertid har ikke alle pinner denne funksjonen. Pinne 34, 35, 36 og 39 har ikke innebygde pull-up motstander.





Merk: I ESP32 er integrerte pull-up og pull-down motstander kun tilgjengelig i pinner som støtter både inngang og utgang. GPIOer 34-39 , som er begrenset til kun inngang, har ikke disse motstandene innebygd.



Sjekk hele ESP32 Pinout-referanse .

Aktiverer Pull-Up Resistors på ESP32

For å aktivere pull-up-motstanden på en ESP32-pinne, kan du bruke gpio_set_pull_mode() funksjon levert av ESP-IDF-rammeverket.

Denne funksjonen tar to argumenter:

  • GPIO-pinnummeret
  • Pull-up-modusen

Pull-up-modusen kan være enten GPIO_PULLUP_ENABLE eller GPIO_PULLUP_DISABLE . Her er en eksempelkode som aktiverer pull-up-motstanden på GPIO2:

#include 'driver/gpio.h'

tomrom enable_pull_up ( ) {

gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;

}

pin-modus ( 5 , INPUT_PULLUP ) ;

Det er viktig å merke seg at aktivering av pull-up-motstanden på en pinne vil påvirke dens oppførsel når pinnen brukes som en utgang. I dette tilfellet vil pull-up-motstanden fungere som en svak strømkilde og kan påvirke utgangsspenningsnivået.

Alternativt kan vi også aktivere interne pull-ups på ESP32 ved å bruke pinMode() Arduino funksjon.

pin-modus ( 5 , INPUT_PULLUP ) ;

Koden ovenfor vil aktivere den interne pull-up motstanden på pinne 5 . På samme måte kan du aktivere den interne nedtrekksmotstanden ved å spesifisere modusen INPUT_PULLDOWN .

Konklusjon

Pull-up-motstander er essensielle komponenter i digitale kretser, og ESP32-mikrokontrolleren har innebygde pull-up-motstander på de fleste av sine digitale pinner. Aktivering av disse motstandene kan sikre stabile logiske nivåer og unngå flytende inngangsproblemer. Det er imidlertid viktig å merke seg at ikke alle pinner på ESP32 har innebygde pull-up motstander, så det er viktig å sjekke ESP32 pinout eller dataark før du designer en krets. I tillegg kan aktivering av pull-up-motstanden påvirke oppførselen til pinnen når den brukes som en utgang.