3.9. Comutatoare și rezistoare de tragere (pull)¶
Ieșirea GPIO comandă hardware extern. Intrarea GPIO este opusul: camera citește tensiunea de pe un pin și o raportează ca 0 sau 1. Cel mai simplu dispozitiv de intrare este un comutator – iar pentru a-l face citibil în mod fiabil este nevoie de o componentă electronică suplimentară pe lângă comutatorul propriu-zis.
3.9.1. Comutatoare și intrări în aer (floating)¶
Un comutator este un contact mecanic: două bucăți de metal care se ating când comutatorul este închis și se separă când este deschis. Din punct de vedere electric, asta este tot dispozitivul. Nu există nicio sursă de tensiune în interior; un comutator singur oferă doar starea „conectat” sau „deconectat”.
Conectarea unui comutator direct între un pin GPIO și masă înseamnă că pinul este:
La 0 V când comutatorul este închis (acum conectat la masă).
În aer (floating) când comutatorul este deschis (conectat la nimic).
Un pin în aer nu are o tensiune definită. Intrarea citește orice se întâmplă să fie în apropierea sa – diafonie de la semnalele învecinate, zgomot de la alimentare, chiar și electricitatea statică de pe un deget apropiat de fir. value() returnează amestecuri imprevizibile de 0 și 1 de mai multe ori pe secundă.
3.9.2. Rezistoare de ridicare (pull-up) și de coborâre (pull-down)¶
Soluția este un rezistor de tragere: un rezistor de valoare mare (de obicei 10 kΩ până la 100 kΩ) care leagă intrarea de o șină cunoscută atunci când comutatorul este deschis.
Configurațiile cu rezistor de ridicare (stânga) și de coborâre (dreapta) pentru o intrare de comutator.¶
Pull-up. Rezistorul leagă intrarea de șina de alimentare. Când comutatorul este deschis, doar un curent mic trece prin rezistor și pinul citește nivel ridicat. Când comutatorul este închis, scurtcircuitează pinul la masă; pinul citește nivel coborât. Rezistorul limitează curentul care altfel ar circula de la alimentare la masă prin comutatorul închis.
Pull-down. Imaginea în oglindă: rezistorul leagă intrarea de masă, iar comutatorul se conectează la alimentare. Deschis citește nivel coborât, închis citește nivel ridicat.
Pull-up este convenția mai des întâlnită – butoane „active la nivel coborât”. MCU-ul însuși oferă rezistoare integrate de ridicare și de coborâre care pot fi activate cu Pin.PULL_UP sau Pin.PULL_DOWN, eliminând complet rezistorul extern.