Мені справді потрібні резистори при контролі світлодіодів за допомогою Arduino?


47

Я просто вперше випробовую Arduino Uno з двома миготливими світлодіодами на дошці. У всіх навчальних посібниках в Інтернеті, здається, використовується резистор. Я знаю функцію резисторів, але чи дійсно це має значення? Ці світлодіоди працюють нормально без резистора.


8
Це залежить від того, хочете ви, щоб ваш світлодіод плавився чи ні. Якщо ви не заперечуєте, опустіть резистор. :-).
Ден Шеппард

Відповіді:


78

Неслухняний! :-). Якщо вони кажуть використовувати резистор, це є вагома причина для цього! Вимкніть це, ЗАРАЗ!

Резистор є для обмеження струму світлодіода. Якщо ви опустите це, то обмеження струму має виходити з виходу Arduino, і це не сподобається. Як ви дізнаєтесь, яким повинен бути резистор? Ви знаєте Закон Ома? Якщо ви цього не зробите, запишіть це великими літерами:

V=IR

Напруга дорівнює опору поточного часу. Або ви могли сказати

R=VI

Це те саме. Напруга, яку ви знаєте: Arduino працює на 5V. Але не все, що перейде над резистором. Світлодіод також має падіння напруги, як правило, близько 2 В для червоного світлодіода. Так залишається 3В для резистора. Тоді типовий світлодіодний індикатор матиме номінальний струм 20 мА

R=5V2V20mA=150Ω

У Arduino Uno використовується мікроконтролер ATmega328 . Лист даних говорить, що струм для будь-якого контакту вводу / виводу не повинен перевищувати 40 мА, що зазвичай називають абсолютними максимальними рейтингами. Оскільки у вас немає нічого для обмеження струму, існує лише (низький!) Опір вихідного транзистора. Струм може бути вище 40 мА, і ваш мікроконтролер зазнає пошкоджень.

Редагувати
Наступний графік із таблиці даних ATmega показує, що станеться, якщо ви будете керувати світлодіодом без обмежувача струму:

введіть тут опис зображення

Без навантаження вихідна напруга становить 5В, як очікувалося. Але чим більший струм, який витягується, тим меншою буде напруга на виході, вона знизиться приблизно на 100 мВ для кожного додаткового навантаження 4 мА. Це внутрішній опір 25 . Тоді Ω

I=5V2V25Ω=120mA

Графік не так далеко, опір буде зростати з температурою, але струм залишиться дуже високим. Пам'ятайте, що аркуш дав 40mA як абсолютний максимальний рейтинг. У вас це три рази. Це однозначно пошкодить порт вводу / виводу, якщо ви робите це тривалий час. І, мабуть, і світлодіод. Індикатор 20mA часто має 30mA як абсолютний максимальний показник.


2
Не зовсім. 3 і ви не отримаєте жодного світла, тому що 3 x 2V> 5V і 2 у вас буде та сама проблема, лише 1В крапля замість 3В. Я додав свою відповідь, щоб зараз її вимкнути!
stevenvh

21
Я втратив рахунок, скільки разів я написав цей розрахунок у відповідях тут. У мене повинен бути сценарій для цього :-)
stevenvh

2
Світлодіоди призначені для роботи при певному максимальному струмі. Напруга, керуючи ними, означає, що струм є неконтрольованим. Порти зроблені для забезпечення певного максимального струму. Затягування їх або перевантаження їх МОЖЕ запозичити, щоб зафіксувати або повністю знищити ІМС або просто спричинити тонкі робочі проблеми. Чи ні.
Рассел Макмахон

4
@ JohnR.Strohm Я б не назвав це галузевим стандартом.
м.Алін

2
@ JohnR.Strohm - Як каже м.Алін, це не галузевий стандарт. Digikey перераховує 10 мА номінальних світлодіодів, що знаходяться в межах від 0,4 мкд до 1000 мкд, а 20 мА світлодіоди - від 0,1 мкд до 54000 мкд. У ньому немає жодної лінії, і немає гарантії, що ваш 10mA світлодіод буде добре видно. Напруга червоного світлодіода зазвичай коливається від 1,8 до 2,2 В. Для червоного світлодіода 1.6V виключно низький.
stevenvh

22

40plot,

Я мушу сказати, що керування світлодіодом без резистора НЕ РЕКОМЕНДУЄТЬСЯ, якщо ви не знаєте, що робите. Однак якщо ви розумієте, як поводить світлодіод, можете безпечно керувати ним без резистора. Власне кажучи, керування світлодіодом без обмежувального струму резистора часто краще.

Чому б ви керували світлодіодом без резистора? Простий, щоб зробити вашу схему більш енергоефективною.

Чи слід керувати світлодіодом із встановленою ШІМ на постійний робочий цикл (тобто 5 В ШІМ при 34% робочому циклі для досягнення середньої напруги 1,7 В)?

Так і ні. Використання ШІМ може працювати так само добре, як і подання певної напруги (якщо ви обережні), але є кращі способи. Що слід турбуватися, коли застосовувати підхід до ШІМ.

  1. Важлива частота ШІМ. Використовуючи ШІМ у цьому сценарії, ви покладаєтесь на здатність компонентів схеми тимчасово обробляти сильні струми. Ваші найбільші занепокоєння полягатимуть у тому, як світлодіод обробляє тимчасовий сильний струм і як вихідна схема вашого мікросхеми може обробляти тимчасово високий струм. Якщо ця інформація не вказана в аркуші, тоді автори даних лінувалися. АЛЕ !!! Якщо ця інформація простежується на аркуші, тоді ви можете сміливо нею скористатися. Наприклад, світлодіод, який у мене поруч, має максимальний номінальний струм 40 мА. Тим не менш, він також має "Піковий форвардний струм" 200mA, із зауваженням, що струм не може залишатися на рівні 200mA довше 10с. Soooo ... Я можу керувати світлодіодом з 1,7 В (світлодіоди типовими напругою вперед з аркуша). З робочим циклом 34% і джерелом живлення 5 В (34% 5 В = 1,7 В) буде вироблятися середня напруга 1,7 В, мені просто потрібно, щоб мій ШІМ вчасно становив 10 або менше. Під час ввімкнення струм через світлодіод, швидше за все, зросте приблизно до 58 мА (58 мА = типовий розрив струму на 1,7 В мого діода, розділений на 34%). 58mA перевищують мої світлодіоди постійного струму максимумом 40mA на 18 mA. Нарешті ... мені знадобиться частота ШІМ 33,3 кГц або більше, щоб безпечно керувати своїм світлодіодом (33,3 кГц = зворотний час [10 увімкнено час, поділене на 34%, щоб отримати період ШІМ]). У дійсності я міг би сміливо використовувати ШІМ для живлення свого світлодіода з повільнішою частотою ШІМ. Причина така: Листи даних зазвичай не вказують усіх дійсних сценаріїв роботи компонента. Вони не розглядають ці сценарії, тому що постачальник не ' не хочу інвестувати час у пошук та підтримку використання їх компонентів для кутових справ. Наприклад, за допомогою мого світлодіода, якщо я можу керувати світлодіодом на 40mA назавжди (40mA - це максимальний показник постійного струму), і я можу керувати світлодіодом при 200mA протягом 10us. Тоді я можу бути 99,99999% впевненим, що я можу спокійно керувати світлодіодом при 100mA протягом певного періоду довше, ніж 10us, ймовірно, близько 20us.

Примітка: Всі компоненти можуть безпечно обробляти тимчасові поточні шипи вище їх максимальних значень до тих пір , як тривалість кидків струму є досить малий . Деякі компоненти будуть більш прощаючими, ніж інші, і, якщо вам пощастить, у листі даних компонента буде вказано, наскільки добре він може справлятись з шипами струму.

  1. Напруга вашої ШІМ має важливе значення. Я продемонструю свою точку прикладу замість пояснення. Якщо ми використовуємо світлодіод, про який я говорив раніше, ми знаємо, що 34% робочий цикл при 33,3 кГц при 5 В є безпечним. Однак якби наша напруга становила 12В, нам доведеться переробити наші розрахунки, щоб зберегти стільки ж струму, що протікає через світлодіод. Для нашого робочого циклу потрібно знизитися до 14,167% (1,7 В, поділене на 12 В), а наша мінімальна частота ШІМ зменшиться до 14,285 кГц (обернена частина [10, поділена на 14,167%]). ЗАРАЗ!, це викликає занепокоєння. У сценарії 5V ми застосовуємо 5V для 10us, а в сценарії 12V - 12V для 10us. Ми більше ніж удвічі збільшили напругу протягом цих 10х, це повинно бути певними наслідками. І так, є! Мій таблиця світлодіодів не дає мені даних, необхідних для того, щоб знати, наскільки високою напругою я можу користуватися за 10ус, перш ніж пошкодити світлодіод. Безумовно, 1000В на 10ус обсмажить мій світлодіод. Але, як я можу знати, якщо 5V в 10us буде обсмажувати мій світлодіод? або 12В на 10ус? Якщо для цього немає специфікації, ви ризикуєте. Отже ... 5V на 10us - ризиковано, але, швидше за все, безпечно.

ПРИМІТКА: Ви можете додати конденсатор до ланцюга, щоб середньовизначити ШІМ і усунути цю проблему.

  1. Підхід ШІМ керує світлодіодом у відкритому циклі (і це робить джерело живлення 1,7 В без ШІМ). Ви застосовуєте до світлодіода середню напругу, яка є лише правильним значенням для включення світлодіода, але недостатньо високою, щоб пошкодити світлодіод. На жаль, діапазон напруги від включеного (і досить яскравого, щоб побачити) до пошкодженого світлодіода дуже малий (такий діапазон на моєму світлодіоді становить приблизно 0,7 В). Існують різні причини, чому 1.7V, на який ви думаєте, що подаєте заявку, не завжди буде 1.7V ...

а. Зміни температури навколишнього середовища. Що робити, якщо у закритому ящику, який також містив світлодіод, у вас був драйвер двигуна, регулятор напруги тощо. Ці інші компоненти не будуть рідкістю підвищувати температуру навколишнього середовища всередині корпусу з 25С до 50С. Чи не Це підвищення температури БУДЕ змінити поведінку вашого світлодіода, ваш регулятор напруги, і т.д .. Ваш раз безпечно 1.7V більше не буде 1.7V і ваш світлодіод , який використовується для малюків на 2.5V тепер буде смажити на 2 ..

б. Зміни напруги живлення. Що робити, якщо ваш прилад був акумулятором. Коли акумулятор зливається, напруга значно падає. Що робити, якщо ви сконструювали свою схему, щоб вона добре працювала з дещо використаним 9В акумулятором, але потім ви додали свіжий 9В акумулятор. Нові 9V свинцево-кислотні акумулятори мають фактичну напругу 9,5 В. Залежно від ланцюга, який забезпечує 5 В, що використовується для ШІМ, додаткові 0,5 В можуть збільшити ваші ШІМ до 5В до 5,3 В. Що робити, якщо ви використовували акумулятор? Вони мають ще більший діапазон напруг протягом усього циклу розряду.

c. Є й інші сценарії, наприклад, індукований струм від EMI (мотори будуть робити це).

Наявність обмежувального резистора струму позбавляє вас від багатьох цих проблем.

Використання ШІМ для керування світлодіодом не дуже вдале рішення, чи є кращий спосіб, який не потребує обмежувача струму?

Так! Робіть те, що вони роблять на світлодіодних лампочках для вашого будинку. Приводите світлодіод за допомогою контролера струму. Встановіть контролер струму, щоб він керував поточним для вашого світлодіода.

Завдяки належному контролеру струму, його можна значно збільшити, і ви можете безпечно керувати світлодіодом, не турбуючись про більшість проблем, пов'язаних із відкритим контуром, що управляє світлодіодом.

Мінус: Вам потрібен контролер струму, і ви збільшили складність схеми на 10 разів. Не відмовляйтесь від цього. Ви можете придбати мікросхеми поточного контролера, мікросхеми світлодіодного драйвера або зробити власний перетворювач струму під керуванням струму. Це не так складно. Витратьте трохи часу від вашого напруженого розкладу та дізнайтеся про перетворювачі підвищення та доларів. Дізнайтеся про перемикання джерел живлення. Це те, що забезпечує ваш комп'ютер, і вони надзвичайно енергоефективні. Тоді або будуйте його з нуля, або купуйте недорогий ІС, щоб зробити більшу частину роботи за вас.

Звичайно, як і у всіх електронних конструкціях, завжди можна зробити більше, щоб покращити схему. Перегляньте малюнок 3 у наступному PDF, щоб побачити, наскільки складною може бути навіть побутова світлодіодна лампочка в наші дні ...

http://www.littelfuse.com/~/media/electronics/design_guides/led_protectors/littelfuse_led_lighting_design_guide.pdf.pdf

Підсумовуючи це: ви самі повинні вирішити, який ризик ви готові взяти на себе з ланцюга. Використання 5В ШІМ для керування світлодіодом, швидше за все, спрацює нормально (особливо, якщо ви додасте конденсатор, щоб згладити квадратну хвилю ШІМ і збільшити максимум своєї частоти ШІМ). Не бійтеся виштовхувати електроніку поза звичайними умовами експлуатації, просто будьте в курсі, коли ви це зробите, знайте про ризики, які ви берете на себе.

Насолоджуйтесь!

FYI: Я здивований тим, що багато людей негайно переходять до відповіді: "ВАМ ПОВИНЕН ВИКОРИСТИТИ ТОЧНИЙ ОГРАНИЧНИЙ РЕЗИСТОР". Це цілеспрямована, але надто безпечна порада.

Орт


Я здивований, побачивши, як багато людей вважали цю відповідь цінною порадою з дизайну. Керування світлодіодом без обмеження струму за допомогою ШІМ настільки ж погано для світлодіода, як і те, що робить ОП, плюс це призведе до пульсації EMI та VCC, як аварії.
Дмитро Григор’єв

1

Ви можете використовувати вбудовані резистори, як запропоновано тут :

Пульсові резистори забезпечують достатній струм для слабкого освітлення світлодіода, підключеного до штифта, який був налаштований як вхід.


Не для світлодіодів, це може використовуватися для кнопок, але для світлодіодів існує небезпека
пошкодження

якщо це не безпечно, чому офіційні документи так говорять? (Я також спробував себе, і це спрацювало, як описано.)
eadmaster

Прочитайте OUTPUT, вона згадує, що йому потрібен серійний резистор: "Цього достатньо струму, щоб яскраво засвітити світлодіод (не забудьте серійний резистор), або запустити багато датчиків, наприклад, але недостатньо струму для роботи більшості реле, соленоїди чи мотори ".
Менелаос Вергіс

0

Відповідь від stevenvh пояснює, що вам потрібно зробити, але ви також повинні розрахувати розсіювання потужності по світлодіоду, щоб не вигоряти резистор падіння напруги. Наприклад, якщо напруга живлення становить 5 В, а напруга резистора в передньому напрямку - 1,0 В, тоді ви будете скидати 4 В. Використання резистора 220 Ом призведе до струму (I = V / R) 18mA і розсіювання потужності (P = IV) 72mW.

0402 Імперський розмір (1005 метричних) резисторів, як правило, 1/16 Вт, що становить 62,5 мВт. Так що в цьому випадку це не спрацювало б; це перегріє резистор і скоротить його термін експлуатації. Тому вам потрібно буде перейти на резистор 0402 з номіналом 1/10 Вт або на більший резистор 0603.

Щоразу, коли ви робите такі розрахунки, додайте їх до схеми, щоб рецензент міг легко перевірити вашу роботу.

Зверніть увагу, що напруга вперед (а значить, значення резистора) є функцією світлодіода, а різні кольори світлодіодів матимуть різні значення. Зокрема, сині світлодіоди мають високу напругу вперед (~ 3,0 В). Отже, якщо ви намагаєтеся отримати чотири різних світлодіоди, щоб мати однакову яскравість, то вам потрібно буде повторити обчислення для кожного світлодіода. Щоб дійсно зробити це правильно, подивіться на оптичні характеристики кожного світлодіода за його номінальним струмом і відповідно відрегулюйте його.


0

Коротка відповідь - так і ні, це залежить від вашого ардуїно, і це залежить від кольору вашого світлодіода. Наприклад, плата 3,3 В не потребує послідовного резистора з маленьким зеленим світлодіодом, тому що напруга світлодіода в передньому напрямку досить велике, дивіться це. Внутрішній опір становить близько 25 Ом, візьміть (3,3 - 3) / 25 = 12 мА, тому це все-таки добре, не слід переходити максимальний струм на один штифт, який становить 40 мА для 328p atmel-процесора, який використовується на платах UNO (якщо тільки ви використовуєте похідне 328p, де це може бути інша історія). Однак для ардуїно, що працює на 5 В, виникне проблема з інфрачервоним світлодіодом, який має значно нижчу напругу вперед, як правило, 1,2 В, (5-1,2) / 25 = 150 мА, і це, безумовно, занадто багато, тому використовуйте обмежувач струму такий як резистор для управління типом світлодіодів. Штифт 13 на дошках Arduino (або інший штифт на варіантах) вже має послідовно світлодіод і резистор. Також джерело живлення на платі має максимальний показник, як правило, 200mA, і ви повинні залишатися під цим рівнем, і ви не можете намалювати більше певної кількості mA на групу штифтів, це пояснюєтьсятут . Якщо ви хочете керувати багатьма світлодіодами, тоді подумайте про використання матричного світлодіодного драйвера, який виконує мультиплексування для вас, див., Наприклад, мій сайт YouTube, де я демонструю драйвер MAX7219CNG. Але також Arduino Uno може зробити для вас мультиплексування, дивіться мій ІК-термометр з 4 семисегментними світлодіодами на youtube. Щасливий злом.


-3

ТАК! Це можна зробити.

Незважаючи на те, що сказане є правильним .... є інший спосіб. Більш енергоефективний спосіб керування світлодіодами з 5В.

Це трохи недокументовано, і невідомо, чи рішення зносить світлодіоди, але це можна зробити. Я насправді це роблю.

Використання ШІМ апаратним шляхом: Ось приклад :

#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;
    }
}

ШІМ можна також моделювати за допомогою програмного забезпечення та таймерів avrs. Ви можете знайти приклад всередині бібліотеки lufa, який називається LEDNotifier.c.

Мій висновок: можна керувати світлодіодом на 5В.

ПРО: Не потрібно резистора. Певна економія енергії (~ 50%)

СУПО: Я не знаю, чи є компонент під напругою, і про скорочення його життя.

Є хлопець, який також робив цей експеримент у Стенфорді та розмістив інформацію на своєму сайті .


2
Це просто не здається гарною ідеєю. Ви, мабуть, отримуєте більш високий струм від контролера, ніж це оцінено, навіть якщо ви цього не робите дуже довго.
Скотт Сейдман

Як говорилося, це недокументовано. IO вихід Arduino UNO може проїхати близько 40ma-50ma. Це постійна. Я точно можу впоратися з дуже короткими імпульсами з більшим струмом. Будь ласка, подивіться на wikipedia .
Гаспар де Еліас

У середовищі Arduino можна отримати легше ШІМ analogWrite()за допомогою відповідного штифта. Все ще не впевнений, що це гарна ідея, але принаймні для ІК-світлодіодів, як правило, для аркушів даних дозволяють значно перевищувати пікові струми для робочих циклів менше 100%.
мікротерйон

Я майже впевнений, що економія енергії буде негативною порівняно з рішенням на основі резистора, оскільки ефективність світлодіодів стає меншою із збільшенням струму.
Дмитро Григор’єв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.