User manual

3.1.1 Így működik
Az első sorok már ismertek, ezek importálják az RPi.GPIO könyvtárat a GPIO-portok
vezérléséhez és a
time könyvtárat az időkésleltetéshez. Ezután az előző példához hasonlóan a
GPIO-portok számozása a BCM üzemmódra állítódik.
rot = 0; gelb = 1; gruen = 2 Ezek a sorok a három változót rot (piros), gelb (sárga) és gruen
(zöld) határozzák meg a három LED-re. Ezáltal nem kell megjegyeznünk a programban
számokat vagy GPIO-portokat, hanem a LED-eket egyszerűen a színük alapján lehet
vezérelni.
Ampel=[4,18,23] A három LED vezérléséhez egy lista készül, amely a GPIO-számokat abban a
sorrendben tartalmazzák, ahogyan a LED-ek elhelyezkednek a dugasztáblán. Mivel a GPIO-
portok a programnak csak ezen a helyén szerepelnek, a programot nagyon egyszerűen át lehet
alakítani, ha más GPIO- portokat akar használni.
A három alkalmazott GPIO-portot egymás után inicializálja kimenetnek. Eközben nem
alkalmazunk GPIO-portszámokat, hanem az előzőleg definiált listát. Egy listán belül az egyes
elemeket számok jelölik a 0-val kezdődően.
Ampel[0] tehát az első elem, jelen esetben
4. A rot, gelb és gruen változó a 0, 1 és 2számot tartalmazzák, amelyekre a lista elemeinek az
indexéül van szükség. Ilymódon a GPIO-portokat színekkel lehet megcímezni:
Ampel[rot] megfelel a 4 GPIO-portnak a piros LED-del.
Ampel[gelb] megfelel a 18 GPIO-portnak a sárga LED-del.
Ampel[gruen] megfelel a 23 GPIO-portnak a zöld LED-del.
A GPIO.setup-utasítás tartalmazhat egy initial optionális paramétert, amely a GPIO-porthoz már az
inicializáláskor hozzárendel egy logikai állapotot. Általa ebben a programban a zöld LED-et már
kezdéskor bekapcsoljuk. A másik két LED a program kezdetén kikapcsolt állapotban van.
print ("Strg+C beendet das program") Most egy rövid kezelési utasítás jelenik meg a képernyőn. A
program automatikusan fut. A
[Strg]+[C] (angol tasztatúrán [ctrl] + [C]) nyomógomb-
kombinációval kell befejezni. Annak a lekérdezésére, hogy a felhasználó befejezi-e a
programot a
[Strg]+[C] megnyomásával, a try...except-lekérdezést alkalmazzuk. Ekkor a try:
alatt bevitt programkód normálisan kivitelre kerül. Ha eközben
time.sleep(0.6)
GPIO.output(Ampel[gelb],False); GPIO.output(Ampel[rot],True)
time.sleep(2)
GPIO.output(Ampel[gelb],True)
time.sleep(0.6)
GPIO.output(Ampel[rot],False); GPIO.output(Ampel[gelb],False)
GPIO.output(Ampel[gruen],True)
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.setup(Ampel[rot],
GPIO.OUT,
initial=False)
GPIO.setup(Ampel[gelb],
GPIO.OUT,
initial=False)
GPIO.setup(Ampel[gruen], GPIO.OUT, initial=True)
34