Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Nasledujúce kroky sú experimenty na ilustráciu toho, ako LED diódy fungujú. Ilustrujú, ako stlmiť LED diódu rovnomerným spôsobom a ako ju zhasínať.
Budete potrebovať:
- Arduino (použil som duo)
- Breadboard
- 5 mm červená LED
- Rezistor 330 Ω (nie je rozhodujúce, 330-560 Ω bude fungovať.)
- Pevný pripájací drôt 22
Časti potrebné na tieto experimenty sú súčasťou všetkých štartovacích súprav Arduino.
Krok 1: Pulzná modulácia je vysvetlená
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 Arduino analogWrite (pin, n), kde n má hodnotu od 0 do 255. AnalogWrite () vydáva PWM, nie skutočný analóg. 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: Rovnomerné stlmenie
Zostavte obvod podľa schémy. Je to ako obvod blikajúci LED. Používa pin 9, pretože musíte použiť pin s podporou PWM.
Skopírujte/prilepte nižšie uvedenú skicu do Arduino IDE a spustite ju.
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ť.
neplatné nastavenie ()
{pinMode (9, VÝSTUP); } prázdna slučka () {int pin = 9; pre (int i = 255; i> -1; i--) {analogWrite (pin, i); oneskorenie (10); } for (int i = 0; i <256; i ++) {analogWrite (pin, i); oneskorenie (10); }}
}
Ďalší krok ukazuje, ako stlmiť LED diódu konštantnou rýchlosťou, a v jednej pre príkaz.
Krok 3: Hore a dole v jednom pre ()
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. Moja prvá myšlienka bola skúsiť použiť funkciu map (), ale je lineárna.
Čiara:
int d = (16-i/16)^2;
vypočíta inverzný štvorec jasu, aby určil dĺžku oneskorenia.
Skopírujte/prilepte nižšie uvedenú skicu do Arduino IDE a uvidíte, že LED dióda bude zhasínať a zhasínať konštantnou rýchlosťou.
neplatné nastavenie ()
{pinMode (9, VÝSTUP); } prázdna slučka () {int x = 1; int pin = 9; pre (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); oneskorenie (d); ak (i == 255) x = -1; // zmena smeru na vrchole}}