Mundarija:
- 1 -qadam: Sizga nima kerak
- 2 -qadam: O'z davrangizni yarating
- 3 -qadam: LEDlarni boshqarish va tekshirish uchun skript yarating
- 4 -qadam: Parametrlar va shartli bayonotlar yordamida moslashuvchanlikni qo'shish
Video: Python va Raspberry Pi -ning GPIO pinlari yordamida bir nechta LEDlarni boshqarish: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
- 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
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
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:
Bitta analog pin yordamida bir nechta analog qiymatlarni qanday o'qish mumkin: 6 qadam (rasmlar bilan)
Bitta analog pin yordamida bir nechta analog qiymatlarni qanday o'qish mumkin: Men bu qo'llanmada sizga faqat bitta analog kirish pinidan foydalanib, bir nechta analog qiymatlarni o'qishni ko'rsataman
Fadecandy va ishlov berish yordamida manzilli LEDlarni qanday boshqarish mumkin: 15 qadam (rasmlar bilan)
Fadecandy va ishlov berish yordamida manzilli LEDlarni qanday boshqarish mumkin: WhatThis Fadecandy va Processing-dan foydalanib, manzilli LEDlarni boshqarish bo'yicha bosqichma-bosqich qo'llanma. (Bir nechta Fadecandys -ni bitta kompyuterga ulashingiz mumkin
Taymer funktsiyasi bilan televizorni masofadan boshqarish pulti yordamida uy jihozlarini qanday boshqarish mumkin: 7 qadam (rasmlar bilan)
Uy asbob -uskunalarini masofadan boshqarish pulti bilan taymer funktsiyasi yordamida qanday boshqarish mumkin: Iste'mol bozoriga 25 yil kirganidan keyin ham, infraqizil aloqa so'nggi kunlarda juda dolzarb bo'lib qolmoqda. Bu sizning 55 dyuymli 4K televizoringiz yoki avtomobilingizning ovoz tizimidan qat'i nazar, hamma narsaga javob berish uchun IQ masofadan boshqarish pulti kerak
Android va Linux operatsion tizimlari bilan DragonBoard 410c -da GPIO pinlari yordamida ilovalarni ishlab chiqish: 6 qadam
Android va Linux operatsion tizimlari bilan DragonBoard 410c-da GPIO pinlaridan foydalangan holda ilovalarni ishlab chiqish: Ushbu qo'llanmaning maqsadi DragonBoard 410c past tezlikli kengaytmali GPIO pinidan foydalangan holda ilovalarni ishlab chiqish uchun zarur bo'lgan ma'lumotlarni ko'rsatishdir. Ushbu qo'llanmada Andrda SYS bilan GPIO pinlaridan foydalangan holda ilovalarni ishlab chiqish bo'yicha ma'lumotlar keltirilgan
Bir nechta mikrokontroldan bir nechta LEDni qanday chiqarish mumkin: 6 qadam (rasmlar bilan)
Bir nechta mikroto'lqinli pinlardan qanday qilib ko'p LEDlarni haydash mumkin: Ko'pgina mikrokontrolderlarning uch holatida (+V, GND yoki "yuqori impedansli") mavjudligidan foydalanib, siz N pinli N*(N-1) LEDlarni boshqarishingiz mumkin. Shunday qilib, PIC12Fxxx yoki ATtiny11 kabi 8pinli mikrokontroller beshta mavjud 20 ta LEDni boshqarishi mumkin