3.6. Elektronikai alapok¶
Bármilyen külső eszköz GPIO lábról történő meghajtásához áramkörre van szükség a láb másik oldalán. Az alapvető elektronika három fogalma – a feszültség, az áram, és a kettő közötti összefüggés egy ellenálláson keresztül – minden ilyen áramkörben megjelenik.
3.6.1. Feszültség, áram, ellenállás¶
A feszültség (volt, V) az áramkör két pontja közötti potenciálkülönbség. A chip tápsínje a földhöz képest például 3,3 V-on lehet; egy magasra hajtott GPIO láb ugyanazon a 3,3 V-on van.
Az áram (amper, A, vagy milliamper, mA) a töltés áramlása egy vezetéken keresztül. Az áram mindig oda tér vissza, ahonnan jött, ezért bármilyen áram csak akkor folyhat, ha az áramkör teljes hurkot alkot a táptól vissza a földig.
Az ellenállás (ohm, Ω) azt fejezi ki, mennyire akadályozza a vezeték ezt az áramlást. Egy ellenállás célja, hogy ismert feszültség mellett ismert értékre állítsa be az áramot.
Az Ohm-törvény köti össze őket:
Az Ohm-törvény három alakja.¶
Szavakkal: egy ellenálláson eső feszültség egyenlő a rajta átfolyó áram és az ellenállás szorzatával. Ha a három közül bármelyik kettőt ismerjük, a harmadik algebrai úton adódik.
3.6.2. Diódák¶
A dióda egy kétkivezetéses alkatrész, amely az áramot az egyik irányban (az anód felől a katód felé) vezeti, a másik irányban pedig blokkolja.
A dióda kizárólag az anódtól a katód felé vezet. A LED olyan dióda, amely vezetés közben fényt bocsát ki.¶
A diódának nyitóirányú feszültsége (Vf) is van – ez a rajta eső feszültség, amikor az áram a vezető irányban folyik. Amint az alkalmazott feszültség eléri a Vf értéket, a dióda nagyjából úgy viselkedik, mint egy vezeték; ez alatt szinte semmi áram nem folyik.
3.6.3. LED-ek¶
A fénykibocsátó dióda (LED) olyan dióda, amely a vezetési áramát látható vagy infravörös fénnyé alakítja. A fényerő az árammal arányosan változik; a színt a LED kémiai összetétele határozza meg, nem a meghajtás.
Tipikus LED nyitóirányú feszültségek:
Vörös: 1,8 – 2,2 V
Zöld vagy sárga: 2,0 – 2,4 V
Kék vagy fehér: 2,8 – 3,4 V
Egy jelző LED esetén a hasznos üzemi áram 5 – 20 mA. A nagyobb áramok fényesebbek, de rövidítik a LED élettartamát, és meghaladhatják a GPIO láb meghajtási korlátját.
3.6.4. Az áramkorlátozó ellenállás¶
Ha egy LED-et közvetlenül egy GPIO láb és a föld közé kötnénk, szinte korlátlan áram folyna: amint elérjük a nyitóirányú feszültséget, a LED gyakorlatilag rövidzárként viselkedik. A láb és a LED közé iktatott soros ellenállás biztonságos értékre állítja be az áramot.
Egy soros ellenállás beállítja a LED áramát.¶
A tápfeszültség megoszlik az ellenállás és a LED között: a LED-en a nyitóirányú feszültsége esik, az ellenállás pedig a maradékot veszi fel. Az Ohm-törvény szerint:
R = (Vsupply - Vf) / If
Egy vörös LED esetén (Vf ≈ 2.0 V), amelyet egy 3,3 V-os GPIO lábról 10 mA árammal hajtunk meg:
R = (3.3 - 2.0) / 0.010 = 130 Ω
A gyakorlatban válaszd a legközelebbi nagyobb szabványos értéket (150 Ω vagy 220 Ω). Az eredmény egy kissé halványabb LED, egészségesebb biztonsági tartalékkal. Ha a pontos fényerő nem számít, a 200 – 470 Ω jó alapértelmezett választás.
3.6.5. Miért fontos minden egyes elem¶
Minden GPIO kimeneti áramkör alakja a fenti négy gondolatból következik:
A feszültség határozza meg a lábnál rendelkezésre álló energiát. Egy 3,3 V-os GPIO 3,3 V-tal gazdálkodhat azon keresztül, ami a láb és a föld közé van bekötve.
Egy dióda (ebben az esetben egy LED) ennek a feszültségnek egy részét felemészti a nyitóirányú esése formájában, és nem hajlandó rossz irányban vezetni – ez határozza meg a melyik irányt és a rögzített részt.
Egy áramkorlátozó ellenállás felemészti a maradék feszültséget, és a fennmaradó keretet szabályozott árammá alakítja. Nélküle a LED annyi áramot venne fel, amennyit a láb képes szolgáltatni – ami általában elég ahhoz, hogy az egyiket vagy mindkettőt tönkretegye.
Az Ohm-törvény teszi kiszámíthatóvá az ellenállás értékét: adott maradék feszültség és kívánt áram mellett
Ralgebrai úton adódik.
A feszültség, az áram, az ellenállás, a diódák és egy átrendezett egyenlet elegendő minden alapvető GPIO kimeneti fokozat megtervezéséhez.
Ugyanezek az alkatrészek mindvégig a beépített LED mögött rejtőztek. A machine.LED("LED_RED").on() azért világítja meg a LED-et, mert a kamera kártyája már mindent biztosít körülötte – az áramkorlátozó ellenállást, a földhöz vezető vezetéket, magát a LED-et –, az osztály pedig csupán a mögöttük lévő szilícium GPIO-ját kapcsolgatja. Az „egy sor felkapcsol egy LED-et” nézet igaz; ez csak egy rövid mód annak kimondására, hogy „hajtsd meg azt az áramkört”. Ha lefejtjük az absztrakciót, pontosan a fenti áramkör marad meg.
A machine.Pin ugyanaz a szilícium, csak a körülvevő alkatrészek nélkül kitéve. A szkript közvetlenül vezérli a láb feszültségét; az ellenállást (az Ohm-törvénnyel méretezve), a LED-et és a földhöz vezető visszatérő utat neked kell biztosítanod. Ugyanaz a négy gondolat tér vissza, kissé eltérő kombinációkban, a kapcsolók pergésmentesítése, a PWM-szűrés és a motormeghajtás mögött is.