Turinys:

Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius: 4 žingsniai (su nuotraukomis)
Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius: 4 žingsniai (su nuotraukomis)

Video: Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius: 4 žingsniai (su nuotraukomis)

Video: Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius: 4 žingsniai (su nuotraukomis)
Video: Leap Motion SDK 2024, Liepa
Anonim
Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius
Kelių šviesos diodų valdymas naudojant „Python“ir „Raspberry Pi“GPIO kaiščius

Ši instrukcija parodo, kaip valdyti kelis „RaspberryPi“GPIO kaiščius, kad būtų galima maitinti 4 šviesos diodus. Jis taip pat supažindins jus su parametrais ir sąlyginiais teiginiais „Python“.

Mūsų ankstesnė instrukcija „Raspberry Pi“GPIO kaiščių naudojimas LED valdymui parodo, kaip įjungti ir išjungti vieną šviesos diodą naudojant komandą GPIO.output. Ši instrukcija remiasi šiomis žiniomis, kad išmokytų jus geriau valdyti savo grandinę.

1 žingsnis: ko jums reikės

Ko jums reikės
Ko jums reikės
Ko jums reikės
Ko jums reikės

- RaspberryPi su jau įdiegtu Raspbian. Taip pat turėsite turėti galimybę pasiekti „Pi“naudodami monitorių, pelę ir klaviatūrą arba nuotolinį darbalaukį. Galite naudoti bet kurį „Raspberry Pi“modelį. Jei turite vieną iš „Pi Zero“modelių, galbūt norėsite lituoti kai kuriuos antraštės kaiščius prie GPIO prievado.

- Raudoni, mėlyni, geltoni ir žali šviesos diodai

- Solidless prototipų kepimo lenta

- 4 x 330 omų rezistoriai

- Kai kurie jungiamieji laidai nuo vyrų iki moterų

2 žingsnis: sukurkite grandinę

Sukurkite savo grandinę
Sukurkite savo grandinę
Sukurkite savo grandinę
Sukurkite savo grandinę

Sukurkite aukščiau pateiktą grandinę savo duonos plokštėje, įsitikindami, kad nė vienas komponentų laidas neliečia ir kad šviesos diodai yra prijungti teisingai.

Kaip atpažinti teigiamus ir neigiamus šviesos diodų laidus (poliškumą)? Jei atidžiai pažvelgsite į šviesos diodą, pamatysite, kad spalvoto korpuso viduje yra du nedideli metalo gabalai. Jie vadinami anodais ir katodais. Katodas yra didžiausias iš dviejų ir taip pat prijungtas prie neigiamo šviesos diodų laido.

Patikrinę grandinę, prijunkite „Raspberry Pi“GPIO kaiščių trumpiklius, vadovaudamiesi aukščiau pateikta schema.

3 žingsnis: sukurkite scenarijų, skirtą šviesos diodams valdyti ir išbandyti

Sukurkite scenarijų, skirtą šviesos diodams valdyti ir išbandyti
Sukurkite scenarijų, skirtą šviesos diodams valdyti ir išbandyti

„Raspberry Pi“atidarykite IDLE (meniu> Programavimas> Python 2 (IDLE)).

Atidarykite naują projektą, eikite į Failas> Naujas failas. Tada įveskite (arba nukopijuokite ir įklijuokite) šį kodą:

importuoti RPi. GPIO kaip GPIO

importo laikas GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. OUT) GPIO.setup (18, GPIO. OUT) GPIO.setup (22, GPIO. OUT) GPIO.setup (23, GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO. output (22, True) time.sleep (3) GPIO. output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO. išvestis (23, klaidinga)

Išsaugokite savo projektą aplanke „Raspberry Pis Documents“kaip multilights.py (Failas> Išsaugoti kaip).

„Raspberry Pi“atidarykite terminalą (Meniu> Priedai> Terminalas) ir eikite į aplanką Dokumentai įvesdami:

cd/home/pi/Dokumentai

Dabar galite paleisti naują scenarijų įvesdami šį:

python multilights.py

Šviestuvai paeiliui įsijungs ir išsijungs. Aukščiau pateiktame scenarijuje naudojama komanda time.sleep, kad būtų sukurta pauzė tarp kiekvieno veiksmo, kad kiekviena lemputė liktų 3 sekundes ir palauktų 1 sekundę, kol įjungs kitą lemputę.

4 žingsnis: lankstumo pridėjimas naudojant parametrus ir sąlyginius teiginius

Naudodami parametrus ir sąlyginius teiginius aukščiau pateiktą scenarijų galime padaryti daug lankstesnį.

Parametras leidžia išsaugoti vertę, kurią vėliau galėsite naudoti scenarijuje. Dažniausiai pasitaikantys verčių tipai yra eilutės (tekstas), sveikieji skaičiai (sveikieji skaičiai) arba plūdės (dešimtainiai skaičiai).

Sąlyginė ataskaita nustatys, ar kodo segmentas turi būti vykdomas, ar ne, tikrinant, ar laikomasi tam tikros sąlygos. Sąlyga taip pat gali apimti parametrus.

Raspberry Pi atidarykite IDLE ir atidarykite naują projektą (Failas> Naujas failas). Tada įveskite šį. Naudodamiesi tabuliavimo klavišu įsitikinkite, kad visos įtraukos (skirtukai) yra įtrauktos:

importuoti RPi. GPIO kaip GPIO

importo laikas iš sys importas argv wholed = argv [1] ledaction = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO. setmode (GPIO. BCM) GPIO.setup (LEDb, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd, GPIO). OUT) if ledaction == "off": if wholed == "a": GPIO.output (LEDa, False) if wholed == "b": GPIO.output (LEDb, False) if theed == "c": GPIO.output (LEDc, False) if wholed == "d": GPIO.output (LEDd, False), jei nurodomas == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. išvestis (LEDc, klaidinga) GPIO.output (LEDd, False), jei ledaction == "on": if wholed == "a": GPIO.output (LEDa, True), jei nurodoma == "b": GPIO.output (LEDb, tiesa) ifled == "c": GPIO.output (LEDc, True) if wholed == "d": GPIO.output (LEDd, True), jei nurodytas == "all": GPIO.output (LEDa, Tiesa) GPIO. išvestis (LEDb, tiesa) GPIO. Išvestis (LEDc, tiesa) GPIO. Išvestis (LEDd, tiesa)

Išsaugokite savo projektą aplanke Dokumentai kaip controllight.py (Failas> Įrašyti kaip). Dabar atidarykite terminalą (Meniu> Priedai> Terminalas) ir įveskite šią komandą:

python controllight.py b on

Antrasis šviesos diodas turėtų įsijungti. Dabar įveskite:

python controllight.py b išjungtas

Antrasis šviesos diodas turėtų išsijungti.

5, 6, 7 ir 8 eilutėse sukuriame parametrus LEDa, LEDb, LEDc ir LEDd, kad išsaugotume, kurį GPIO kaištį prie kurio LED prijungėme. Tai leidžia mums naudoti alternatyvius GPIO kaiščius, nereikalaujant esminių scenarijaus pakeitimų.

Pvz., Jei pirmuosius šviesos diodus prijungtume prie 3 kaiščio (GPIO 2), mums tereikėtų pakeisti 5 eilutę į šią:

LEDa = 2

4 eilutėje išsaugomos reikšmės, kurias įvedėte po controllight.py, į parametrus, kurie buvo nurodyti (c) ir ledaction (įjungti). Tada scenarijus naudoja šiuos parametrus kartu su daugybe sąlyginių teiginių, kad nuspręstų, kurį šviesos diodą valdyti ir ar jį įjungti, ar išjungti.

16 eilutė (jei ledaction == "on":) yra sąlyginis teiginys. Įtrauktos eilutės, einančios po šio teiginio, bus vykdomos tik tuo atveju, jei bus įvykdyta pareiškimo sąlyga. Šiuo atveju sąlyga yra ta, kad ledaction turi tekstą.

Skaitydami kitus scenarijaus sąlyginius teiginius, ar galite nuspėti, kas nutiks, kai terminale įvesite šią komandą?

python controllight.py viskas įjungta

Kodėl gi ne pabandyti ir paskelbti savo atsakymą žemiau esančiame komentarų skyriuje.

Rekomenduojamas: