Андрей Смирнов
Время чтения: ~5 мин.
Просмотров: 0

Как регулировать яркость светодиодной лампы

Варианты аналогового управления яркостью

Аналоговое регулирование яркости реализуется регулировкой уровня постоянного тока, текущего через светодиодную цепочку. Практически это делается либо изменением опорного напряжения тока светодиода внутри микросхемы, либо изменением напряжения резистора, измеряющего ток светодиодов вне микросхемы. Давайте сначала обсудим диммирование путем изменения опорного напряжения тока светодиода.

Для большинства драйверов светодиодов, включая импульсные и линейные регуляторы, ток светодиода определяется следующим выражением:

где

VREF – напряжение внутреннего опорного источника микросхемы;
RSNS – сопротивление токоизмерительного резистора.

В некоторых случаях ток светодиода можно регулировать изменением VREF. Но учтите, что не все микросхемы драйверов светодиодов позволяют пользователю изменять опорные напряжения тока светодиодов. Для тех микросхем, у которых возможность такого изменения предусмотрена, это можно сделать двумя способами. Первый заключается в подаче аналогового напряжения на имеющийся у микросхемы вход регулировки опорного напряжения. Примером такой микросхемы является LM3409 компании Texas Instruments, напряжение на выводе IADJ которой позволяет регулировать ток светодиода. Второй способ основан на регулировке опорного напряжения командами, посылаемыми через цифровой коммуникационный интерфейс, подобный I2C. Одним из примеров прибора, который имеет интерфейс I2C, позволяющий регулировать опорное напряжение тока светодиодов, может служить выпускаемая Texas Instruments микросхема TPS92660.

Рисунок 2.Схема аналогового диммирования управляет напряжением на входе
подключения токоизмерительного резистора.

Другой распространенный метод аналогового диммирования основан на изменении напряжения, приходящего с токоизмерительного резистора. В большинстве приложений сопротивление этого резистора RSNS бывает меньше 1 Ом, поэтому изменять его величину с помощью переменного резистора совершенно непрактично. Вместо этого изменяют напряжение на входе CS микросхемы, вводя туда внешнее постоянное напряжение. На Рисунке 2 показана типичная схема аналогового регулятора яркости, работа которого основана на изменении напряжения на токоизмерительном резисторе. Напряжение на выводе CS (current sense) определяется следующей формулой:

В установившемся состоянии напряжение на выводе CS равно опорному напряжению. Изменить ток светодиода можно либо подстройкой внешнего постоянного напряжения VADJ, либо регулировкой сопротивления переменного резистора R2.

Использование аналогового диммирования в приложениях смешения цветов имеет недостатки. С изменением тока светодиода может меняться его цветовая температура. Во время аналоговой регулировки яркости могут меняться яркости и цвета светодиодов, особенно при значительных изменениях тока. В таких условиях система не сможет сформировать желаемый цвет.

Принцип работы схемы

Рассматриваемая схема устройства регулирования силы свечения светодиода на микроконтроллере AVR ATmega32 приведена на следующем рисунке.

В микроконтроллере ATmega32 четыре ШИМ (PWM) канала используются на четырех контактах. Мы можем использовать только выход ШИМ на этих контактах. Поскольку мы решили использовать PWM0 (8-битный канал) мы должны использовать ШИМ сигнал с контакта OC0 (PORTB 3-й контакт). Как можно видеть из схемы, мы соединяем базу транзистора к контакту OC0 микроконтроллера чтобы управлять мощным светодиодом.

Параллельно кнопкам увеличения/уменьшения яркости свечения подсоединены конденсаторы для предотвращения биений (нежелательных колебаний, шумов). Всегда, когда нажата кнопка, на контакте, к которому она подсоединена, присутствует определенный шум. Этот шум стабилизируется в течение нескольких миллисекунд. Но для микроконтроллера пики этого шума (до того как он стабилизируется) действуют как триггеры. Этот эффект можно исключить как программным, так и аппаратным способом, программным – проще. Но мы в данной схеме используем аппаратный способ путем добавления конденсаторов, которые сводят к нулю эффект биения от кнопок.

В микроконтроллерах ATmega есть два способа генерации ШИМ:

  1. Фазовая (правильная) ШИМ.
  2. Быстрая ШИМ.

Мы будем использовать более простой способ – быстрый метод формирования ШИМ.

Сначала необходимо выбрать частоту ШИМ, которая будет зависеть от используемого приложения (применения). Для светодиода эта частота должна быть не менее 50 Гц. Мы выберем частоту счетчика времени 1 МГц. Теперь чтобы получить быструю ШИМ 50 Гц на микроконтроллере ATmega, мы должны задействовать соответствующие биты в регистре TCCR0 – это единственный регистр, который нам будет нужен для получения 8 битной быстрой ШИМ.

На представленном рисунке:

1. CS00, CS01, CS02 (выделены желтым цветом) – выбирают prescalar (предварительное масштабирование) для выбора частоты временного интервала. Таблица для соответствующих prescalar показана на рисунке ниже. Таким образом, для предварительного масштабирования, равного 1, oscillator clock=counter clock (шкала осциллятора равна шкале счетчика). То есть установим CS00=1, остальным двум битам установим нулевые значения.

2. Биты WGM01 и WGM00 изменяют чтобы выбрать нужный режим генерации формы сигнала. Исходя из необходимых нам параметров (быстрая ШИМ – Fast PWM) по таблице, представленной на следующем рисунке, выбираем WGM00=1 и WGM01=1.

3. Теперь мы знаем, что ШИМ – это сигнал с различными интервалами ON и OFF сигнала (различными продолжительностями включения). Для получения различных продолжительностей включения (отношение длительности импульса к периоду повторения) нам необходимо выбрать значение между 0 и 255 (от 0 до 2^8 поскольку мы используем 8 битную ШИМ). Допустим мы выбрали значение 180, это значит что счетчик начинает счет от 0 и когда он достигает значения 180, то отклик на выходе может быть приведен в действие (запустится триггер). Этот триггер может быть инвертирующим и неинвертирующим. То есть выход можно сконфигурировать так, чтобы по достижении счетчиком заданного значения он либо опускал фронт импульса, либо поднимал его. Этот выбор производится с помощью установки битов CM00 и CM01 (выделены зеленым цветом на рисунке выше).

Как показано в следующей таблице, с помощью установки этих битов можно выбрать режим как с инвертированием, так и без инвертирования. Мы выберем режим с инвертированием, таким образом установим эти биты в COM00=1 и COM01=1.

За установку того самого значения, которое задает различные продолжительности включения (отношение длительности импульса к периоду повторения), в микроконтроллере ATmega32 отвечает байт OCR0 (Output Compare Register 0) – в нем сохраняется нужное нам значение от 0 до 255. Пример выбранного нами режима инвертирования показан на рисунке ниже. Таким образом, если мы запишем в OCR0=180, то контроллер будет изменять уровень сигнала на выходе когда счетчик досчитает до 180 (начиная с 0).

Если необходимо будет изменить яркость свечения светодиода, то тогда в байт OCR0 следует записать другое число (вместо 180). В представленной схеме присутствуют 2 кнопки. Одна кнопка служит для увеличения числа в байте OCR0 (увеличение яркости свечения), а другая – для уменьшения числа в байте OCR0 (уменьшение яркости свечения).

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации