Növeljük a teljesítményt!
A Raspberry Pi számítógép egyik kiemelkedő képessége a fizikai világgal való kapcsolattartás lehetősége. Ezt a kétirányú kommunikációs lehetőséget a Pi a GPIO portján keresztül valósítja meg.
A szabadon programozható ki- illetve bemenetek, az I2C, az SPI, az RX/TX tüskék azonban két figyelmen kívül nem hagyható tulajdonsággal bírnak.
Az egyik, hogy a tervezők által bevallott olcsóságra való törekvés miatt nem alkalmaztak semmilyen leválasztó, a gép processzorát védő áramkört, illetve, hogy az un. meghajtó képességük, azaz, hogy mekkora teljesítményt szolgáltatnak, nagyon alacsony.
Ez utóbbi paraméter azt jelenti, hogy pl. egy digitális kimenetként alkalmazott tüske 3,3V feszültség mellett maximálisan 16mA-rel terhelhető.
Részletesebben a GPIO paramétereiről ezen a hivatkozáson olvashatunk.
Ez a terhelhetőség a gyakorlatban azt jelenti, hogy kimenetként használva egy GPIO tüskét, arra egy darab LED-et kapcsolhatunk (természetesen korlátozó ellenálláson keresztül).
Ha a portot bemenetként szeretnénk használni, akkor nem léphetjük túl a magas logikai szinthez tartozó 3,3V-ot!
A fenti paramétereket a gyakorlatban valamilyen áram/feszültség (teljesítmény) illesztő áramkörrel tudjuk megoldani, amely kezeli a GPIO csatlakozó másik, korábban említett hiányosságát, a leválasztás problémáját.
Leválasztó, illesztő áramkört a Raspberry-hez nagyon sokfélét lehet tervezni, építeni, a kiválasztott megoldást általában a működtetendő eszköz teljesítmény igénye (áram, illetve feszültség szintje), illetve a fogyasztás ohmos, induktív, vagy kapacitív jellege határozza meg.
Első példánkban egy kisméretű hűtőventilátort fogunk a Pi kimenetére kapcsolni, aminek adatlapján azt olvashatjuk, hogy a teljesítménye 1,14W. Tekintettel arra, hogy a ventilátort 5V-ról szeretnénk működtetni, az ehhez tartozó áramerősség 228 mA lesz. Mind a két érték meghaladja a Pi kimenetének 3,3V/16mA-es határértékeit, így valamilyen illesztő áramkört kell alkalmaznunk. Erre a feladatra tökéletesen alkalmas egy megfelelő áramterhelhetőségű tranzisztor.
1. Illesztés tranzisztorral
A tranzisztor háromrétegű félvezető eszköz, amelyet túlnyomórészt alacsony értékű villamos jelek erősítésére, továbbá jelek kapcsolására alkalmaznak. A három réteg kémiailag eltérő adalékolású (szennyezésű) germánium (régebben) vagy manapság inkább szilicium kristály, amiből két p-n átmenetet képeznek (bipoláris tranzisztor). A tranzisztor a modern elektronika alapeleme, gyártják önálló alkatrészként és integrált áramkörök alkotóelemeiként is.
Megvalósított mintakapcsolásunkban egy BC182-es általános célú, kisteljesítményű, un. n-p-n tranzisztort használunk, aminek kollektor kivezetése és az 5V-os pozitív tápfeszültség csatlakozó közé kapcsoljuk a ventilátort. A tranzisztort kapcsolóként fogjuk alkalmazni, aminek un. bázis elektródájára kötjük a megfelelő GPIO portot, amit a programunkban kimenetként állítunk be. Amennyiben a bázisra logikai magas szint jut, a tranzisztor kollektor-emitter körén áram folyik, ami működteti a ventilátort. Ha a bementre alacsony logikai szint kerül, a kollektor-emitter kör megszakad, a ventilátor megáll.
A kapcsolás az alábbi ábrán látható:
Az ábrán látható védődióda feladata, hogy a ki- illetve bekapcsoláskor a ventilátor kimenetén keletkező esetleges önindukciós impulzusoktól a tranzisztort megvédje.
A második ábrán a kapcsolás breadboard-on elkészített változata látható, kiegészítve a működtetéshez (ki-, bekapcsolás) szükséges nyomógomb áramkörével.
A kapcsolás működtetésére alkalmazhatjuk a már korábban megismert váltó-gombos (toggle) programot:
A programot mindig az adott kapcsolásnak megfelelően kell paraméterezni, ha a fenti bekötést alkalmazzuk, akkor a gombot kiolvasó bemenetet a 21-es, a ventilátort kapcsoló kimenetet pedig a 17-es GPIO porthoz kell rendelni.
A tranzisztoros megoldás a korábban említett két problémából (illesztés, leválasztás) csak az elsőt oldja meg maradéktalanul, a leválasztást sajnos nem.
Ha azt szeretnénk, hogy a működtetett berendezés teljesen izoláltan (galvanikusan leválasztva) működjön a Raspberry-től, akkor erre az egyik lehetséges megoldás a relé alkalmazása.
2. Illesztés relével
A relé (vagy jelfogó) elektromos áram mágneses hatására elektromos érintkezőket működtető kapcsolóelem. A vezérlő feszültség jellemzően nagyságrendekkel kisebb (lehet), mint a kapcsolt oldali feszültség. Relé segítségével pl. könnyedén kapcsolhatunk az iparban széles körben elterjedt 24V-os (AC/DC) berendezéseket.
Előnye, hogy a kapcsoló és a kapcsolt áramkör teljesen elválasztható, hátránya a mechanikus megoldásból következik, a kapcsolási idő, illetve az élettartam.
A relét általában nem közvetlenül, hanem egy, az előbbiekben megismert tranzisztoros kapcsolással illesztjük a Raspberry GPIO portjához:
Relés kapcsolásoknál mindig alkalmazzuk a fordított polaritással bekötött védődiódát a tranziens önindukciós impulzusok kivédésére.
Az ábrán egy ún. morze érintkezős relé kialakítás látható, ami azt jelenti, hogy az elektromágnes egy váltókapcsolót működtet. Ebben az esetben vezérlés nélkül a COMM (közös) pontra kapcsolt jel az NC (normally closed, alaphelyzetben zárt) kimenetre kerül, míg a működtetés alatt az érintkező átvált, és a jelet az NO (normally opened, alaphelyzetben nyitott) kimenetre irányítja.
A kapcsolás segítségével tudunk pl. nagyobb áramú LED-eket, izzólámpákat, vagy motorokat ki-, illetve bekapcsolni.
A relék kialakítása teljesítménytől, geometriai mérettől, az érintkezők számától függően nagyon változatos lehet. Mi a példánkban a kisméretű, 5V-os működtető feszültségű, bredboard-ba csatlakoztatható ZETTLER gyártmányú relét használtuk.
A típusnak, ahogy az ábrán látható, két morze érintkezője van, így megoldható a működtetés mellett egy LED-es visszajelző áramkör kialakítása is.
A fenti kapcsolás megvalósítása breadboard-on:
A relé elhelyezése a breadboard-ban (felülről nézve):
A kapcsolást működtető program: