Nedenstående diagrammer viser hvor modstanden placeres alt efter om man ønsker at anvende en pull-up eller pull-down modstand. Nedenfor vil der gåes lidt mere i dybden med hver af de to metoder, samt dens udregninger og praktiske eksempler.
INDHOLDSFORTEGNELSE
- 1 PULL-UP & dens anvendelse
- 2 PULL-DOWN & dens anvendelse
- 3 EKSEMPLER PÅ SVÆVENDE INDGANG
- 4 PRAKTISKE EKSEMPLER PÅ LØSNING
- 5 GODE VIDEOER OM PULL-UP OG PULL-DOWN
PULL-UP & dens anvendelse
En pull-up modstand er ofte nyttig hvis man ønsker styre en input-pin til en kendt tilstand, når der ikke er noget input. Dette gøres ved at tilføje en pull-up modstand i serie med en spændingsforsyning, på ovenstående billede eksempelvis +5V. Det vil altså sige at indgangen læses som logisk 1 eller høj.
UDREGNING AF VÆRDI
For at udregne den mindst anvendelige pull-up modstand kan nedenstående formel anvendes. Som udgangspunkt anvendes der i mange tilfælde blot en 10k ohms modstand, da man ved brug af denne har et minimalt strømtræk.
Vsupply er supply spændingen, Vh(min) er minimum spænding registreret som høj(logisk 1). Isink er maksimum strøm sinked af digital pin
PULL-DOWN & dens anvendelse
Pull-down har den modsatte funktion af pull-up, nemlig at trække ned. Her som ovenstående billede illustrerer sættes en modstand i serie med jord/ground. Det resulterer i at indgangen læses som logisk 0 eller lav.
UDREGNING AF VÆRDI
For at udregne den mindst anvendelige pull-down modstand kan nedenstående formel anvendes. Som udgangspunkt anvendes der i mange tilfælde blot en 10k ohms modstand, da man ved brug af denne har et minimalt strømtræk.
Vl(max) er maksimum spænding accepteret as logisk lav(0) og Isource er maksimum strøm sourced af digital pin
EKSEMPLER PÅ SVÆVENDE INDGANG (HI Z)
Eksemplet er implementeret på en ESP32, vha. af MicroPython. For at læse mere om implementering af MicroPython på ESP32, kan du læse følgende artikel: Micropython
Der er i eksemplet en modtand i serie med en LED på pin 4. På Pin23 læser vi så om der er 0 eller 1. Eksemplet går ud på at vise at uden en modstand der trækker til logisk 0(pull down) eller en modstand der trækker til logisk 1(pull up). Risikere man at indgangen står og svæver mellem 0 og 1. Af nedenstående video ses dette illustreret.
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)
PRAKTISKE EKSEMPLER PÅ LØSNING
Et eksempel på pull-down modstand i serie med en switch, for at sikre vi ikke svæver eller får uønskede aflæsninger på Pin23 i dette tilfælde. Nedenstående diagram viser hvordan opstillingen på fumlebræt er lavet. Pull down modstanden er i dette tilfælde R2. Af videoen ses det hvordan vi vha. switchen SW1 kan styre læsningen af Pin23.
Nedenstående diagram viser det modsatte, nemlig en pull up modstand R4, som holder indgangen høj eller med andre ord, sørger for at indgangen læser et logisk 1. Ved at trykke på switchen SW2, trækkes det til logisk 0 og LED'en vil dermed slukke.
SPECIFIKATIONER
For at kunne udføre ovenstående tests, er følgende materialer brugt. Det kan alt sammen købes her på ebits.dk. OBS. trykknap, LED og dupont-kabler kan købes i Komponent mega-kittet nederst i tabellen.
Antal |
Komponent |
Link |
1 |
ESP-WROOM-32 |
|
1 |
Blå LED |
|
1 |
270 ohm modstand |
|
1 |
2K ohm modstand |
|
1 |
Dupont kabler |
120stk Dupont kabler 10cm eller 20cm længde, 3 typer – ebits.dk |
1 |
Fumlebræt |
|
Delvis samlet løsning |
||
1 |
Trykknap, LED og dupont-kabler |