Подключение светодиода к микроконтроллеру
Светодиод подключают к выводу микроконтроллера через резистор, который задаёт ток: R = (Uвыв − Uпр) / I. Считать нужно по реальному напряжению вывода под нагрузкой и по максимальному прямому напряжению светодиода из даташита, а цепочки на 12 В и мощные светодиоды включать через транзистор.
Обновлено Редакция GAW
Светодиод подключают к выводу микроконтроллера последовательно с резистором. Резистор задаёт ток: на нём падает разница между напряжением вывода и прямым напряжением светодиода. Без резистора ток ограничен только выходным сопротивлением вывода — светодиод и вывод перегружаются.
Коротко
Светодиод на выводе
Есть два включения. В первом (а) вывод в единице отдаёт ток: анод через резистор к выводу, катод на общий провод — светодиод горит при digitalWrite(pin, HIGH). Во втором (б) вывод в нуле принимает ток: анод через резистор к плюсу питания, катод к выводу — светодиод горит при LOW. Второй вариант нужен, когда напряжения вывода не хватает на светодиод, а также для выводов с открытым стоком.
Расчёт резистора
Пример 1: Arduino Uno, вывод 5 В, красный светодиод Kingbright WP7113ID. Прямое напряжение при 10 мА — 1,9 В типично, 2,3 В максимум. Резистор на 10 мА: R = (5 − 1,9)/0,01 = 310 Ом → 330 Ом. Ток — (5 − 1,9)/330 = 9,4 мА при типичном светодиоде и (5 − 2,3)/330 = 8,2 мА при максимальном прямом напряжении. Мощность резистора 0,00942 · 330 ≈ 29 мВт — подойдёт любой.
Вывод не идеальный источник: у ATmega328P при токе 20 мА и питании 5 В напряжение единицы гарантировано только не ниже 4,2 В, а нуля — не выше 0,9 В (DS40002061B, табл. 30-1, до 85 °C). При 10 мА потери меньше, но тоже есть.
Пример 2: STM32 с питанием 3,3 В, тот же светодиод на 8 мА. У STM32F072 при токе 8 мА напряжение единицы не ниже VDD − 0,4 В, то есть 2,9 В (DS9826, табл. 54). Резистор по типичным значениям: (3,3 − 1,9)/0,008 = 175 Ом → 180 Ом. В худшем случае — вывод 2,9 В и светодиод 2,3 В — ток (2,9 − 2,3)/180 = 3,3 мА: светодиод будет светить заметно тусклее. Чем ближе прямое напряжение к напряжению питания, тем сильнее разброс тока.
Пересчитать под свои значения:
Исходные данные
Типичный диапазон 1,8–2,5 В: возьмите Vf из даташита своего светодиода
у каждой свой резистор
Результат
- Резистор
- 150 Ом
- расчётное 150 Ом, округлено вверх по E24
- Ток через светодиод
- 20 мА
- Мощность резистора
- 60 мВтберите резистор не меньше 0,125 Вт
- Напряжение на резисторе
- 3 В
- Мощность одного светодиода
- 40 мВт
- Общий ток от источника
- 20 мА
- КПД (доля мощности на светодиодах)
- 40 %
Цепочка светодиодов на 12 В
Если светодиодов много или нужен большой ток, их питают от отдельного источника, а вывод управляет транзистором. Последовательная цепочка с одним резистором экономичнее: через все светодиоды течёт один ток.
Расчёт. Три красных WP7113ID на 10 мА от 12 В, ключ — BC547B.
- Напряжение на цепочке: 3 · 1,9 = 5,7 В типично, 3 · 2,3 = 6,9 В максимум.
- На насыщенном BC547B при 10 мА и токе базы 0,5 мА — не больше 0,25 В (BC546/D).
- Резистор: R2 = (12 − 5,7 − 0,25)/0,01 = 605 Ом → 620 Ом. Ток — 9,8 мА с типичными светодиодами и (12 − 6,9 − 0,25)/620 = 7,8 мА с худшими. Мощность 0,00982 · 620 ≈ 0,06 Вт.
- Ток базы — 0,5 мА, как в условиях, при которых нормировано напряжение насыщения: R1 = (3,3 − 0,7)/0,5 мА = 5,2 кОм → 4,7 кОм (0,55 мА). R3 держит транзистор закрытым после сброса.
Для нескольких цепочек каждой нужен свой резистор — в калькуляторе это поле «параллельных цепочек». Ставить параллельные светодиоды на один резистор нельзя: прямые напряжения разных экземпляров различаются (у WP7113ID — от типичных 1,9 до 2,3 В), и ток распределится неравномерно. Для светодиодных лент и токов в сотни миллиампер вместо BC547B берут ключ на MOSFET.
Детали
| Позиция | Деталь | Примечание |
|---|---|---|
| VD1 | Kingbright WP7113ID, красный, 5 мм | 30 мА постоянного тока, обратное напряжение 5 В, −40…+85 °C |
| R1 (пример 1) | 330 Ом | от вывода 5 В, 9,4 мА |
| R1 (пример 2) | 180 Ом | от вывода 3,3 В, 3,3–7,8 мА |
| VD1–VD3 | WP7113ID | цепочка на 12 В |
| R2 | 620 Ом, 0,125 Вт | на 10 мА |
| VT1 | BC547B | до 100 мА; больше — P2N2222A или MOSFET |
| R1, R3 | 4,7 кОм, 10 кОм | цепь базы |
Яркость и мигание
Яркость регулируют ШИМ: светодиод включается и выключается с частотой выше заметной глазу, а средняя яркость пропорциональна заполнению — подобрать частоту и заполнение поможет калькулятор ШИМ. Импульсный ток может быть больше постоянного: у WP7113ID допустимо 160 мА, но только при заполнении 1/10 и длительности импульса 0,1 мс. На этом строится динамическая индикация, где каждый разряд горит часть времени.
Почему не работает
- Светодиод не горит. Перепутана полярность: анод (длинный вывод) должен быть со стороны плюса. Обратное напряжение у WP7113ID — всего 5 В.
- Горит наоборот. Светодиод подключён по схеме «вывод принимает ток», а программа считает, что единица его включает.
- Синий или белый еле светит от 3,3 В. Прямое напряжение (у WP7113QBC/D до 4,0 В) больше напряжения вывода — питайте от 5 В через ключ.
- Яркость разная у одинаковых светодиодов. Параллельные светодиоды на одном резисторе или малый запас напряжения на резисторе: разброс прямого напряжения превращается в разброс тока.
- Вывод греется, микроконтроллер сбрасывается. Нет резистора или превышен суммарный ток выводов: у STM32F072 — 80 мА на все выводы, у ATmega328P — 100 мА в нуле на группу выводов.
- Синий светодиод перестал светить после пайки. У WP7113QBC/D стойкость к электростатическому разряду всего 250 В по модели тела человека против 8000 В у красного WP7113ID: работайте с заземлённым браслетом.
Частые вопросы
Какой резистор нужен для светодиода на Arduino?
Для красного светодиода и вывода 5 В при токе 10 мА: R = (5 − 1,9) / 0,01 = 310 Ом, ставят 330 Ом. Ток 9 мА — достаточно для индикатора. Можно и 20 мА (у WP7113ID допустимо до 30 мА), но вывод ATmega328P при таком токе отдаёт уже не 5 В, а не меньше 4,2 В — пересчитайте резистор.
Можно ли подключить светодиод к выводу без резистора?
Нет. Светодиод — диод, ток через него растёт очень круто с напряжением, и без резистора его ограничивает только выходное сопротивление вывода. Ток превысит допустимый и для светодиода (у WP7113ID — 30 мА), и для вывода (у ATmega328P — 40 мА, у STM32F072 — 25 мА).
Почему синий светодиод еле светит от 3,3 В?
У синих и белых светодиодов прямое напряжение около 3 В и выше: у Kingbright WP7113QBC/D — 3,3 В типично и до 4,0 В при 20 мА. От вывода 3,3 В на резистор не остаётся напряжения, и ток мал. Такие светодиоды питают от 5 В через транзисторный ключ.
Сколько светодиодов можно подключить к одному микроконтроллеру?
Ограничен не только ток каждого вывода, но и суммарный ток. У STM32F072 сумма токов всех выводов — не больше 80 мА, у ATmega328P сумма токов выводов в одной группе — 100 мА в нуле и 150 мА в единице. Для многих светодиодов используют динамическую индикацию, сдвиговые регистры, драйверы или транзисторные ключи.
Источники
- Kingbright. WP7113ID: T-1 3/4 (5 mm) Solid State Lamp (DSAF0012, Rev V.14A) — прямое напряжение при 10 мА, предельные постоянный и импульсный ток, обратное напряжение, мощность, температура
- Kingbright. WP7113QBC/D: T-1 3/4 (5 mm) Solid State Lamp (DSAG3481, Rev V.18B) — синий светодиод: прямое напряжение при 20 мА, предельный ток, стойкость к разряду
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — разд. 29.1 (предельный ток вывода), табл. 30-1 и примечания 3, 4 (выходные напряжения при 20 мА, суммарные токи групп выводов)
- STMicroelectronics. STM32F072x8 STM32F072xB datasheet (DS9826 Rev 6) — табл. 22 (токи вывода и суммарный ток), табл. 54 (выходные напряжения при 8 и 20 мА)
- onsemi. BC546B, BC547A, B, C, BC548B, C: Amplifier Transistors, NPN Silicon (BC546/D) — даташит, ред. 8: напряжение насыщения при 10 мА и токе базы 0,5 мА
Нашли ошибку?
Смотрите также
- Резистор для светодиодаНоминал и мощность гасящего резистора
- Ключ на транзистореНижний ключ на NPN: ток и резистор базы, мощность, PNP и ULN2003A
- Ключ на MOSFETЛогический уровень, резисторы затвора, потери и нагрев, ШИМ, 3,3 В
- ЦАП на ШИМПульсации после RC, установление, разрешение
- Пины ArduinoПин Arduino → порт ATmega, ШИМ, прерывания и регистры
- ATmega328PРаспиновка, фьюзы, Optiboot, периферия, питание, схема и код на C