Használjunk szenzorokat!
A Raspberry Pi GPIO portjára négy különböző kommunikációs szabvány szerinti jel kapcsolható a hagyományos digitális alacsony és magas szinteken kívül. Ami „hiányzik”, az az analóg jelek közvetlen beolvasásának lehetősége. Ezt a „hiányosságot” könnyű áthidalni olcsó, pontos AD konverterekkel. A probléma azonban az, hogy a scratch 3 környezet nem támogatja az ilyen típusú áramkörök kiolvasását.
Ha az előbbiek ellenére pl. egy analóg fényérzékelőt szeretnénk a Raspberry Pi GPIO portjához kapcsolni, akkor egy speciális áramkört kell használnunk, az ún. komparátort.
Hasonlítsunk össze!
A komparátor tulajdonképpen egy összehasonlító áramkör. A két bemenetére érkező jelszintet hasonlítja össze, és amennyiben az egyik jelszint magasabb mint az úgynevezett referencia érték, akkor a kimenet billen. A referencia értéket állíthatóvá tehetjük, így szabadon meghatározható, hogy a kimeneten a „billenés” pontosan mikor történjen meg. A gyakorlatban az ilyen áramköröket műveleti erősítőkkel lehet a legegyszerűbben megoldani. Ezeknek a kapcsolásoknak alapból két bemenetük és egy kimenetük van, általában integrált áramköri kivitelben. Ez azt jelenti, hogy a komplett áramkör egy plasztik tokban helyezkedik el, általában nem is egy példányban. A műveleti erősítők leggyakrabban szimmetrikus tápfeszültség ellátást igényelnek, ami bizonyos esetekben problémát jelenthet. Például, hogyha a Raspberry Pi-hez szeretnénk illeszteni az áramkört lehetőleg úgy, hogy ne legyen szükség bonyolult, külső tápegységre.
Ezt a problémát egy megfelelően választott műveleti erősítővel küszöbölhetjük ki. Ilyen áramkör pl. az LM358.
Mit tud az LM358 műveleti erősítő?
Az LM358 egy alacsony fogyasztású, könnyen használható kétcsatornás áramkör, aminek csak egy, szimpla tápfeszültségre van szüksége a működéshez a 3-32V-os tartományban. A „kétcsatornás” kifejezés azt jelenti, hogy az áramkörből egy8 kivezetésű (lábú) tokban két példány működik.
Az ábrán jól látható, hogy a két, egymástól teljesen független erősítő áramkörnek csak a két-két bemenete, egy-egy kimenete és a közös tápfeszültség lábai vannak kivezetve. Minden egyéb funkciót a tokozáson belül oldottak meg. Az áramkör legfőbb jellemzői:
- két, független működésű műveleti erősítő belső frekvencia kompenzálással
- nagy feszültségerősítés (100dB)
- nagy sávszélesség (1MHz)
- széles tápfeszültség tartomány, (3V-32V, szimmetrikus, aszimmetrikus)
- nagyon alacsony áramfelvétel (~ 500µA)
Egy lehetséges alkalmazás – alkonykapcsoló
Ha olyan áramkörre van szükségünk, ami egy bizonyos fényerőszint alatt bekapcsolja a kültéri világítást, akkor a legjobb választás az LM358.
A megoldás elvi kapcsolási rajzát az alábbi ábrán láthatjuk:
A műveleti erősítő két bemenetére két osztóáramkör csatlakozik. Az egyik egy potenciométer, ami az úgynevezett invertáló bemenetre kapcsolódik (2). Az erre a bemenetre érkező jel fázisfordítással jelenik meg a kimeneten. A másik bemenet az úgynevezett nem-invertáló, ide az R3 és a fényerő-függő ellenállás alkotta osztó kimenete csatlakozik (3). A VR1 potméterrel be tudjuk állítani azt a fényerősség (feszültség) szintet, amikor az R3-LDR osztó kimenete átlépi az un. küszöbszintet. Ilyenkor a műveleti erősítő, a kimenetére (1) kötött ellenálláson keresztül kinyitja a Q1 tranzisztort, és a kollektor körbe kapcsolt LED diódán áram folyik, így az világítani fog.
Ha a fényerősség emelkedik, az összehasonlítás eredményeképpen keletkező jel lezárja a tranzisztort, a LED kialszik.
Az előbbiekben említett un. LDR (Light Dependent Resistor) egy fényerősség függő ellenállás. Működését jól leírja másik elnevezése: LightDecreasingResistance, azaz az alkatrész ellenállása csökken a fényerősség növekedésével.
Egy LDR és egy ellenállás segítségével az ábra szerint olyan osztóáramkört készíthetünk, aminek kimenetén a fény csökkenésével arányosan növekszik a feszültség.
Gyakorlati megvalósítás
Az alábbi ábrán a fenti áramkör breadboard-on történő összeállítását láthatjuk:
Az képen jól látható, hogy a LM358-as IC a Raspberry Pi GPIO portjának 2-es, azaz +5V-ot szolgáltató lábáról, míg a működést jelző LED anódja a port 1-es lábáról (3,3V) kapja a tápfeszültséget. Ez azért fontos, mert az áramkör működése során biztosítanunk kell, hogy a port bemeneteként használt tüskére semmilyen körülmények között se kerüljön 3,3V-ot meghaladó feszültség!
A kapcsolás megvalósítása:
Az eredeti kapcsolás tehát az alábbiak szerint módosult:
A tápfeszültségek szétválasztva, illetve a transzisztor kollektor kivezetése a PIN 11-es tüskére kötve.
Ezek után már lehetőségünk van arra, hogy az áramkör jelét a scratch 3 programmal érzékeljük.
A kiolvasást egy nagyon egyszerű programmal oldhatjuk meg:
A 11-es tüskét (GPIO 17) használjuk bemenetnek fel- illetve lehúzó ellenállás nélkül. Az inicializálás során előzőleg ezt a tüskét magas szintre állítjuk, hogy a LED két kivezetése azonos potenciálra kerüljön, azaz teljesen sötét maradjon.
A program működése
Az téma előző fejezete itt található