Právě zkouším Arduino Uno poprvé se 2 blikajícími diodami LED na prkénku. Všechny výukové programy na internetu zřejmě používají rezistor. Znám funkci rezistorů, ale opravdu na tom záleží? Tyto LED diody fungují bez odporu dobře.
Komentáře
- To záleží chcete-li, aby se vaše LED roztavila nebo ne. Pokud vám to ‚ nevadí, odpor vynechejte. :-).
Odpověď
Naughty! :-). Pokud řeknou, že použijí rezistor, je to dobrý důvod! Vypněte to HNED!
Rezistor je zde k omezení proudu LED. Pokud vynecháte to, že aktuální omezení musí pocházet z výstupu Arduina a nebude se mu to líbit. Jak zjistíte, jaký musí být rezistor? Znáte Ohmův zákon? Pokud tak neučiníte, zapište si ho velkými písmeny:
\ $ V = I \ cdot R \ $
Napětí se rovná aktuálnímu času odporu . Nebo můžete říci
\ $ R = \ dfrac {V} {I} \ $
Je to to samé. Napětí, které znáte: Arduino běží na 5V. Ale ne vše, co přejde přes rezistor. LED má také pokles napětí, obvykle kolem 2 V pro červenou LED. Takže u rezistoru zůstává 3 V. Typická indikační LED bude mít jmenovitý proud 20 mA, pak
\ $ R = \ dfrac {5V – 2V} {20mA} = 150 \ Omega \ $
Arduino Uno používá ATmega328 mikrokontrolér. Datasheet uvádí, že proud pro jakýkoli I / O pin by neměl překročit 40 mA, což je běžně známé jako Absolutní maximální hodnocení. Protože nemáte nic, co by omezovalo proud, existuje pouze !) odpor výstupního tranzistoru. Proud může klidně být vyšší než 40 mA a váš mikrokontrolér bude poškozen.
upravit
Následující graf z datového listu ATmega ukazuje, co se stane, když budete LED napájet bez proudu omezujícího rezistor:
Bez zatížení je výstupní napětí podle očekávání 5V. Ale čím vyšší je odebíraný proud, tím nižší bude výstupní napětí, poklesne asi 100 mV pro každou další zátěž 4 mA. To je vnitřní odpor 25 \ $ \ Omega \ $. Potom
\ $ I = \ dfrac {5V – 2V} {25 \ Omega} = 120mA \ $
Graf nejde tak daleko, odpor se bude s teplotou zvyšovat, ale proud zůstane velmi vysoký. Nezapomeňte, že v datovém listu bylo uvedeno 40mA jako absolutní maximální hodnocení. Máte to třikrát. To rozhodně poškodí I / O port, pokud to děláte delší dobu. A pravděpodobně také LED. Indikátor LED 20 mA bude často mít 30 mA jako absolutní maximální hodnocení.
Komentáře
- Ve skutečnosti ne. 3 a nevyhrajete ‚ žádné světlo, protože 3 x 2V > 5V a 2 ‚ Budu mít stejný problém, místo 3V poklesne pouze 1V. Přidal jsem ke své odpovědi, abych ji nyní vypnul!
- Ztratil jsem počítání s tím, kolikrát jsem tento výpočet napsal do odpovědí zde. Měl bych k tomu mít skript 🙂
- LED diody jsou navrženy tak, aby fungovaly při určitém maximálním proudu. Napětí, které je řídí, znamená, že proud není řízen. Porty jsou vyrobeny tak, aby poskytovaly určitý maximální proud. Zkratování nebo přetížení MŮŽE vést k poškození nebo úplnému zničení IC nebo jen způsobit jemné provozní problémy. Nebo ne.
- @ JohnR.Strohm Nenazval bych to ‚ průmyslovým standardem.
- @ JohnR.Strohm – jako m. Alin říká, že ‚ nejde o průmyslový standard. Digikey uvádí 10mA nominální LED v rozsahu od 0,4mcd do 1000 mcd a 20mA LED v rozsahu od 0,1mcd do 54000 mcd. Není v něm ‚ žádný řádek a není zaručeno, že vaše 10mA LED bude dobře viditelná. Napětí červené LED obvykle se pohybuje od 1,8V do 2,2V. Pro červenou LED je 1,6 V mimořádně nízká.
Odpověď
40plot,
Musím říci, že řízení LED bez odporu NENÍ DOPORUČENO, pokud nevíte, co děláte. Pokud však pochopíte, jak se chová LED, můžete ji bezpečně řídit bez odporu. Ve skutečnosti je řízení LED bez odporu omezujícího proud často lepší.
Proč byste řídili LED bez odporu? Jednoduché, aby byl váš obvod energeticky efektivnější.
Měli byste řídit svoji LED s PWM nastaveným na konstantní pracovní cyklus (tj. 5V PWM při 34% provozu) cyklu k dosažení průměrného napětí 1,7 V)?
Ano a ne. Použití PWM může fungovat stejně dobře jako použití konkrétního napětí (pokud jste opatrní), ale existují i lepší způsoby. Při přístupu PWM si musíte dělat starosti.
- Četnost PWM je důležitá.Při použití PWM v tomto scénáři se spoléháte na schopnost komponent vašeho obvodu dočasně zpracovat vysoké proudy. Největší obavou bude to, jak dioda LED zvládne dočasně vysoký proud a jak může výstupní obvod vašeho čipu dočasně zvládnout vysoký proud. Pokud tato informace není uvedena v datovém listu, pak autoři datového listu byli líní. ALE !!! Pokud je tato informace uvedena v datovém listu, můžete jej bezpečně využít. Například LED, kterou mám další pro mě má maximální proudový proud 40 mA. Má však také “ Peak Forward Current “ hodnocení 200 mA s poznámkou že proud nemůže zůstat na 200mA déle než 10us. Soooo … Mohu řídit LED s 1,7 V (LED typické dopředné napětí z datového listu). S pracovním cyklem 34% a napájením 5 V (34 % z 5V = 1,7V) bude produkovat průměrné napětí 1,7V, stačí se ujistit, že moje PWM včas je 10us nebo méně. n-čas, proud přes LED pravděpodobně vzroste na přibližně 58mA (58mA = typický odběr proudu při 1,7 V mé diody děleno 34%). 58 mA překračuje mé LED stálý proud maximálně 40 mA o 18 mA. A konečně … potřeboval bych PWM frekvenci 33,3kHz nebo vyšší, abych bezpečně řídil svoji LED (33,3kHz = inverzní hodnota [10us ON time děleno 34%, abych získal PWM periodu]). V REALITĚ jsem mohl bezpečně použít PWM k napájení mé LED s pomalejší frekvencí PWM. Důvod je tento: Datové listy obvykle neurčují všechny platné provozní scénáře komponenty. Tyto scénáře nedefinují, protože prodejce nechce investovat čas do spekulací a podpory použití jejich komponenty pro rohové použití. Například s mojí LED diodou, když můžu provozovat LED při 40mA navždy (40mA je maximální jmenovitý proud) a můžu provozovat LED při 200mA po 10us. Pak si mohu být 99,99999% jistý, že můžu bezpečně provozujte LED při 100 mA po určitou dobu delší než 10us, pravděpodobně téměř 20us.
POZNÁMKA: Všechny komponenty mohou bezpečně zvládnout dočasné proudové špičky nad jejich maximální jmenovité hodnoty po dobu trvání aktuální hroty jsou MALÉ DOST . Některé komponenty budou shovívavější než jiné, a pokud budete mít štěstí, datový list bude specifikovat, jak dobře zvládne špičky proudu.
- Napětí vašeho PWM je důležité. „Svůj názor ukážu na příkladu místo vysvětlení. Pokud použijeme LED, kterou jsem měl na mysli dříve, víme, že 34% pracovní cyklus při 33,3 kHz, při 5 V je bezpečný. Pokud však bylo naše napětí 12 V, by musel přepracovat naše výpočty, aby udržel stejné množství proudu protékajícího LED. Náš pracovní cyklus by musel klesnout na 14,167% (1,7 V děleno 12V) a naše minimální frekvence PWM by klesla na 14,285 kHz (inverzní hodnota [ 10us děleno 14,167%]). HOWEVER! to však vzbuzuje obavy. Ve scénáři 5V použijeme 5V pro 10us a ve scénáři 12V aplikujeme 12V na 10us.V průběhu těchto 10us jsme více než zdvojnásobili napětí, musí to mít nějaké důsledky.A ano, jsou! Můj datový list LED mi neposkytuje údaje potřebné k tomu, abych věděl, jak vysoko napětí, které mohu použít pro 10us, než poškodím svoji LED. Určitě 1000V pro 10us mi smaží LED. Ale jak poznám, jestli 5V při 10us smaže mou LED? nebo 12V pro 10us? Pokud to není specifikováno, riskujete. Takže … 5V pro 10us je riskantní, ale s největší pravděpodobností bezpečné.
POZNÁMKA: K obvodu můžete přidat kondenzátor, aby průměroval PWM a tento problém zmizel.
-
Musíte být obeznámeni s možnostmi výstupního kolíku, ke kterému jste připojili také svoji LED. Nejdůležitějším parametrem bude maximální výstupní proud. Pro Arduino Uno věřím, že je to 40mA. Měli byste zvolit pracovní cyklus PWM, jehož průměrné napětí udržuje proud procházející LED pod 40 mA. Abyste věděli, jaké napětí bude produkovat tolik proudu, musíte se podívat na křivku LED diod IV (graf závislosti proudu na napětí). U typické LED diody bude napětí mezi 0,7 V (typické minimální napětí potřebné k vyzařování světla z LED) a 1,25 V téměř jistě bezpečné. Proč je napětí 1,25 V pravděpodobně bezpečné? Většina LED nepřekročí 40 mA při 1,25 V, a to i bez rezistoru omezujícího proud. Další věcí, která pomáhá chránit někoho v případě, že použije příliš velké napětí, je to, že digitální výstupní obvod Arduina bude mít vlastní výstupní impedanci, že výstupní impedance bude nízká, ale i výstupní impedance 20 ohmů by poskytla nezanedbatelné množství ochrany. Arduino uno má digitální výstupní impedanci kolem 250 ohmů. Dlouhý příběh krátký, pokud jste řídili LED pomocí PWM při 1,0 V na vysoké frekvenci je pro typickou LED nulová šance, že poškodíte svůj digitální výstup na Arduino Uno.
-
Přístup PWM pohání LED otevřeným způsobem (a stejně tak použití 1.7V napájení bez PWM). Aplikujete na LED průměrné napětí, které má správnou hodnotu pro rozsvícení LED, ale není dostatečně vysoké na poškození LED. Bohužel rozsah napětí od ON (a dostatečně jasný, aby viděl) na poškozenou LED je velmi malý (tento rozsah na mé LED je asi 0,7V). Existuje několik důvodů, proč 1,7 V, o kterých si myslíte, že používáte, nebude vždy 1,7 V …
a. Změny okolní teploty. Co kdybyste měli ovladač motoru, regulátor napětí atd. v uzavřené skříňce, která také obsahovala LED. Nebylo by neobvyklé, aby tyto ostatní součásti zvýšily teplotu okolí uvnitř skříně z 25 ° C na 50 ° C. Toto zvýšení teploty ZMĚNÍ chování vaší LED, vašeho regulátoru napětí atd. Vaše bezpečná 1,7 V nebude déle být 1,7 V a vaše LED, která dříve smažila na 2,5 V, nyní smaží na 2,2 V.
b. Změny napájecího napětí. Co když vaším zdrojem byla baterie. Jak se baterie vybíjí, napětí značně klesá. Co když jste navrhli svůj obvod tak, aby fungoval dobře s mírně použitou 9V baterií, ale pak jste přidali novou 9V baterii. Zcela nové 9V olověné baterie mají obvykle skutečné napětí 9,5V. V závislosti na obvodu poskytujícím 5V použitém pro PWM může dalších 0,5V zvýšit vaše 5V PWM na 5,3V. Co kdybyste používali dobíjecí baterii? Během celého výbojového cyklu mají ještě větší rozsah napětí.
c. Existují i další scénáře, například indukovaný proud z EMI (motory to udělají).
Mít rezistor omezující proud vás ušetří z mnoha těchto problémů.
Použití PWM k řízení LED není příliš dobré řešení, existuje lepší způsob, který nevyžaduje rezistor omezující proud?
Ano! Dělejte to, co dělají v LED žárovkách pro váš domov. Řiďte LED pomocí aktuálního ovladače. Nastavte aktuální ovladač tak, aby poháněl proud, pro který je vaše LED dimenzována.
Se správným proudovým ovladačem , lze dramaticky zvýšit a můžete bezpečně řídit LED bez obav z většiny problémů spojených s řízením LED pomocí otevřené smyčky.
Nevýhoda: Potřebujete aktuální řadič a zdvojnásobili jste složitost obvodu. Nenechte se však odradit. Můžete si koupit integrované obvody aktuálního řadiče, integrované obvody LED diod nebo si vyrobit vlastní proudově řízený zesilovač. Není to tak těžké. Udělejte si trochu času ze svého nabitého programu a naučte se převaděče zesílení a bucků. Informace o přepínání napájecích zdrojů. Jsou to, co napájí váš počítač, a jsou extrémně energeticky efektivní. nebo si kupte levný integrovaný obvod, který za vás udělá většinu práce.
Samozřejmě, stejně jako u všech elektronických návrhů, můžete vždy udělat více věcí, abyste svůj obvod vylepšili. Podívejte se na obrázek 3 v v následujícím PDF a uvidíte, jak složitá může být v dnešní době i LED žárovka pro domácnost …
Souhrnně: Musíte se sami rozhodnout, jaké riziko jste ochotni podstoupit Vezměte s obvodem. Použití 5V PWM k řízení vaší LED bude pravděpodobně fungovat dobře (zvláště pokud přidáte kondenzátor pro vyhlazení obdélníkové vlny PWM a maximální frekvence PWM). Nebojte se tlačit elektroniku ven jejich obvyklého op stavím podmínky, jen buďte informováni, když to uděláte, znáte rizika, která podstupujete.
Užívejte si!
FYI: Jsem překvapen, kolik lidí okamžitě vyskočí na odpověď, “ MUSÍTE POUŽÍT AKTUÁLNÍ OMEZOVACÍ ODPOR „. To je dobře míněno, ale příliš bezpečná rada.
Ort
Komentáře
- I ‚ Překvapilo mě, kolik lidí považovalo tuto odpověď za cennou konstrukční radu. Řízení LED bez omezení proudu pomocí PWM je pro LED stejně špatné jako to, co dělá OP, navíc bude generovat EMI a VCC zvlnění jako divoké.
- @DmitryGrigoryev, uvědomil jsem si, že jsem úplně nedokázal řešit maximální výstupní proud digitálního výstupu. Přidal jsem novou odrážku, abych to zakryl. PWM umožňuje někomu bezpečně řídit LED bez rezistoru omezujícího proud. Zvlnění EMI a VCC se vytváří kdykoli, když poháníte zátěže digitálním signálem, ale je to běžné (např. H Bridge, Boost Converter, Hobby Servo Control atd.) A je stěží důvod se vyhnout PWM. V případě potřeby existují rozumná řešení pro zvládnutí zvlnění EMI a VCC. Většina lidí ‚ se nestará o malé množství zvlnění EMI a VCC vytvořené řízením LED s PWM.
Odpověď
Můžete použít vestavěné vytahovací odpory podle návrhu zde :
Vytahovací rezistory poskytují dostatek proudu pro slabé osvětlení LED připojené ke kolíku, který byl nakonfigurován jako vstup.
Komentáře
- Ne pro diody LED, lze je použít pro tlačítka, ale pro diody LED nebezpečí porušení výstupu
- pokud to není bezpečné, proč to tvrdí oficiální dokumenty? (I ‚ jsem se také pokusil a fungovalo to, jak je popsáno.)
- Přečtěte si prosím
OUTPUT
, uvádí, že potřebuje sériový rezistor: “ To je dostatečný proud pro jasné rozsvícení LED (nezapomeňte na sériový rezistor
) , nebo například spustit mnoho senzorů, ale nedostatek proudu pro provoz většiny relé, solenoidů nebo motorů. „
Odpovědět
Krátká odpověď je, ano i ne, záleží na vašem arduinu a na barvě vašeho LED. Například deska 3,3 V nevyžaduje rezistor v sérii s malou zelenou LED, protože dopředné napětí LED je velmi vysoké, viz toto . Vnitřní odpor je kolem 25 Ohm, vezměte (3,3 – 3) / 25 = 12 mA, takže je to stále v pořádku, neměli byste překročit maximální proud na pin, který je 40 mA pro procesor atmel 328p používaný na deskách UNO (pokud použijete derivaci 328p, kde by to mohl být jiný příběh). U arduina běžícího na 5 V se však vyskytnou potíže s infračervenou LED, která má mnohem nižší dopředné napětí, typicky 1,2 V, (5-1,2) / 25 = 150 mA, a to je rozhodně příliš mnoho, proto použijte omezovač proudu, například jako odpor k pohonu těchto LED diod. Pin 13 na deskách Arduino (nebo jiný pin na variantách) již má LED a rezistor v sérii. Napájení desky má také maximální jmenovitou hodnotu, obvykle 200 mA, a musíte zůstat pod touto úrovní a nemůžete odebírat více než určité množství mA na skupinu pinů, je to vysvětleno zde . Pokud chcete řídit mnoho LED diod, zvažte použití maticového LED ovladače, který za vás provede multiplexování, viz například moje oblast youtube, kde předvádím ovladač MAX7219CNG. Ale také Arduino Uno za vás může udělat multiplexování, viz můj IR teploměr se 4 sedmi segmentovými LED na youtube. Happy hacking.
Odpověď
Odpověď od stevenvh vysvětluje, co musíte udělat, ale musíte také vypočítat rozptyl energie přes LED, abyste nespálili rezistor poklesu napětí. Například pokud je napájecí napětí 5 V a dopředné napětí rezistoru je 1,0 V, pak poklesne o 4V. Použití rezistoru 220 ohmů bude mít za následek proud (I = V / R) 18mA a výkon rozptyl (P = IV) 72 mW.
0402 Rezistory imperiální velikosti (1005 metrických) jsou obvykle 1 / 16W, což je 62,5 mW. Takže v tomto případě by to nefungovalo; přehřál by se odpor a zkrátit jeho životnost. Budete tedy muset přejít na rezistor 0402 s hodnocením 1 / 10W nebo na větší rezistor 0603.
Kdykoli provedete takové výpočty, přidejte je do schématu, aby recenzent může vaši práci snadno zkontrolovat.
Upozorňujeme, že dopředné napětí (a tedy hodnota rezistoru) je funkcí LED a různé barvy LED budou mít různé hodnoty. Zejména modré LED mají vysoké dopředné napětí (~ 3,0 V typ). Takže pokud se snažíte získat čtyři různé LED diody, které mají stejný jas, budete muset výpočty opakovat pro každou LED. Chcete-li to udělat správně, podívejte se na optické vlastnosti každé LED při jmenovitém proudu a podle toho upravte.
Odpovědět
ANO! To se dá udělat.
I když to, co bylo řečeno, je správné …. existuje ještě další způsob. Energeticky efektivnější způsob řízení LED s 5V.
To je trochu nezdokumentováno a je není známo, zda řešení opotřebuje diody LED, ale je to možné. Vlastně to dělám.
Použití PWM pomocí hardwaru: Zde je příklad :
#include <avr/io.h> #include <util/delay.h> void pwm_init() { // initialize TCCR0 as per requirement, say as follows TCCR0 |= (1<<WGM00)|(1<<COM01)|(1<<WGM01)|(1<<CS00); // make sure to make OC0 pin (pin PB3 for atmega32) as output pin DDRB |= (1<<PB3); } void main() { uint8_t duty; duty = 1; // duty cycle = 0.39% of the time (depends on the oscillator.) // initialize timer in PWM mode pwm_init(); // run forever while(1) { OCR0 = duty; } }
PWM lze také simulovat pomocí softwaru a časovačů avrs. Příklad najdete uvnitř knihovny lufa s názvem LEDNotifier.c
.
Můj závěr: Je možné řídit LED na 5V.
PROS: Odpor není potřeba. Nějaká energie úspora také (~ 50%)
NEVÝHODY: Nevím, zda je součást namáhaná a o jejím zkrácení životnosti.
Existuje člověk, který také experimentoval ve Stanfordu a zveřejnil nějaké informace na svém webu .
Komentáře
- To prostě ‚ nevypadá jako dobrý nápad. ‚ Pravděpodobně odebíráte z ovladače více proudu, než pro který je ‚ hodnocen, i když to ‚ neděláte příliš dlouho.
- Jak již bylo řečeno, je to nedokummentováno. Výstup IO Arduino UNO může pracovat kolem 40 mA – 50 mA. To je konstantní. Určitě zvládnu velmi krátké pulsy s větším proudem. Podívejte se prosím na wikipedia .
- V prostředí Arduino lze získat PWM snadněji pomocí
analogWrite()
na odpovídajícím kolíku. Stále nejste si jisti, že je to dobrý nápad, ale přinejmenším pro IR LED diody je ‚ běžné, že pro datové listy je umožněno podstatně vyšší špičkové proudy pro pracovní cykly menší než 100% . - Jsem ‚ m docela jistý, že úspory energie budou záporné ve srovnání s řešením založeným na rezistorech, protože účinnost LED se sníží jak se proud zvyšuje.
- @ScottSeidman Proč to není ‚ dobrý nápad? jen proto, že většina lidí věří, že se nedoporučuje používat LED bez odporu? tato odpověď prokázala vyšetřování, velmi uctivý zdroj jako Stanford University a podle toho, co mohu experimentovat, to funguje. Rozhodně miluji příspěvky se sníženým hlasováním, protože říkají, že ti, kteří hlasovali dolů, jsou jen zaujatí. Jaký paradox …