Pull-up/pull-down

Pull-up (en pull-down) is het elektrisch HOOG (1) of LAAG (0) maken van een logisch signaal dat in rust is. Om een logisch signaal HOOG of LAAG te maken wordt veelal een fysieke weerstand gebruikt. Bij een pull-up weerstand wordt een lijn door middel van een weerstand verbonden met de VCC, VDD, V+, of hoe je het ook wilt noemen, met de + lijn van de voeding dus. Hierdoor zal de lijn als deze in rust is een HOOG potentiaal hebben.

In een digitaal circuit zijn de waarden altijd LAAG (0) of HOOG (1). Soms moeten we de status wijzigen van 0 in een 1 of van 1 in een 0, maar het kan niet blijven zweven (geen 0 en geen 1).

Dus in elk geval wordt de status gewijzigd zoals hieronder wordt weergegeven.

Als we nu de hoge en lage waarde vervangen door de werkelijke spanningswaarde, dan is de hoge waarde het logische niveau HOOG, laten we zeggen 3,3V, de HOOG waarde van de GPIO pin van de Raspberry Pi. En is de lage waarde LAAG de aarde of 0V.

Een pull-up-weerstand wordt gebruikt om de ‘status in rust’ van de digitale pin op HOOG of op het logische niveau te zetten (in de bovenstaande afbeelding is dit 3,3V).

Een pull-down-weerstand doet precies het tegenovergestelde, het maakt de ‘status in rust’ van de digitale pin LAAG (0V).

Waarom hebben we die weerstanden nodig?
Zouden we in plaats van weerstanden de digitale signalen rechtstreeks kunnen verbinden met de 3,3V spanning of met de aarde zoals in de onderstaande afbeelding? Spanning rechtstreeks op een logische ingang plaatsen is niet verstandig en wordt sterk afgeraden.

Sluit nooit direct een spanning op een GPIO pin aan

Omdat het digitale circuit zoals de GPIO poort van de Raspberry Pi met een hele lage stroom werkt, is het geen goede keuze om de logische pinnen rechtstreeks op de voedingsspanning of de aarde aan te sluiten. De reden hiervan is dat een directe verbinding uiteindelijk de stroomsterkte verhoogt (!), net als de kortsluiting waarbij een theoretisch oneindige (!) stroom ontstaat en het gevoelige logische circuit beschadigen zal. 

Om de stroom te regelen, hebben we weerstanden nodig

Wat is weerstand?
Een weerstanden is een stroom beperkend component dat veel wordt gebruikt in elektronische schakelingen. Het is een component dat weerstand biedt wanneer er stroom doorheen gaat. Er zijn veel verschillende soorten weerstanden. Weerstand wordt gemeten in Ohm met het teken Ω.

Als duimregel gebruiken we: Hoe hoger de weerstand, hoe lager de stroom bij gelijkblijvende spanning. Je kunt de stroom uitrekenen met de wet van Ohm: I=U/R, of wel stroom = spanning gedeeld door de weerstand.

Een pull-up-weerstand maakt een gecontroleerde stroom mogelijk van de voedingsspanningsbron naar de digitale ingangspinnen, waar de pull-down-weerstand de stroom van de digitale ingang naar de aarde effectief kan regelen. Tegelijkertijd houden beide weerstanden, de pull-down- en de pull-up-weerstanden de digitale status LAAG of HOOG.

De meest populaire pull-up/-down weerstand in Raspberry Pi projecten heeft doorgaans een waarde van 10Kohm.

bruin = 1, zwart = 0, oranje = x103 = 10000 ohm= 10Kohm

Waar en hoe gebruiken we pull-up en pull-down weerstanden
Door te verwijzen naar de bovenstaande afbeelding van de Raspberry Pi, waar de digitale logische ingangspinnen zijn kortgesloten met de aarde en 3,3V (VCC), kunnen we de verbinding wijzigen met behulp van pull-up en pull-down weerstanden.

Stel dat we ‘in rust’ een logische status nodig hebben en de status willen veranderen door een interactie of externe randapparatuur, dan gebruiken we pull-up of pull-down weerstanden.

Pull-up weerstanden
Als we de status HOOG ‘in rust’ nodig hebben en de status naar LAAG willen veranderen door een externe interactie, kunnen we de Pull-up-weerstand gebruiken zoals de afbeelding hieronder.

Note: De Raspberry Pi kan zelf de voedingsbron (3,3V) zijn.

De digitale logische headerpin (GPIO) kan worden omgeschakeld van logisch 1 of HOOG naar logisch 0 of LAAG met behulp van de schakelaar. De weerstand werkt dan als een pull-up-weerstand. Het is verbonden met de logische spanning van de voedingsbron van 3,3V. Dus als de schakelaar niet wordt ingedrukt, heeft de logische headerpin altijd een spanning van 3,3V en is de pin altijd HOOG totdat de schakelaar wordt ingedrukt en de pin wordt kortgesloten naar aarde waardoor deze logisch LAAG wordt.

Zoals aangegeven kan de headerpin niet direct worden aangesloten naar de ground of de Vcc (3,3V) omdat dit uiteindelijk het circuit zal beschadigen als gevolg van kortsluiting.

Het circuit wordt opnieuw kortgesloten naar de ground met behulp van de gesloten schakelaar. Maar kijk goed, het wordt niet echt kortgesloten omdat, volgens de wet van Ohm, vanwege de pull-up-weerstand een kleine hoeveelheid stroom van de bron naar de weerstanden en de schakelaar zal stromen en vervolgens de grond bereikt. Bij 3,3V en een weerstand van 10kOhm is dit I=U/R=3,3V/10000Ohm=0,33 milliampère.

Als we deze pull-up-weerstand niet gebruiken, wordt de uitgang direct kortgesloten naar de aarde wanneer de schakelaar wordt ingedrukt. Aan de andere kant, wanneer de schakelaar open is, zal de logische niveaupin zweven en kan dit ongewenst zijn.

Pull-down weerstand
Hetzelfde geldt voor de pull-down-weerstand. Bekijk de onderstaande afbeelding goed met de pull-down-weerstand. Er zijn een paar kenmerkende wijzigingen ten opzichte van het pull-up circuit.

Note: De Raspberry Pi kan zelf de voedingsbron (3,3V) zijn.

In de bovenstaande afbeelding gebeurt precies het tegenovergestelde. De pull-down weerstand is verbonden met de GND (ground) of 0V. Dus de digitale logische niveau-pin is ‘in rust’ 0 totdat de schakelaar wordt ingedrukt en de logische niveau-pin HOOG wordt. In dit geval vloeit de kleine stroompje van de 3,3V-bron naar de GND met behulp van de gesloten schakelaar en pull-down-weerstand, hierdoor wordt voorkomen dat de logische niveau-pin wordt kortgesloten met de 3,3V-bron. De maximale stroom bij 3,3V en een weerstand van 10kOhm is I=U/R=3,3V/10000Ohm=0,33 milliampère.

Dus voor verschillende circuits kunnen we pull-up- en pull-down weerstanden gebruiken. Pull-up/-down komt het meest voor in hardware met eendraadsprotocol systeem, I/O-verbindingen in een microchip, de Raspberry Pi en bijvoorbeeld de Raspberry Pi Pico. Dit geldt zowel voor de CMOS- en TTL-ingangen. Bij deze laatste twee is het spanningsniveau voor ‘HOOG‘ geen 3,3V, maar 5V.

Interne pull-up/-down weerstanden
Naast het toevoegen van een pull-up- of pull-down-weerstand, ondersteunt de microcomputer en -controller interne pull-up-weerstanden voor digitale I/O-pinnen die aanwezig zijn in de microcontroller. Hoewel het in maximale gevallen een zwakke pull-up is, betekent dit dat de stroom erg laag is.

Bij meervoudig signaalgebruik hebben we vaak meer dan 2 of 3 digitale headerpinnen nodig, in dat geval wordt een zgn. weerstandsnetwerk of SIP-weerstanden (Single-inline-Package) gebruikt, zie afbeelding hieronder. Het component is gemakkelijk te integreren en biedt een lager aantal montagepinnen.

Pin 1 (de pin met de zwarte punt) is via de interne weerstanden verbonden, deze pin wordt op Vcc aangesloten voor Pull-Up of op de GND voor Pull-down-doeleinden. Door deze SIP-weerstand te gebruiken, zijn individuele weerstanden niet nodig, waardoor het aantal componenten op het bord of de print worden verminderd. De SIP is verkrijgbaar in verschillende waarden, variërend van een enkele ohm tot kilo-ohm.

Weerstandsnetwerk: 8 Pin 2% tolerantie 2.2Kohm

Have A Nice Day!

1 Trackback / Pingback

  1. Watermeter toevoegen aan Domoticz – Picademie.nl

Reacties zijn gesloten.