Arduino PWM, управляющий мощным светодиодом

Я хочу использовать один из выходов PWM Arduino для управления мощным светодиодом. Я не могу вспомнить точные характеристики, но они были значительно более актуальными, чем может предоставить ATMega328.

Я понимаю, что обычно это достигается с помощью транзистора и резистора для управления током светодиода. Однако я не хочу, чтобы светодиод становился менее ярким при просадке напряжения батареи, и поэтому я хочу использовать источник постоянного тока вместо резистора.

Моей первой мыслью было использовать LM317. Однако я хочу знать, может ли он реагировать на частоте 64 кГц, что ему нужно?

В качестве альтернативы, могу ли я использовать простой полевой МОП-транзистор, чтобы сделать то же самое дешевле и проще? (Тогда мне не понадобился бы ни транзистор, ни источник постоянного тока, так как МОП-транзистор сделал бы и то, и другое)

Спасибо, Роб.

Вам действительно нужно модулировать на частоте 64 кГц? Если вы просто пытаетесь контролировать видимую яркость, это быстрее, чем требуется. Некоторые дополнительные детали, такие как диапазон напряжения, который вы ожидаете от батареи, а также рабочий ток и напряжение светодиода, помогут дать лучший ответ.
robzy - После просмотра документации arduino функция ШИМ по умолчанию поддерживает только частоту 490 Гц. Если вы сделаете AnalogWrite(1), это преобразуется в ШИМ-сигнал с коэффициентом заполнения 0,39%. Правильно ли называть это сигналом 64 кГц?
Я хочу контролировать физическую яркость и цвет светодиода RGB. Я почти уверен, что смотрю на текущие значения 200 мА для каждого цвета светодиода. Напряжение аккумулятора должно быть 3,5-4,5В, а напряжение светодиодов варьируется в пределах 2,5-3,2В.
Некоторые интересные ответы, но этого было недостаточно для моего уровня знаний. Будущие читатели, возможно, захотят увидеть этот пост для получения подробной информации: joost.damad.be/2012/09/…

Ответы (4)

Вам не нужно 64 кГц для этого приложения, достаточно 200 Гц.

Я использовал следующую конструкцию для тока около 200 мА:

+5V --- LED --- транзистор -(1)- шунт (1 Ом) --- GND

(1) поступает на отрицательный вход операционного усилителя LM358. Важно, чтобы операционный усилитель работал до нижней шины (GND), потому что на шунте есть только небольшое напряжение.

Выход операционного усилителя управляет транзистором через соответствующий резистор.

Положительный вход подключен к делителю напряжения, который питается от вывода порта. Делитель напряжения и шунт определяют ток через светодиод.

На самом деле, я думаю, что мне нужно 64 кГц. Частота ШИМ составляет около 500 Гц, которая делится на периоды по 2 миллисекунды. На самом низком уровне (до выключения) он включен на 1/256 от этого времени, или всплесками по 8 мс. Получается 128 кГц (я случайно использовал 128 уровней в своей первоначальной оценке).
@robzy: вы имеете в виду 8 всплесков, а не 8 мс. И вы путаете ширину импульса с частотой. 500 Гц — это 500 Гц, даже если у вас рабочий цикл 0,1%.

Лист данных для LM317 показывает, что его время отклика на переход составляет порядка 10 мкс. Это будет слишком медленно для модуляции на частоте 64 кГц.

Текущий источник - правильный подход. В зависимости от общей мощности, необходимой для управления светодиодом, может работать линейный источник тока, такой как предложенный starblue, но если мощность выше, вам может потребоваться использовать понижающий регулятор.

@Клинт Лоуренс - Один шаг в прямоугольной волне 64 кГц составляет 15 мкс. Если LM317 имеет скорость нарастания 10 мкс, разве он не может справиться с этой прямоугольной волной?

Я бы использовал операционный усилитель, резистор и полевой транзистор для создания стока постоянного тока. Когда напряжение падает, операционный усилитель будет управлять затвором полевого транзистора, чтобы поддерживать постоянный ток через чувствительный резистор.

Если вы прокрутите вниз до раздела «Электронная нагрузка» на Luciani.org , вы увидите схему «тензодатчика», который представляет собой приемник постоянного тока. Вы можете ШИМ приемника, периодически устанавливая запрограммированный ток на ноль.

У меня работает прототип. Он находится в разделе "не совсем готово" на сайте wiblocks.

Вы можете подключить прецизионный резистор с низким сопротивлением последовательно со светодиодом и использовать аналоговый вход Arduino для измерения падения напряжения на резисторе. Вы можете рассчитать ток светодиода на основе этого измерения и отрегулировать рабочий цикл ШИМ-сигнала, чтобы компенсировать изменения напряжения батареи.

Обратите внимание, что это не сработает, если у Arduino нет фиксированного опорного напряжения для аналого-цифрового преобразования.