Mundarija:

Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish: 4 qadam (rasmlar bilan)
Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish: 4 qadam (rasmlar bilan)

Video: Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish: 4 qadam (rasmlar bilan)

Video: Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish: 4 qadam (rasmlar bilan)
Video: Raspberry Pi LESSON 29: Using GPIO pins as Inputs and Reading them in Python 2024, Noyabr
Anonim
Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish
Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish

Bu ko'rsatma RaspberryPi -dagi 4 ta LEDni quvvatlantirish uchun bir nechta GPIO pinlarini boshqarishni ko'rsatadi. Shuningdek, u sizni Python -dagi parametrlar va shartli bayonotlar bilan tanishtiradi.

LEDni boshqarish uchun Raspberry Pi -ning GPIO pinlaridan foydalanish bo'yicha oldingi ko'rsatmamiz GPIO.output buyrug'i yordamida bitta LEDni qanday yoqish va o'chirishni ko'rsatadi. Ushbu ko'rsatma sizning bilimlaringizni asos qilib oladi, bu sizning davringizni qanday boshqarishni nazorat qilishni o'rgatadi.

1 -qadam: Sizga nima kerak

Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi

- Raspbian o'rnatilgan RaspberryPi. Shuningdek, siz monitorga, sichqoncha va klaviatura yordamida yoki masofaviy ish stoli orqali Pi -ga kirishingiz kerak bo'ladi. Siz Raspberry Pi -ning har qanday modelidan foydalanishingiz mumkin. Agar sizda Pi Zero modellaridan biri bo'lsa, siz GPIO portiga bir nechta bosh pinlarini lehimlashingiz mumkin.

- qizil, ko'k, sariq va yashil LEDlar

- Lehimsiz prototipli jadval

- 4 x 330 ohmli rezistorlar

- Erkak -Ayol jumper simlari

2 -qadam: O'z davrangizni yarating

O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating

Yuqoridagi sxemani panelda joylashtiring, uning tarkibiy qismlarining hech biri tegmasligiga va LEDlarning to'g'ri ulanganligiga ishonch hosil qiling.

LEDlarning ijobiy va salbiy simlarini (qutblanishini) qanday aniqlash mumkin? Agar siz LEDga diqqat bilan qarasangiz, uning rangli korpus ichida ikkita kichik metall bo'lagi borligini ko'rasiz. Ularga anod va katod deyiladi. Katod - bu ikkitasining eng kattasi, shuningdek LEDlarning manfiy qo'rg'oshiga ulangan.

Tizimni tekshirgandan so'ng, yuqoridagi diagramaga muvofiq, Raspberry Pi GPIO pinlarini o'tish kabellarini ulang.

3 -qadam: LEDlarni boshqarish va tekshirish uchun skript yarating

LEDlarni boshqarish va tekshirish uchun skript yarating
LEDlarni boshqarish va tekshirish uchun skript yarating

Raspberry Pi -da IDLE -ni oching (Menyu> Dasturlash> Python 2 (IDLE)).

Yangi loyihani oching, Fayl> Yangi fayl -ga o'ting. Keyin quyidagi kodni kiriting (yoki nusxa ko'chiring va joylashtiring):

RPi. GPIO -ni GPIO sifatida import qilish

import vaqti 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. chiqish (23, noto'g'ri)

Loyihangizni Raspberry Pis Documents papkasida multilights.py (Fayl> Saqlash sifatida) sifatida saqlang.

Raspberry Pi -da terminalni oching (Menyu> Aksessuarlar> Terminal) va quyidagilarni yozib Hujjatlar papkasiga o'ting:

cd/home/pi/Hujjatlar

Endi siz yangi skriptni ishga tushirib, quyidagilarni yozishingiz mumkin:

python multilights.py

Chiroqlar uni navbat bilan yoqadi va o'chiradi. Yuqoridagi skript har bir qadam o'rtasida pauza yaratish uchun time.sleep buyrug'idan foydalanadi, har bir yorug'lik 3 soniya yonadi va keyingi chiroqni yoqishdan oldin 1 soniya kutiladi.

4 -qadam: Parametrlar va shartli bayonotlar yordamida moslashuvchanlikni qo'shish

Parametrlar va shartli bayonotlar yordamida biz yuqoridagi skriptni ancha moslashuvchan qilishimiz mumkin.

Parametr sizga keyinchalik ishlatishingiz mumkin bo'lgan qiymatni saqlashga imkon beradi. Qiymatlarning eng keng tarqalgan turlari qatorlar (matn), butun sonlar (butun sonlar) yoki suzuvchi (o'nli raqamlar) dir.

Shartli bayonot ma'lum bir shart bajarilganligini tekshirish orqali kod segmentining bajarilishi yoki bajarilmasligini aniqlaydi. Vaziyat parametrlarni ham o'z ichiga olishi mumkin.

Raspberry Pi -da IDLE -ni oching va yangi loyihani oching (Fayl> Yangi fayl). Keyin quyidagilarni kiriting. Yorliq tugmachasi yordamida barcha bo'shliqlar (yorliqlar) kiritilganligiga ishonch hosil qiling:

RPi. GPIO -ni GPIO sifatida import qilish

sys import argv whichled = 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) agar ledaction == "off": ifled == "a" bo'lsa: GPIO.output (LEDa, False) if if == "b": GPIO.output (LEDb, False) ifreded == "c": GPIO.output (LEDc, False), agar == "d" bo'lsa: GPIO.output (LEDd, False) if == "all" bo'lsa: GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. chiqish (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": ifled == "a": agar == "b" bo'lsa, GPIO.output (LEDa, True): GPIO.output (LEDb, True) agar "=" "c" bo'lsa: GPIO.output (LEDc, True) agar == "d" bo'lsa: GPIO.output (LEDd, True), agar == "hamma" bo'lsa: GPIO. chiqish (LEDa, To'g'ri) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Hujjatlar papkasida loyihangizni controllight.py (Fayl> Saqlash sifatida) sifatida saqlang. Endi Terminalni oching (Menyu> Aksessuarlar> Terminal) va quyidagi buyruqni kiriting:

python controllight.py b yoqilgan

Ikkinchi LED yonishi kerak. Endi quyidagilarni kiriting:

python controllight.py b o'chirilgan

Ikkinchi LED o'chishi kerak.

5, 6, 7 va 8 -qatorlarda biz qaysi GPIO pinini qaysi LEDga ulaganimizni saqlash uchun LEDa, LEDb, LEDc va LEDd parametrlarini yaratamiz. Bu bizga skriptga jiddiy o'zgartirishlar kiritmasdan muqobil GPIO pinlarini ishlatishga imkon beradi.

Misol uchun, agar biz birinchi LEDlarni Pin 3 (GPIO 2) ga ulagan bo'lsak, biz 5 -qatorni quyidagicha o'zgartirishimiz kerak bo'ladi:

LEDa = 2

4 -satr controllight.py -dan keyin siz kiritgan qiymatlarni (c) va ledaction (on) parametrlarida saqlaydi. Keyin skript bu parametrlarni ishlatadi, shuningdek, qaysi LEDni boshqarish va uni yoqish yoki o'chirish to'g'risida qaror qabul qilish uchun bir qator shartli bayonotlar.

16 -qator (agar ledaction == "on":) bo'lsa - shartli bayon. Ushbu bayonotdan keyingi chiziqlar faqat bayonot sharti bajarilgan taqdirda ishlaydi. Bu stsenariyda, shart shundaki, ledaction matnni o'z ichiga oladi.

Skriptning boshqa shartli bayonlarini o'qib, Terminalga quyidagi buyruqni kiritganingizda nima bo'lishini taxmin qila olasizmi?

python controllight.py hamma yoqilgan

Nega buni qo'yib yubormaysiz va javobingizni quyidagi izohlar bo'limiga joylashtiring.

Tavsiya: