Välj land och språk
Språk


INNEHÅLL
Ett pull-up-motstånd är ofta användbart för att hålla en ingång på en känd nivå när ingen insignal finns. Detta görs genom att ansluta ett pull-up-motstånd mellan ingången och en matningsspänning, exempelvis +5V i bilden ovan för ett lämpligt 5V-system. För ESP32 ska pull-up anslutas till 3.3V, inte 5V. Ingången läses då som logisk 1, eller hög.
Välj pull-up-motståndet utifrån utgångens tillåtna sänkström och VOL vid låg nivå samt ingångens läckström, VIH och signalens stigtid. Strömgränsen sätter en nedre resistansgräns; läckström och stigtid kan sätta en övre gräns. 10k ohm är ett vanligt utgångsvärde för långsamma knappingångar, men är inte ett universellt värde. Den äldre formelillustrationen nedan får inte ensam användas för dimensionering.

Vsupply är matningsspänningen. Vh(min), även kallad VIH, är den lägsta spänning som garanterat läses som hög. Läs den tillåtna sänkströmmen tillsammans med utgångens VOL-specifikation i databladet; VIH är inte spänningsfallet över en aktivt låg utgång.
Pull-down har motsatt funktion till pull-up: att dra ned spänningen. Som bilden ovan visar ansluts ett motstånd mellan ingången och jord. Det gör att ingången läses som logisk 0, eller låg.
Pull-down-motståndet måste hålla ingången under VIL trots läckström och samtidigt undvika att överbelasta en aktivt hög utgång. Läckströmmen sätter vanligtvis en övre resistansgräns, medan tillåten utgångsström kan sätta en nedre gräns. 10k ohm är ett vanligt utgångsvärde för långsamma knappingångar; kontrollera datablad och signalhastighet. Den äldre formelillustrationen nedan får inte ensam användas för dimensionering.

Vl(max), även kallad VIL, är den högsta spänning som garanterat läses som låg. Skilj mellan ingångens läckström och strömmen som en aktiv utgång kan leverera (source); de används för olika dimensioneringsgränser.
Exemplet är implementerat på en ESP32 med MicroPython. Läs mer om att installera MicroPython på ESP32 i denna artikel: MicroPython
Exemplet har ett motstånd i serie med en LED på stift 4. På Pin23 läser vi om nivån är 0 eller 1. Exemplet visar att utan ett motstånd som drar till logisk 0 (pull-down), eller ett motstånd som drar till logisk 1 (pull-up), kan ingången flyta mellan 0 och 1. Videon nedan visar detta.
from machine import Pin
import time
p4=Pin(4,Pin.OUT)
p23=Pin(23,Pin.IN)
print(p23.value())
while 1:
print(p23.value())
if p23.value() == 1:
p4.value(1)
else:
p4.value(0)
time.sleep_ms(100)
Här är ett exempel med ett pull-down-motstånd och en brytare för att förhindra flytande eller oönskade avläsningar på Pin23. Diagrammet nedan visar uppkopplingen på kopplingsdäcket. Pull-down-motståndet är R2 i detta fall. Videon visar hur vi med brytaren SW1 kan styra avläsningen av Pin23.

Diagrammet nedan visar motsatsen: ett pull-up-motstånd R4 som håller ingången hög så att den läser logisk 1. När brytaren SW2 trycks in dras ingången till logisk 0 och lysdioden släcks.

Följande material användes för testerna ovan. Allt finns att köpa här på ebits.dk. Obs: tryckknapp, LED och Dupont-kablar finns i komponentmegakitet längst ned i tabellen.
|
Antal |
Komponent |
Länk |
|
1 |
ESP-WROOM-32 |
|
|
1 |
Blå LED |
|
|
1 |
270 ohm motstånd |
|
|
1 |
2K ohm motstånd |
|
|
1 |
Dupont-kablar |
120 st. Dupont-kablar, 10cm eller 20cm långa, 3 typer – ebits.dk |
|
1 |
Kopplingsdäck |
|
|
Delvis samlad lösning |
||
|
1 |
Tryckknapp, LED och Dupont-kablar |
Komponentmegakit – ebits.dk — aktuellt utbud; kontrollera kompatibilitet |
Språk