Obsah:

RaspberryPi: Stmievanie a zhasínanie LED: 4 kroky (s obrázkami)
RaspberryPi: Stmievanie a zhasínanie LED: 4 kroky (s obrázkami)

Video: RaspberryPi: Stmievanie a zhasínanie LED: 4 kroky (s obrázkami)

Video: RaspberryPi: Stmievanie a zhasínanie LED: 4 kroky (s obrázkami)
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Júl
Anonim
RaspberryPi: Stmievanie a zhasínanie LED
RaspberryPi: Stmievanie a zhasínanie LED

Nasledujúce kroky sú experimenty na ilustráciu toho, ako LED diódy fungujú. Ukazujú, ako stlmiť LED diódu rovnomerným spôsobom a ako ju zhasínať.

Budete potrebovať:

  • RaspberryPi (Použil som starší Pi, môj Pi-3 sa používa, ale akékoľvek Pi bude fungovať.)
  • Breadboard
  • 5 mm červená LED
  • Rezistor 330 Ω (nie je rozhodujúce, 220–560 Ω bude fungovať.)
  • Pripojovací drôt

Pi-cobbler, ktorý som použil od spoločnosti Adafruit, nie je potrebný, ale uľahčuje pečenie.

WiringPi je sada knižníc na programovanie RaspberryPi v jazyku C. Pokyny na sťahovanie, inštaláciu a používanie nájdete na stránke

Pri inštalácii káblov postupujte podľa pokynov na tejto stránke:

Ak chcete získať zoznam čísiel pinov kabeláže, zadajte príkazový riadok gpio readall.

V novších verziách Raspian je predvolene nainštalovaný wiringPi.

Krok 1: Pulzná šírková modulácia

Modulovanie šírky impulzu
Modulovanie šírky impulzu
Modulovanie šírky impulzu
Modulovanie šírky impulzu
Modulovanie šírky impulzu
Modulovanie šírky impulzu

LED diódy vždy bežia na rovnakom napätí bez ohľadu na jas. Jas je určený oscilátorom so štvorcovými vlnami a doba, počas ktorej je napätie vysoké, určuje jas. Toto sa nazýva modulácia šírky impulzu (PWM). Toto je riadené funkciou wiringPi pwmWrite (pin, n), kde n má hodnotu od 0 do 255. Ak n = 2, LED dióda bude dvakrát jasnejšia ako n = 1. Jas sa vždy zdvojnásobí, keď sa n zdvojnásobí. Takže n = 255 bude dvakrát jasnejšie ako n = 128.

Hodnota n je často vyjadrená v percentách nazývaných pracovný cyklus. Obrázky ukazujú stopy osciloskopu pre 25, 50 a 75% pracovné cykly.

Krok 2: LED a odpor

LED a odpor
LED a odpor

Nie je to nevyhnutné, ale keď ich budete mať k dispozícii niekoľko, môže vám cesta na chleba veľmi uľahčiť.

Spájkujte odpor na krátku LED diódu. Použite odpor 220-560 ohmov.

Krok 3: Rovnomerné stlmenie

Rovnomerné stlmenie
Rovnomerné stlmenie

Zostavte obvod podľa schémy. Je to ako obvod blikajúci LED. Používa pin 1 wiring, pretože potrebujete použiť pin povolený PWM. Zostavte program a spustite ho. Všimnete si, že čím jasnejšie LED diódy, tým pomalšie stlmia. Ako sa blíži najtmavšie, bude veľmi rýchlo stmievať.

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

* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Execute: sudo./fade1 * * Všetky čísla pinov sú zapojeniePi čísla, pokiaľ nie je uvedené inak. ********************************************************** ****************/ #include int main () {wiringPiSetup (); // Nastavenie požadované wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark/Space mode int i; pričom (1) {pre (i = 255; i> -1; i--) {pwmWrite (1, i); oneskorenie (10); } pre (i = 0; i <256; i ++) {pwmWrite (1, i); oneskorenie (10); }}}

Ďalší krok ukazuje, ako stlmiť LED diódu konštantnou rýchlosťou, a v jednej pre príkaz.

Krok 4: Krok 4: Hore a dole v jednom pre () a s rovnomernou sadzbou

Aby LED dióda stmievala konštantnou rýchlosťou, oneskorenie () sa musí zvyšovať exponenciálnou rýchlosťou, pretože polovica pracovného cyklu vždy vytvorí polovicu jasu.

Čiara:

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

vypočíta inverzný štvorec jasu, aby určil dĺžku oneskorenia. Zostavte a spustite tento program a uvidíte, že LED dióda bude zhasínať a zhasínať konštantnou rýchlosťou.

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

* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Execute: sudo./fade2 * * Všetky čísla pinov sú zapojeniaPi čísla, pokiaľ nie je uvedené inak. ****************************************************** ****************/ #include int main () {wiringPiSetup (); // Nastavenie požadované wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Režim Mark/Space while (1) {int i; int x = 1; pre (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // výpočet inverzného štvorca indexu pwmWrite (1, i); oneskorenie (d); ak (i == 255) x = -1; // zmena smeru na vrchole}}}

Odporúča: