3.6. Noțiuni de bază de electronică¶
Pentru a comanda orice element extern de la un pin GPIO este nevoie de un circuit pe partea cealaltă a pinului. Trei idei din electronica de bază – tensiunea, curentul și relația dintre ele prin intermediul unui rezistor – apar în fiecare astfel de circuit.
3.6.1. Tensiune, curent, rezistență¶
Tensiunea (volți, V) este diferența de potențial dintre două puncte ale unui circuit. Linia de alimentare a cipului poate fi la 3,3 V față de masă; un pin GPIO comandat în starea înaltă se află la aceiași 3,3 V.
Curentul (amperi, A, sau miliamperi, mA) este fluxul de sarcină electrică printr-un conductor. Curentul se întoarce întotdeauna de unde a plecat, deci pentru ca un curent să poată circula, circuitul trebuie să formeze o buclă completă, de la alimentare înapoi la masă.
Rezistența (ohmi, Ω) reprezintă cât de mult se opune calea acelui flux. Rolul unui rezistor este de a stabili curentul la o valoare cunoscută, la o tensiune cunoscută.
Legea lui Ohm le leagă pe toate:
Legea lui Ohm în cele trei forme ale sale.¶
În cuvinte: tensiunea pe un rezistor este egală cu curentul care îl străbate înmulțit cu rezistența. Cunoscând oricare două dintre cele trei mărimi, a treia se obține prin algebră.
3.6.2. Diode¶
O diodă este o componentă cu două terminale care conduce curentul într-o singură direcție (de la anod la catod) și îl blochează în cealaltă.
O diodă conduce numai dinspre anod spre catod. Un LED este o diodă care emite lumină în timp ce conduce.¶
O diodă are, de asemenea, o tensiune directă (Vf) – căderea de tensiune pe ea atunci când curentul circulă în direcția de conducție. Odată ce tensiunea aplicată atinge Vf, dioda se comportă aproximativ ca un conductor; sub această valoare nu circulă aproape niciun curent.
3.6.3. LED-uri¶
O diodă electroluminescentă (LED) este o diodă care își transformă curentul de conducție în lumină vizibilă sau infraroșie. Luminozitatea variază proporțional cu curentul; culoarea este determinată de compoziția chimică a LED-ului, nu de circuitul de comandă.
Tensiuni directe tipice ale LED-urilor:
Roșu: 1,8 – 2,2 V
Verde sau galben: 2,0 – 2,4 V
Albastru sau alb: 2,8 – 3,4 V
Un curent de funcționare util pentru un LED indicator este de 5 – 20 mA. Curenții mai mari produc o luminozitate mai mare, dar scurtează durata de viață a LED-ului și pot depăși limita de comandă a pinului GPIO.
3.6.4. Rezistorul de limitare a curentului¶
Conectarea unui LED direct între un pin GPIO și masă ar permite circulația unui curent aproape nelimitat: odată atinsă tensiunea directă, LED-ul se comportă ca un scurtcircuit. Un rezistor serie între pin și LED stabilește curentul la o valoare sigură.
Un rezistor serie stabilește curentul prin LED.¶
Tensiunea de alimentare se împarte între rezistor și LED: LED-ul preia tensiunea sa directă, iar rezistorul preia restul. Conform legii lui Ohm:
R = (Vsupply - Vf) / If
Pentru un LED roșu (Vf ≈ 2.0 V) comandat de la un pin GPIO de 3,3 V la 10 mA:
R = (3.3 - 2.0) / 0.010 = 130 Ω
În practică, alegeți cea mai apropiată valoare standard mai mare (150 Ω sau 220 Ω). Rezultatul este un LED puțin mai slab luminos, dar cu o marjă de siguranță mai sănătoasă. Folosiți 200 – 470 Ω ca valoare implicită rezonabilă atunci când luminozitatea exactă nu contează.
3.6.5. De ce contează fiecare element¶
Forma fiecărui circuit de ieșire GPIO decurge din cele patru idei de mai sus:
Tensiunea stabilește energia disponibilă la pin. Un pin GPIO de 3,3 V are 3,3 V de utilizat pe orice este conectat între el și masă.
O diodă (în acest caz, un LED) consumă o parte din acea tensiune sub forma căderii sale directe și refuză să conducă în direcția greșită – ea stabilește în ce direcție și partea fixă.
Un rezistor de limitare a curentului consumă tensiunea rămasă și transformă bugetul rămas într-un curent controlat. Fără el, LED-ul ar absorbi orice curent poate furniza pinul – de obicei suficient pentru a distruge una sau ambele componente.
Legea lui Ohm este cea care face calculabilă valoarea rezistorului: cunoscând tensiunea rămasă și curentul dorit,
Rrezultă prin algebră.
Tensiunea, curentul, rezistența, diodele și o singură ecuație rearanjată sunt suficiente pentru a proiecta orice etaj de ieșire GPIO de bază.
Aceleași componente s-au ascuns în spatele LED-ului de pe placă tot timpul. machine.LED("LED_RED").on() aprinde LED-ul deoarece placa camerei oferă deja tot ce este în jurul lui – rezistorul de limitare a curentului, conductorul spre masă, LED-ul însuși – iar clasa doar comută GPIO-ul din siliciu aflat în spatele lor. Imaginea „o singură linie aprinde un LED” este adevărată; este doar un mod scurt de a spune „comandă acel circuit”. Înlăturați abstractizarea și exact circuitul de mai sus este ceea ce rămâne.
machine.Pin este același siliciu, expus fără componentele din jur. Scriptul controlează direct tensiunea pinului; dumneavoastră furnizați rezistorul (dimensionat prin legea lui Ohm), LED-ul și calea de întoarcere la masă. Aceleași patru idei revin, în combinații ușor diferite, în spatele eliminării rebound-ului la comutatoare, al filtrării PWM și al comenzii motoarelor.