de Taron Foxworth
Elementele fundamentale ale hardware-ului: cum funcționează rezistențele pull-down și pull-up
Dacă ați conectat vreodată un buton la un Arduino, ați dat peste această diagramă:
La început, acest lucru poate fi confuz. Primele mele gânduri: „De ce am nevoie de un rezistor? Vreau doar să-mi spună dacă butonul este apăsat. ”
După multe lecturi, nu a existat o explicație simplă.
Ce se petrece aici
În acel buton – AKA un comutator – firele sunt formate sub forma unui „H”. Dar mijlocul nu este conectat – sau circuitul nu este conectat – până nu apăsăm butonul.
În realitate, vrem să citim din Arduino a 0
când nimic nu este conectat și a 1
când butonul este apăsat.
Pe Arduino, aceasta se numește ieșire de intrare cu scop general (GPIO).
Deci, putem face așa ceva:
Conectăm pozitiv (5v, 3,3V sau VCC) la partea stângă a circuitului.
Acum, când butonul este apăsat, GPIO va citi un 1
, și totul este bun.
Ei bine, nu. Să aruncăm o privire din nou la Diagrama 2:
Am vrut o 0
când nimic nu este conectat, dar cum poți garanta acest lucru? În prezent, nu există nicio modalitate de a garanta existența GPIO 0
.
Există, de asemenea, frecvențe electromagnetice în aer care ar putea atrage GPIO 0
sau 1
. Ar putea chiar să fluctueze între cei doi! În acest fel, nu putem fi siguri că este un 0
(Sunt atât de rău la jocurile de cuvinte). Acest lucru este, de asemenea, cunoscut sub numele de logică 0
.
O modalitate de a obține un logic 0
este să legați știftul la sol:
Ura! Deci, acum este un zero logic garantat. În timp ce apăsați butonul, va fi 1
acum. Dreapta?
Ei bine, nu.
Tocmai ai creat un scurt circuit. ?
Aici intră rezistorul. Pentru a evita un scurtcircuit, trebuie să adăugăm rezistență circuitului nostru. Rezistorul ține lucrurile sub control.
Electricitatea va lua calea celei mai puțin rezistente. GPIO-ul dvs. va înregistra acum un 1
când butonul este apăsat. Ca astfel:
Woo hoo! Acum lucrăm cu ceva.
Acum, să ne uităm la opusul: rezistențe pull-up. Este același lucru, dar invers. În timp ce butonul nu este apăsat, GPIO va înregistra un 1
. Când ați apăsat butonul, GPIO va fi 0
.
Deși nu este apăsat, avem GPIO conectat la pozitiv (VCC). Deci, orice curent existent va fi tras în sus, astfel încât GPIO să înregistreze o logică 1
.
Este important să rețineți aici că electricitatea vrea întotdeauna să meargă la sol. Deci, atunci când apăsăm butonul, curentul care curge va curge către sol. Astfel, orice curent care ar fi mers la GPIO merge cu el, lăsând GPIO la un nivel logic 0
.
? Sfârșitul.
De ce am scris asta?
m-am alăturat Losant în septembrie 2016 fără experiență hardware. Fiecare kit hardware de pornire vă oferă un buton fără explicații despre acest concept. Sperăm că acest lucru vă ajută să se stingă și becul. ?
Acest lucru a zgâriat doar suprafața. Dacă doriți să adânciți, consultați aceste resurse:
Rezistențe de tragere – learn.sparkfun.com
Un alt lucru de subliniat este că, cu cât este mai mare rezistența la tragere, cu atât știftul trebuie să răspundă la …learn.sparkfun.com
Ador feedback-ul. Deci, vă rog să-mi spuneți dacă acest lucru ar putea fi îmbunătățit. Dacă mi-a lipsit total mingea, să-mi dai de veste! Mi-ar plăcea să o fac mai bună pentru alții.
#Elementele #fundamentale #ale #hardwareului #modul #în #care #funcționează #rezistențele #pulldown #și #pullup
Elementele fundamentale ale hardware-ului: modul în care funcționează rezistențele pull-down și pull-up