Obsah:

Blikajúci most sviečky: 6 krokov (s obrázkami)
Blikajúci most sviečky: 6 krokov (s obrázkami)

Video: Blikajúci most sviečky: 6 krokov (s obrázkami)

Video: Blikajúci most sviečky: 6 krokov (s obrázkami)
Video: Выкинул все ножи КРОМЕ ЭТОГО. Такой в мире один. 2024, November
Anonim
Image
Image

Tento návod ukazuje, ako zmeniť jednoduchý sviečkový mostík so statickým svetlom na pekné žiarivé náladové svetlo s nekonečnými variáciami blikajúcich svetiel, mihotania, vlnových vzorov a podobne. Kúpil som v After Christmas Sale sviečkový most za 8 €. Má 7 LED svetiel a nejaký 33 V 3 W nástenný adaptér. Svieti jasnou a teplou bielou farbou a bude sa perfektne hodiť do tohto projektu, kde dám Arduino, aby mihotali sviečky. Najpopulárnejším Arduino je Arduino Uno. V tomto projekte budem používať Arduino Mega 2560.

Zbavím sa napájania 30 V a ako napájanie použijem jednoduchú 5 V napájaciu banku určenú pre mobilné telefóny.

Je dobré vedieť, že energetické banky majú vnútorný obvod, ktorý transformuje batériu na 3,7 V až 5 V. Pretože proces spotrebováva určité množstvo energie, powerbanka sa vypne, ak sa nepoužíva. Ak sa napájacia banka používa pre pomôcky DIY založené na technológii Arduino, gadget sa nemôže prepnúť do úsporného režimu a znova začať po niekoľkých minútach. Tým sa vypne powerbanka. Tento blikajúci mostík sviečok nemá žiadny režim spánku. Neustále používa energiu a udržuje napájaciu banku aktívnu, až kým nie je odpojený napájací kábel.

Video ukazuje sviečkový most v statickom režime a v plnom blikaní. Úplné blikanie je pre oči skutočne dosť nepríjemné, zatiaľ čo video ho trochu vyhladzuje. Po oprave hardvéru, vrátane prerušenia káblov, spájkovania nových spojení a pridania niektorých komponentov, sa vytvorením kódu pre Arduino vytvoria všetky požadované svetelné schémy. Vzory, ktoré uvádzam v tomto návode, sú:

  • 4 rôzne blikajúce svetlá napodobňujúce skutočné sviečky
  • 2 rôzne blikania (náhodné blikanie inak statických svetiel)
  • 2 rôzne vlnové vzory
  • jednoduché statické svetlo

K prepínaniu vzorov dochádza prostredníctvom tlačidla, prvku jedného používateľského rozhrania. Čím viac vzorov chce človek a čím viac nastaviteľnosti chce, tým viac tlačidiel a gombíkov musí pridať. Krása však spočíva v jednoduchosti. Počet voliteľných vzorov znížte. Vyberte najlepšie nastavenia pri kódovaní a testovaní, nie pridávaním veľkého počtu ovládacích prvkov k hardvéru.

Zásoby

  • 1 LED sviečkový mostík so 7 žiarovkami. Uistite sa, že ide o nízkonapäťový model jednosmerného prúdu, buď s batériami, alebo so zdrojom napájania namontovaným na stene, ktorý transformuje smrtiace napätie 110 - 240 V AC na približne 6 - 30 V DC. Takže je úplne bezpečné hacknúť sviečkový most.
  • 1 Arduino Mega (urobí to akýkoľvek iný mikrokontrolér, len sa uistite, že ho môžete naprogramovať)
  • 1 prototyp nepájivej dosky
  • prepojovacie vodiče a iný drôt
  • spájkovací nástroj
  • multimeter
  • 7 odporov, 120 Ω
  • 1 tlačidlo (ukážem, ako môžete namiesto toho použiť vstavané tlačidlo na zariadení Arduino)
  • Darlingtonový tranzistor IC pre 7 tranzistorov, ULN2803AP, bude stačiť (Ak používate Arduino Uno alebo Meaga, toto skutočne nepotrebujete)
  • 5 V power banka určená pre mobilné telefóny

Krok 1: Preskúmajte, čo máte

Preskúmajte, čo máte
Preskúmajte, čo máte
Preskúmajte, čo máte
Preskúmajte, čo máte

Zistite, na aké napätie pôsobia jednotlivé diódy LED a koľko prúdom preteká.

  1. Otvorte spodok mostíka sviečok. Nájdite dva drôty, ktoré smerujú k jednej sviečke.
  2. Odizolujte z káblov izoláciu, ktorá odhaľuje medené drôty, bez toho, aby ste medené drôty prestrihli.
  3. Zapnite svetlá (relaxujte, je to len niekoľko voltov) a zmerajte napätie na odhalených medených drôtoch.
  4. Odrežte kábel v jednom z meracích bodov (v tomto mieste svetlá samozrejme zhasnú), na oboch koncoch odstráňte izoláciu (3 - 4 mm). Zmerajte prechádzajúci prúd. Čo urobíte, znova spojíte prerušený kábel s multimetrom a necháte ním pretekať všetok prúd, ktorý vám teraz povie množstvo prúdu.

Moje čítania

Napätie na jednej sviečke (krok 3): 3,1 V.

Všimnite si toho, že zdroj energie pre sviečkový most bol 33 V. Takže sedemkrát 3,1 V je len 21,7 V. Na niektorých sviečkach musí byť aj ďalší odpor. Ak by som zmeral napätie sviečky, muselo to byť asi 11 V.

Prúd pretekajúci sviečkami (krok 4): 19 mA

Všetko budem napájať batériou 5 V 2 A. Pre sviečky potrebujem znížiť napätie z 5 V na 3 V. Potrebujem odpor, ktorý pri prúde 19 mA zníži napätie 2 V.

2 V / 0,019 A = 105 Ω

Rozptýlenie výkonu je:

2 V * 19 mA = 38 mW

To je zanedbateľné. Oveľa viac by mohlo odpáliť samotný odpor. Napriek tomu bez 105 Ω odporu by som mohol LED diódu vyhodiť. Mám odpory 100 Ω a 120 Ω. Mám 120 Ω. Poskytuje väčšiu ochranu.

Testovanie všetkých 7 sviečok s 3 V poskytlo jasné svetlo, okrem jednej sviečky, ktorá mala iba veľmi slabé svetlo a prešlo iba asi 0,8 mA. Toto bola moja sviečka s prídavným odporom. Ukázalo sa, že ostatné sviečky nemali žiadny odpor. LED svetlá použité v lustri sú jednoducho určené pre 3 V! Sviečku s prídavným odporom bolo potrebné otvoriť miernym násilím, ale nič sa nerozbilo. Rezistor sa nachádzal tesne pod malou diódou LED v plastovej žiarovke. Musel som to odspájkovať a prepájať káble. Bolo to trochu chaotické, pretože spájkovačka zahriala horúce lepidlo, ktoré bolo použité na montáž.

Takže teraz viem, že bez ohľadu na zdroj energie, ktorý používam, bez ohľadu na napätie, musím napätie znížiť na 3 V, čo umožní prechod 19 mA.

Keby som bol bližšie oboznámený s technológiou LED, rozpoznal by som typ použitej diódy LED a vedel by som, že potrebuje 3 V.

Krok 2: Trochu spájkovania

Nejaké spájkovanie
Nejaké spájkovanie
Nejaké spájkovanie
Nejaké spájkovanie

V tomto kroku spájam všetky kladné (+) vodiče z 5 sviečok s jedným vodičom. Potom pre každú sviečku pridám samostatný negatívny (-) drôt. LED dióda sa rozsvieti iba vtedy, ak „+“a „-“idú doprava. Pretože z každej sviečky máte iba dva rovnaké konce káblov, musíte vyskúšať, ktorý z nich je „+“a ktorý „-“. Na to potrebujete 3 V zdroj energie. Mal som malý balíček batérií vrátane dvoch batérií AAA. 3 V mincová batéria funguje skvele aj na testovanie.

Sviečkový most potrebuje 8 káblov na vedenie medzi Arduinom a mostom. Ak nájdete kábel s 8 izolovanými vodičmi, bolo by to skvelé. Jeden vodič musí mať 120 mA, ostatné iba maximálne 20 mA. Rozhodol som sa použiť 4 dvojvodičový kábel, ktorý som náhodou mal.

Prvý obrázok ukazuje, ako som pripravil jeden spoločný vodič na pripojenie všetkých vodičov „+“zo sviečok. U každej sviečky odstráňte izoláciu spoločného drôtu. Pre každý spoj pridajte kúsok zmršťovacej izolačnej trubice (žltý pás na obrázku) a umiestnite ho na správne miesto spoločného kábla. Spájkujte „+“drôt z každej sviečky do jeho spoja, spoj zakryte zmršťovacou trubicou a stiahnite ho. Jednoduchá lepiaca páska je samozrejme tiež v poriadku, všetko bude nakoniec prelepené.

Druhý obrázok ukazuje '-' drôty, ktoré každá sviečka potrebuje. Bežný vodič „+“ide priamo na 5 V kolík Arduina (alebo možno cez nepájivú dosku). Každý vodič '-' ide na svoj vlastný kolík tranzistora IC (opäť pravdepodobne cez nepájivú dosku).

Arduino sa často nazýva prototypová doska. Nepájivá doska je tiež niečo, čo používate v prototypoch. To, čo popisujem v tomto návode, je prototyp. Nebudem z toho vyvíjať luxusný lesklý výrobok so všetkým, čo je skryté v pekných plastových obaloch. Prevzatie z prototypu na ďalšiu úroveň by znamenalo nahradiť dosku s plošnými spojmi doskou s plošnými spojmi a spájkovanými komponentmi a dokonca nahradiť Arduino iba jednoduchým čipom mikrokontroléra (v skutočnosti je taký čip mozgom Arduina). A mať všetko zmestené v plastovom kufríku alebo vo vnútri hacknutého mostíka sviečok.

Krok 3: Pripojenia

Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia

O spoločnosti Arduinos, prevzaté z tejto stránky:

  • Celkový maximálny prúd na vstupný/výstupný kolík: 40mA
  • Súčet prúdov zo všetkých vstupných/výstupných pinov dohromady: 200mA

Moje sviečky pri napájaní 3 V odoberajú 19 mA. To ich robí 133 mA. Mohol som ich teda napájať priamo z výstupných kolíkov. Mám však niekoľko náhradných integrovaných obvodov darlingtonového tranzistora. Tak som si povedal, prečo nie. Môj obvod robí vec správnym spôsobom: dátové kolíky sú len pre signály, nie pre napájanie. Namiesto toho používam 5 V kolík na Arduine na napájanie LED svetiel. Pri testovacej prevádzke mám notebook pripojený k Arduinu. Všetko je napájané z prenosného USB, ktoré dáva 5 V. Arduino Mega má vlastnú poistku, ktorá na ochranu počítača odpáli 500 mA. Moje sviečky odoberajú maximálne 133 mA. Arduino pravdepodobne oveľa menej. Všetko je v poriadku, keď je napájané z prenosného počítača, takže použitie 5 V batérie pripojenej k USB portu Arduina je v poriadku.

Dátové piny D3 - D9 smerujú k IC ULN2803APGCN. LED diódy pracujú na 3 V. Každá žiarovka je pripojená k zdroju 5 V a ďalej k odporu 120 Ω. Ďalej k jednému kanálu integrovaného obvodu, ktorý nakoniec obvod spojí so zemou pomocou darlingtonového tranzistora v integrovanom obvode.

Do obvodu je pridané tlačidlo, ktoré umožňuje určitú akciu používateľa. Sviečkový most by tak mohol mať niekoľko užívateľsky voliteľných programov.

Tlačidlo v obvode je pripojené k RESET a GND. Presne to robí vstavané tlačidlo reset. Pretože všetko nezapuzdrím do plastového puzdra, na ovládanie programu používam resetovacie tlačidlo na Arduine. Pridanie tlačidla podľa obrázku bude fungovať rovnako ako tlačidlo resetovania dosky. Program funguje tak, že si zapamätá, aký ľahký program bol použitý pri poslednom spustení programu. Každý reset teda postúpi do nasledujúceho svetelného programu.

Fotografie ukazujú, ako nové káble vychádzajú z mostíka, ako som položil tranzistor IC a odpory na dosku a ako sa prepojovacie vodiče pripájajú k Arduino Mega. Na 8 polovičných drôtov som nastrihal 4 prepojovacie káble medzi mužom a mužom, ktoré som spájkoval s 8 káblami vychádzajúcimi zo sviečkového mostíka. Takto môžem káble jednoducho zastrčiť do dosky na pečenie.

Alternatíva bez tranzistorov

V predchádzajúcom kroku som pripravil spoločný '+' vodič pre sviečky a samostatné '-' drôty, ktoré prechádzajú tranzistorovým IC na zem. Akonáhle sa jeden dátový kolík zvýši, príslušný „-“vodič sa uzemní prostredníctvom svojho tranzistora a diódy LED sa rozsvietia.

Pripojenie vodičov „-“priamo k dátovým kolíkom Arduina by tiež fungovalo, ale vždy si pamätajte, koľko prúdu môžu dátové kolíky vydržať! Tento prístup by potreboval zmenu v mojom programe. Na to, aby sa zapli sviečky, by potrebovali nízke kolíky údajov. Ak chcete používať môj program taký, aký je, musíte v sviečkach prepnúť „+“a „-“. Majte spoločný '-' drôt pre sviečky, ktorý ide na GND na Arduine. Jednotlivé vodiče vedú medzi vodičom „+“sviečky a dátovým kolíkom Arduina.

Krok 4: Svetelné programy

Môj program, ktorý uvádzam v nasledujúcom kroku, prechádza 9 svetelnými programami. Stlačením tlačidla sa na sekundu stlmia svetlá a potom sa spustí nasledujúci svetelný program. Programy sú nasledujúce:

  1. Silné blikanie. Sviečky náhodne blikajú. Vyzerá to veľmi nepríjemne, keď sa na nich pozeráte z blízkej vzdialenosti, ale môže to vyzerať dobre z diaľky a možno aj za mrazivým podkrovným oknom. Váš sused však môže zavolať hasičov.
  2. Jemné blikanie. Vyzerá to veľmi dobre. Ako skutočné sviečky v miestnosti bez prievanu.
  3. Rôzne blikanie. Sviečky plynule striedajú silné a jemné blikanie v intervale asi 30 s.
  4. Rôzne blikanie. Rovnako ako #3, ale každá sviečka sa líši svojim vlastným tempom medzi 30 s a 60 s.
  5. Rýchle blikanie. Sviečky svietia na staticky tlmenej úrovni a náhodne blikajú. V priemere je tu jedno zablikanie každú sekundu.
  6. Pomalé trblietanie. Rovnako ako #5, ale oveľa pomalšie.
  7. Rýchla vlna od strednej hornej sviečky k nižšej.
  8. Pomalá vlna od strednej hornej sviečky k nižšej.
  9. Statické jasné svetlo. Toto som musel zahrnúť, nechcel som sa zbaviť pôvodnej funkcie.

Krok 5: Kód

/*

FLICKERING CANDLE BRIDGE */ // Deklarujte premennú režimu tak, aby držala stav // prostredníctvom operácie reset _attribute _ ((section (". Noinit"))) unsigned int mode; // Keď sa program spustí po resete, táto časť // pamäte sa neinicializuje, ale zachová hodnotu //, ktorú mala pred resetom. Hneď pri prvom spustení programu // obsahuje náhodnú hodnotu. / * * Trieda sviečok obsahuje všetko potrebné * na výpočet úrovne svetla pre * blikajúcu sviečku. */ sviečka triedy {private: long maxtime; dlhý min. čas; dlhý maxlit; dlhý minlit; dlhý priemer; dlhý origmaxtime; dlhý origmintime; dlhý origmaxlite; dlhý origminlit; dlhý origmeanlite; dlhý deltamaxtime; dlhý deltamintime; dlhý deltamaxlit; dlhý deltaminlit; dlhý deltameanlit; dlhý lforát; dlho pripomínať; dlhý štart; dlhý cieľ; plavákový faktor; dlhý cieľový čas; dlhý štart; dlhá prestávka; void newtarget (prázdny); dlhý onetarget (prázdny); verejné: sviečka (dlhá podložka, dlhá mit, long mal, long mil, long mel, long eo); dlhý levelnow (prázdny); neplatné initlfo (dlhý deltamat, dlhý deltamit, dlhý deltamal, dlhý deltamil, dlhý deltamean, dlhý kurz); void setlfo (prázdno); }; sviečka:: sviečka (long mat, long mit, long mal, long mil, long mel, long eo): maxtime (mat), mintime (mit), maxlite (mal), minlite (mil), meanlite (mel), evnout (eo), origmaxtime (mat), origmintime (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {target = meanlite; newtarget (); } / * * levelnow () vracia úroveň svetla, akú by mala mať sviečka práve teraz. * Funkcia sa stará o definovanie novej náhodnej úrovne osvetlenia a * času, ktorý by mal trvať na dosiahnutie tejto úrovne. Zmena nie je lineárna, * ale sleduje sigmoidnú krivku. Keď nie je čas na definovanie novej * úrovne, funkcia jednoducho vráti úroveň svetla. */ long candle:: levelnow (void) {long help, now; plavák t1, t2; teraz = millis (); if (now> = targettime) {help = target; newtarget (); pomoc pri návrate; } else {// help = target * (millis () - starttime) / deltatime + start * (targettime - millis ()) / deltatime; t1 = float (cieľový čas - teraz) / deltatime; t2 = 1. - t1; // Toto je pomoc pri výpočte sigmoidu = t1*t1*t1*štart + t1*t1*t2*štart*3 + t1*t2*t2*cieľ*3 + t2*t2*t2*cieľ; pomoc pri návrate; }} prázdna sviečka:: newtarget (neplatné) {dlhá suma; súčet = 0; for (long i = 0; i <evenout; i ++) sum+= onetarget (); štart = cieľ; cieľ = suma / nespomenúť; starttime = millis (); cieľový čas = čas začiatku + náhodný (min. čas, medzičas); deltatime = targettime - čas začiatku; } long candle:: onetarget (void) {if (random (0, 10) lastcheck + 100) {lastcheck = now; / * * Algo pre trblietanie „po milisekundách“: * Začnite kontrolovať po rýchlosti / 2 milisekundy * Počas obdobia rýchlosti / 2 milisekundy urobte * šancu, že sa mihne 50 %. * Ak je rýchlosť 10 000 ms, počas 5 000 ms je minca * obrátená 50 -krát. * 1/50 = 0,02 * Ak je náhodný (10 000) počiatočný čas + sadzba / 2) {if (náhodný (cieľový) cieľový čas) vrátiť lowlite; return (start - lowlite) * (targettime - now) / (targettime - starttime) + lowlite; } void twinkler:: twink (void) {starttime = millis (); targettime = random (mintime, maxtime) + starttime; start = random (minlite, maxlite); } neplatné nastavenie () {int led; // Prečítajte si premennú režimu kúzla, ktorá by mala // povedať, aký svetelný program bol spustený naposledy, zvýšiť ho // a v prípade pretečenia resetovať na nulu. režim ++; režim %= 9; // To sa stará o akúkoľvek hodnotu // bolo to úplne prvýkrát, čo Arduino // spustil tento program. / * * DÔLEŽITÁ POZNÁMKA * =============== * * Základná vec, ktorú tento program robí, je výstup signálov PWM * do diód LED. Tu som nastavil piny 3 až 9 na * výstupný režim. Na Arduino Mega2560 tieto kolíky produkujú * pekne signály PWM. Ak máte iné Arduino, skontrolujte *, ktoré piny (a koľko) môžete použiť. Ak váš Arduino * nemôže poskytnúť dostatok hardvérových pinov PWM, kód môžete vždy * prepísať tak, aby používal softvér PWM. * */ pinMode (3, VÝSTUP); pinMode (4, VÝSTUP); pinMode (5, VÝSTUP); pinMode (6, VÝSTUP); pinMode (7, VÝSTUP); pinMode (8, VÝSTUP); pinMode (9, VÝSTUP); pinMode (LED_BUILTIN, VÝSTUP); analogWrite (LED_BUILTIN, 0); // Stačí vypnúť otravnú červenú diódu na sviečke Arduino *plechovka [7]; // pripravte sa na používanie blikajúcich sviečok, či už ich použijete alebo nie twinkler *twink [7]; // pripravte sa na používanie trblietavých sviečok … if (mode == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); while (pravda); // Zakaždým, keď sa tento program spustí, prejde do // tohto druhu nekonečnej slučky, kým nestlačíte tlačidlo reset //. } if (mode <2) // blikanie {long maxtime_; dlhý mintime_; dlhý maxlite_; dlhý minlite_; long meanlite_; dlhé párne_; if (mode == 0) {maxtime_ = 250; mintime_ = 50; maxlite_ = 256; minlite_ = 0; meanlite_ = 128; even_ = 1; } if (mode == 1) {maxtime_ = 400; mintime_ = 150; maxlite_ = 256; minlite_ = 100; meanlite_ = 200; even_ = 1; } for (int i = 0; i <7; i ++) {can = new candle (maxtime_, mintime_, maxlite_, minlite_, meanlite_, even_); } while (true) // Nekonečná slučka pre blikajúce sviečky {for (int i = 0; i levelnow ()); }} if (mode <4) // lfo added to the blikanie {if (mode == 2) // same lfo (30 s) for all candles {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 30000);}} if (mode == 3) // meniace sa lfo: s pre sviečky {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); can [1]-> initlfo (75, 50, 0, 50, 36, 25000); can [2]-> initlfo (75, 50, 0, 50, 36, 30000); can [3]-> initlfo (75, 50, 0, 50, 36, 35000); môže [4]-> initlfo (75, 40, 0, 50, 36, 40000); môže [5]-> initlfo (75, 30, 0, 50, 26, 45000); môže [6]-> initlfo (75, 20, 0, 50, 16, 50 000); môže [7]-> initlfo (75, 10, 0, 50, 6, 55000);} pričom (true) // Nekonečná slučka pre blikajúce sviečky s lfo {long lastclock = 0; for (int i = 0; i levelnow ()); if (millis ()> lastclock + 4000) {lastclock = millis (); for (int i = 0; i setlfo ();}}} if (mode <6) // blikajúce sviečky {int speedo; if (mode == 4) speedo = 6000; else speedo = 22000; for (int i = 0; i <7; i ++) twink = nový twinkler (300, 295, 255, 250, speedo); while (true) {for (int i = 0; i levelnow ()); }} // Vlny. // Táto časť sa začína zloženými zátvorkami iba //, aby sa zabezpečilo, že nebudú žiadne konfliktné názvy premenných. // Nie je potrebná žiadna zátvorka, nie je potrebné kontrolovať // hodnotu režimu.{int lolite = 2; int hilite = 255; int priemer; int ampl; float fasedelta = 2,5; float fase; int elong; plavákový faktor; dlhé obdobie; priemer = (lolit + hilit) / 2; ampl = hilit - priemer; ak (režim == 6) perióda = 1500; inak obdobie = 3500; faktor = 6.28318530718 / bodka; while (true) {fase = phactor * (millis () % period); predĺžiť = priemer + ampl * sin (fáza); analogWrite (7, predĺženie); analogWrite (9, predĺženie); fase = phactor * ((milis () + perioda / 4) % perioda); predĺžiť = priemer + ampl * sin (fáza); analogWrite (3, predĺženie); analogWrite (8, predĺženie); fase = phactor * ((milis () + perioda / 2) % perioda); predĺžiť = priemer + ampl * sin (fáza); analogWrite (4, predĺženie); analogWrite (5, predĺženie); fase = phactor * ((milis () + 3 * perioda / 4) % perioda); predĺžiť = priemer + ampl * sin (fáza); analogWrite (6, predĺženie); } // Pri pripájaní káblov sviečky k Arduinu // som ich zmiešal a nikdy som ich nedostal do poriadku. // Poradie je dôležité pre vytváranie vlnových vzorov, // tak som pre mňa napísal túto malú tabuľku: // // Sviečka# v moste: 2 3 5 4 7 6 1 // Dátový kolík na Arduine: 3 4 5 6 7 8 9}} void loop () {// Pretože každý svetelný program je vlastnou nekonečnou slučkou, // všetky slučky som napísal do sekcie begin () // a pre túto časť loop () som nič nenechal. }

Krok 6: O PWM

LED diódy svietia jasne, keď sú napájané 3 V, pri použití iba 1,5 V sa vôbec nerozsvietia. LED svetlá nezmiznú pekne s ubúdajúcim napätím, ako to robia žiarovky. Namiesto toho musia byť zapnuté na plné napätie a potom vypnuté. Keď sa to stane 50 -krát za sekundu, pekne svietia s 50 % jasom, viac alebo menej. Ak môžu byť zapnuté iba 5 ms a vypnuté 15 ms, môžu svietiť s 25 % jasom. Vďaka tejto technike je svetlo LED stmievateľné. Táto technika sa nazýva pulzná šírková modulácia alebo PWM. Mikrokontrolér ako Arduino má zvyčajne dátové piny, ktoré môžu vysielať signály zapínania/vypínania. Niektoré z dátových pinov majú vstavané funkcie pre PWM. Ale ak nie je k dispozícii dostatok pinov so vstavaným PWM, je zvyčajne možné použiť špecializované programovacie knižnice na vytvorenie „softvérových pinov PWM“.

Vo svojom projekte som použil Arduino Mega2560, ktorý má hardvérový PWM na kolíkoch 3 - 9. Ak používate Arduino UNO, máte iba šesť pinov PWM. V tom prípade, ak potrebujete 7. (alebo ešte viac) sviečku, môžem vám odporučiť softvérovú knižnicu PWM Bretta Hagmana, ktorú nájdete tu.

Odporúča: