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

RaspberryPi. LED- ի մարում և ելք. 4 քայլ (նկարներով)
RaspberryPi. LED- ի մարում և ելք. 4 քայլ (նկարներով)

Video: RaspberryPi. LED- ի մարում և ելք. 4 քայլ (նկարներով)

Video: RaspberryPi. LED- ի մարում և ելք. 4 քայլ (նկարներով)
Video: 1. Q Light Controller + Սկսել QLC +- ով: Արշավներ եւ գործառույթներ 2024, Հուլիսի
Anonim
RaspberryPi. LED- ի մարում և ելք
RaspberryPi. LED- ի մարում և ելք

Հետևյալ քայլերը փորձեր են ՝ լուսաբանելու համար, թե ինչպես են աշխատում LED- ները: Դրանք ցույց են տալիս, թե ինչպես կարելի է լուսադիոդն իջեցնել հավասարաչափ և ինչպես մարել այն ներսից և դրսից:

Ձեզ հարկավոր կլինի.

  • RaspberryPi (ես օգտագործել եմ ավելի հին Pi, իմ Pi-3- ն օգտագործվում է, բայց ցանկացած Pi կաշխատի):
  • Breadboard
  • 5 մմ կարմիր LED
  • 330 Ω Resistor (Ոչ կրիտիկական 220-560 Ω կաշխատի):
  • Կապի մետաղալար

Pi-cobbler- ը, որը ես օգտագործել եմ Adafruit- ից, անհրաժեշտ չէ, բայց դա դյուրինացնում է հացահատիկը:

WiringPi- ն RaspberryPi- ն C- ում ծրագրավորելու համար գրադարանների մի շարք է: Ներբեռնման, տեղադրման և օգտագործման հրահանգները գտնվում են https://www.wiringpi.com/ հասցեում:

Էլեկտրագծերի տեղադրման համար հետևեք այս էջի հրահանգներին ՝

Էլեկտրագծերի Pi համարների ցուցակ ստանալու համար հրամանի տողում մուտքագրեք gpio readall:

Raspian wiringPi- ի նոր տարբերակներում լռելյայն տեղադրված է:

Քայլ 1. Իմպուլսի լայնության մոդուլյացիա

Իմպուլսի լայնության մոդուլյացիա
Իմպուլսի լայնության մոդուլյացիա
Իմպուլսի լայնության մոդուլյացիա
Իմպուլսի լայնության մոդուլյացիա
Իմպուլսի լայնության մոդուլյացիա
Իմպուլսի լայնության մոդուլյացիա

LED- ները միշտ աշխատում են նույն լարման տակ `անկախ պայծառությունից: Պայծառությունը որոշվում է քառակուսի ալիքի տատանումով և այն ժամանակը, երբ լարումը բարձր է, որոշում է պայծառությունը: Սա կոչվում է Pulse Width Modulation (PWM): Սա վերահսկվում է wiringPi pwmWrite (pin, n) գործառույթով, որտեղ n- ն 0 -ից 255 արժեք ունի: Եթե n = 2 LED- ն երկու անգամ ավելի պայծառ կլինի, քան n = 1: Պայծառությունը միշտ կրկնապատկվում է, երբ n- ը կրկնապատկվում է: Այսպիսով, n = 255 կլինի երկու անգամ ավելի պայծառ, քան n = 128:

N- ի արժեքը հաճախ արտահայտվում է որպես տոկոս, որը կոչվում է աշխատանքային ցիկլ: Նկարները ցույց են տալիս օսլիլոսկոպի հետքեր 25, 50 և 75% աշխատանքային ցիկլերի համար:

Քայլ 2: LED և դիմադրություն

LED և դիմադրություն
LED և դիմադրություն

Սա անհրաժեշտ չէ, բայց դրանցից մի քանիսը ունենալը շատ ավելի հեշտ կդարձնի հացաբուլկեղենը:

Ռեզիստոր կպցրեք LED- ի կարճ հանգույցին: Օգտագործեք 220-560 Օմ դիմադրություն:

Քայլ 3: Անհամաչափ լուսավորություն

Un-even Dimming
Un-even Dimming

Կառուցեք սխեման, ինչպես գծապատկերում: Սա ճիշտ այնպես, ինչպես LED- ն թարթելու միացումն է: Այն օգտագործում է wiringPi կապ 1, քանի որ անհրաժեշտ է օգտագործել PWM միացված քորոց: Կազմեք ծրագիրը և գործարկեք այն: Դուք կնկատեք, որ լուսադիոդն ավելի պայծառ է այնքան դանդաղ է մարում: Ամենամոտին մոտենալուն պես, այն շատ արագ կդառնա ավելի մռայլ:

/******************************************************************

* Կազմել ՝ gcc -o fade1 -Wall. *********************************************** ****************/ #include int main () {wiringPiSetup (); // Կարգավորումը պահանջում է wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Նշում/Տիեզերքի ռեժիմ int i; իսկ (1) {համար (i = 255; i> -1; i--) {pwmWrite (1, i); ուշացում (10); } (i = 0; i <256; i ++) {pwmWrite (1, i); ուշացում (10); }}}

Հաջորդ քայլը ցույց է տալիս, թե ինչպես կարելի է լուսարձակել LED- ն հաստատուն արագությամբ, իսկ մեկում `հայտարարության համար:

Քայլ 4: Քայլ 4. Վեր և վար մեկ դեպքում () և զույգ տոկոսադրույքով:

Որպեսզի LED- ն մշտական արագությամբ մթնի, ուշացումը () պետք է մեծանա էքսպոնենցիալ արագությամբ, քանի որ աշխատանքային ցիկլի կեսը միշտ կստանա պայծառության կեսը:

Գիծը:

int d = (16-i/16)^2;

հաշվարկում է պայծառության հակադարձ քառակուսին `որոշելու հետաձգման երկարությունը: Կազմեք և գործարկեք այս ծրագիրը, և կտեսնեք, որ LED- ը կխամրի և դուրս կգա հաստատուն արագությամբ:

/******************************************************************

* Կազմել. Gcc -o fade1 -Wall. *********************************************** ****************/ #include int main () {wiringPiSetup (); // Կարգավորումը պահանջում է wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Նշում/Տիեզերքի ռեժիմ մինչ (1) {int i; int x = 1; (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // ինդեքսի ինվերս քառակուսի pwmWrite (1, i); ուշացում (դ); եթե (i == 255) x = -1; // փոխել ուղղությունը գագաթնակետին}}}

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