Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Následující kroky jsou experimenty, které ilustrují, jak LED diody fungují. Ukazují, jak stmívat LED rovnoměrně a jak ji zeslabovat.
Budete potřebovat:
- RaspberryPi (použil jsem starší Pi, používá se můj Pi-3, ale jakýkoli Pi bude fungovat.)
- Prkénko
- 5 mm červená LED
- Rezistor 330 Ω (není rozhodující, 220–560 Ω bude fungovat.)
- Propojovací drát
Pi-cobbler, který jsem použil od Adafruit, není nutný, ale usnadňuje chleba.
WiringPi je sada knihoven pro programování RaspberryPi v C. Pokyny pro stahování, instalaci a použití najdete na adrese
Při instalaci kabeláže postupujte podle pokynů na této stránce:
Chcete -li získat seznam čísel pinů wiringPi, zadejte na příkazovém řádku gpio readall.
V novějších verzích Raspian je wiringPi nainstalován ve výchozím nastavení.
Krok 1: Modulace šířky pulsu
LED diody vždy běží na stejném napětí bez ohledu na jas. Jas je určen oscilátorem čtvercových vln a doba, po kterou je napětí vysoké, určuje jas. Toto se nazývá PWM (Pulse Width Modulation). Toto je řízeno funkcí wiringPi pwmWrite (pin, n), kde n má hodnotu od 0 do 255. Pokud n = 2, LED bude dvakrát jasnější než n = 1. Jas se vždy zdvojnásobí, když n zdvojnásobí. Takže n = 255 bude dvakrát jasnější než n = 128.
Hodnota n je často vyjádřena v procentech nazývaných pracovní cyklus. Obrázky ukazují stopy osciloskopu pro pracovní cykly 25, 50 a 75%.
Krok 2: LED a odpor
Není to nutné, ale mít několik z nich po ruce může hodně přispět na chleba.
Pájejte odpor na krátkou LED diodu. Použijte odpor 220-560 Ohm.
Krok 3: Rovnoměrné stmívání
Sestavte obvod jako na schématu. Je to jako obvod blikající LED. Používá pin 1 wiringPi, protože potřebujete použít pin s povoleným PWM. Zkompilujte program a spusťte jej. Všimnete si, že čím jasnější je LED, tím pomaleji stmívá. Jak se blíží nejtmavší, bude velmi rychle stmívat.
/******************************************************************
* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Execute: sudo./fade1 * * All PIN numbers are wiringPi numbers if otherwise specified. ******************************************************* ****************/ #include int main () {wiringPiSetup (); // Nastavení požadované wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Režim Mark/Space int i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); zpoždění (10); } pro (i = 0; i <256; i ++) {pwmWrite (1, i); zpoždění (10); }}}
Následující krok ukazuje, jak ztlumit LED konstantní rychlostí a v jednom příkazu.
Krok 4: Krok 4: Nahoru a dolů v jednom pro () a rovnoměrně
Aby LED dioda ztlumila konstantní rychlostí, musí se zpoždění () zvyšovat exponenciální rychlostí, protože polovina pracovního cyklu vždy vytvoří polovinu jasu.
Linie:
int d = (16-i/16)^2;
vypočítá inverzní čtverec jasu k určení délky zpoždění. Zkompilujte a spusťte tento program a uvidíte, že LED bude blednout a zhasínat konstantní rychlostí.
/******************************************************************
* Compile: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Execute: sudo./fade2 * * All PIN numbers are wiringPi numbers if otherwise specified. ******************************************************* ****************/ #include int main () {wiringPiSetup (); // Nastavení požadované wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Režim Mark/Space while (1) {int i; int x = 1; pro (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // vypočítat inverzní čtverec indexu pwmWrite (1, i); zpoždění (d); if (i == 255) x = -1; // přepnutí směru na špičce}}}