Բովանդակություն:

Python- ի և ձեր Raspberry Pi- ի GPIO կապում բազմաթիվ LED- ների կառավարում. 4 քայլ (նկարներով)
Python- ի և ձեր Raspberry Pi- ի GPIO կապում բազմաթիվ LED- ների կառավարում. 4 քայլ (նկարներով)

Video: Python- ի և ձեր Raspberry Pi- ի GPIO կապում բազմաթիվ LED- ների կառավարում. 4 քայլ (նկարներով)

Video: Python- ի և ձեր Raspberry Pi- ի GPIO կապում բազմաթիվ LED- ների կառավարում. 4 քայլ (նկարներով)
Video: Ինչպես կառուցել Raspberry Pi Pico PLC || OpenPLC խմբագիր 2024, Հուլիսի
Anonim
Բազմաթիվ LED- ների կառավարում Python- ի և ձեր Raspberry Pi- ի GPIO կապումներով
Բազմաթիվ LED- ների կառավարում Python- ի և ձեր Raspberry Pi- ի GPIO կապումներով

Այս Instructable- ը ցույց է տալիս, թե ինչպես կարելի է վերահսկել ձեր RaspberryPi- ի GPIO- ի բազմաթիվ կապում ՝ 4 լուսադիոդներ միացնելու համար: Այն նաև ձեզ կներկայացնի պարամետրերին և պայմանական հայտարարություններին Python- ում:

Մեր նախորդ հրահանգը `օգտագործելով ձեր Raspberry Pi- ի GPIO կապում LED- ը վերահսկելու համար, ցույց է տալիս, թե ինչպես միացնել և անջատել մեկ LED- ը` օգտագործելով GPIO.output հրամանը: Այս Instructable- ը հիմնված է այդ գիտելիքների վրա ՝ ձեզ սովորեցնելու համար, թե ինչպես ավելի շատ վերահսկողություն ստանալ ձեր շրջանի վրա:

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի

Այն, ինչ ձեզ պետք կգա
Այն, ինչ ձեզ պետք կգա
Այն, ինչ ձեզ պետք կգա
Այն, ինչ ձեզ պետք կգա

- Raspbian- ով արդեն տեղադրված RaspberryPi: Դուք նաև պետք է կարողանաք Pi- ին մուտք գործել ՝ օգտագործելով մոնիտոր, մկնիկ և ստեղնաշար կամ Հեռակա աշխատասեղանի միջոցով: Դուք կարող եք օգտագործել Raspberry Pi- ի ցանկացած մոդել: Եթե ունեք Pi Zero մոդելներից մեկը, գուցե ցանկանաք վերնագրի որոշ կապեր կպցնել GPIO նավահանգստին:

- կարմիր, կապույտ, դեղին և կանաչ լուսադիոդային լուսադիոդներ

- A Solderless Prototyping Breadboard

- 4 x 330 ohm դիմադրիչներ

- Արականից իգական սեռի որոշ լարեր

Քայլ 2: Կառուցեք ձեր շրջանը

Կառուցեք ձեր շրջանը
Կառուցեք ձեր շրջանը
Կառուցեք ձեր շրջանը
Կառուցեք ձեր շրջանը

Կառուցեք վերը նշված սխեման ձեր սեղանի վրա ՝ համոզվելով, որ բաղադրիչներից ոչ մեկը չի դիպչում, և որ LED- ները միացված են ճիշտ ճանապարհին:

Ինչպե՞ս եք ճանաչում ձեր LED- ների դրական և բացասական հաղորդալարերը (բևեռականությունը): Եթե ուշադիր նայեք LED- ին, կտեսնեք, որ այն գունավոր պատյան ներսում ունի երկու փոքր մետաղական կտոր: Դրանք կոչվում են անոդ և կաթոդ: Կաթոդը երկուսից ամենամեծն է և միացված է նաև LED- ների բացասական կապարին:

Շղթան ստուգելուց հետո միացրեք jumper մալուխները ձեր Raspberry Pi- ի GPIO կապումներին ՝ հետևելով վերը նշված գծապատկերին:

Քայլ 3: Ստեղծեք սցենար `LED- ները վերահսկելու և փորձարկելու համար

Ստեղծեք սցենար `LED- ները վերահսկելու և փորձարկելու համար
Ստեղծեք սցենար `LED- ները վերահսկելու և փորձարկելու համար

Ձեր Raspberry Pi- ում բացեք IDLE (Մենյու> mingրագրավորում> Python 2 (IDLE)):

Բացեք նոր նախագիծ, անցեք Ֆայլ> Նոր ֆայլ: Այնուհետև մուտքագրեք (կամ պատճենեք և տեղադրեք) հետևյալ ծածկագիրը.

ներմուծեք RPi. GPIO- ն որպես GPIO

ներմուծման ժամանակը 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: ելք (23, սխալ)

Պահեք ձեր նախագիծը որպես multilights.py (Ֆայլ> Պահել որպես) ձեր Raspberry Pis Փաստաթղթերի թղթապանակում:

Ձեր Raspberry Pi- ում բացեք Տերմինալը (Մենյու> Աքսեսուարներ> Տերմինալ) և անցեք ձեր Փաստաթղթերի թղթապանակ `մուտքագրելով հետևյալը.

cd/home/pi/Փաստաթղթեր

Այժմ կարող եք գործարկել ձեր նոր սցենարը `մուտքագրելով հետևյալը.

python multilights.py

Լույսերն իր հերթին կպահանջեն միանալն ու անջատելը: Վերոնշյալ սցենարը օգտագործում է time.sleep հրահանգը ՝ յուրաքանչյուր քայլի միջև դադար ստեղծելու համար, որի արդյունքում յուրաքանչյուր լույսը մնում է 3 վայրկյան և սպասելու 1 վայրկյան ՝ հաջորդ լույսը միացնելուց առաջ:

Քայլ 4. Պարամետրերի և պայմանական հայտարարությունների միջոցով ճկունության ավելացում

Օգտագործելով պարամետրերը և պայմանական հայտարարությունները, մենք կարող ենք վերը նշված սցենարը դարձնել շատ ավելի ճկուն:

Պարամետրը թույլ է տալիս պահպանել մի արժեք, որը կարող եք հետագայում օգտագործել սցենարում: Արժեքների ամենատարածված տեսակներն են տողերը (տեքստը), ամբողջ թվերը (ամբողջ թվերը) կամ բոցերը (տասնորդական թվերը):

Պայմանական հայտարարությունը կորոշի ՝ կոդի մի հատվածը պետք է կատարվի՞, թե՞ ոչ ՝ ստուգելով որոշակի պայմանի բավարարվածությունը: Վիճակը կարող է պարունակել նաև պարամետրեր:

Բացեք IDLE ձեր Raspberry Pi- ում և բացեք նոր նախագիծ (Ֆայլ> Նոր ֆայլ): Այնուհետեւ մուտքագրեք հետեւյալը. Carefulգույշ եղեք ՝ ապահովելու համար, որ բոլոր կետերը (ներդիրները) ներառված են ՝ օգտագործելով ներդիրի ստեղնը.

ներմուծեք RPi. GPIO- ն որպես GPIO

ներմուծման ժամանակը sys- ից 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) եթե ledaction == "off". GPIO.output (LEDc, False) ifledled == "d": GPIO.output (LEDd, False) ifledled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. ելք (LEDc, False) GPIO.output (LEDd, False) եթե ledaction == "on": if theled == "a": GPIO.output (LEDa, True) ifledled == "b": GPIO.output (LEDb, True) եթե լրացված է == "c": GPIO.putput (LEDc, True) ifledled == "d": GPIO.output (LEDd, True) ifledled == "all": GPIO.output (LEDa, Trueիշտ) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Պահեք ձեր նախագիծը որպես controllight.py (Ֆայլ> Պահել որպես) Ձեր Փաստաթղթերի թղթապանակում: Այժմ բացեք Տերմինալը (Մենյու> Աքսեսուարներ> Տերմինալ) և մուտքագրեք հետևյալ հրամանը.

python controllight.py b on

Երկրորդ LED- ը պետք է միանա: Այժմ մուտքագրեք հետևյալը.

python controllight.py բ անջատված է

Երկրորդ LED- ը պետք է անջատվի:

5 -րդ, 6 -րդ, 7 -րդ և 8 -րդ տողերում մենք ստեղծում ենք LEDa, LEDb, LEDc և LEDd պարամետրերը ՝ պահպանելու համար, թե որ GPIO կապն ենք միացրել որ LED- ին: Սա մեզ հնարավորություն է տալիս օգտագործել այլընտրանքային GPIO կապում ՝ առանց սցենարում էական փոփոխություններ կատարելու:

Օրինակ, եթե մենք առաջին LED- ները միացնեինք Pin 3 (GPIO 2) - ի փոխարեն, մենք պարզապես պետք է 5 -րդ տողը փոխենք հետևյալի.

LEDa = 2

4 -րդ տողը պահում է այն արժեքները, որոնք մուտքագրել եք controllight.py- ից հետո (c) և ledaction (on) պարամետրերի մեջ: Այնուհետև սցենարը օգտագործում է այս պարամետրերը ՝ մի շարք Պայմանական հայտարարությունների կողքին ՝ որոշելու համար, թե որ LED- ն է վերահսկել և միացնել կամ անջատել:

Տող 16 (եթե ledaction == "on":) պայմանական հայտարարություն է: Այս հայտարարությանը հաջորդող գծագրված տողերը կգործեն միայն այն դեպքում, եթե հայտարարության պայմանը բավարարվի: Այս սցենարում պայմանն այն է, որ ledaction- ը պարունակի տեքստը:

Կարդալով սցենարի մյուս Պայմանական հայտարարությունները, կարո՞ղ եք կանխատեսել, թե ինչ կլինի, երբ տերմինալում մուտքագրեք հետևյալ հրամանը:

python controllight.py all on

Ինչու՞ չաշխատեք և ձեր պատասխանը տեղադրեք ստորև բերված մեկնաբանությունների բաժնում:

Խորհուրդ ենք տալիս: