Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Регулятор яркости (ШИМ) для светодиодного драйвера или велофары

ШИМ-регулятор яркости на МК ATmega8, с батарейным питанием, и индикацией заряда.

Статья предназначена для лиц, обладающих некоторыми знаниями по радиоэлектронике, а именно:

  • что такое микроконтроллер и как его прошить,
  • что такое ШИМ-регулирование,
  • что такое светодиодный драйвер.

Проект придумывался для установки на велосипед. С чего всё начиналось. Мы с друзьями частенько участвовали в ночных вело-покатушках, поэтому нужна была фара на велосипед. Ну а обычный фонарик ставить не хотелось… нужно было что-нибудь по функциональней. Например, с регулировкой яркости «маленькая / средняя / максимальная», а так как в качестве питания планировалось использовать литий-ионный аккумулятор, то нужен был ещё и индикатор уровня заряда. В интернете я видел много подобных проектов, но они чем-то меня не устраивали. Например, мне встречались проекты ШИМ-регуляторов яркости, но у них либо отсутствовал индикатор уровня заряда, либо индикатор уровня заряда был на 1…3 светодиодах, а мне не нравилась такая маленькая информативность. Ну что ж, делать так делать, и я взялся за сборку своего проекта. Итак, в качестве индикатора заряда я беру 10 светодиодов, а вернее, беру светодиодный «столбик», вот такой:

J:\Velofara_FC4_Proteus79\kingbright_led.jpg

Данный светодиодный «столбик» я заказал в интернет-магазине (в нашем городе отсутствуют радиомагазины), поэтому он приедет только через пару недель. Вместо него я временно поставил 10 обычных светодиодов.

В качестве управляющего микроконтроллера я использовал ATmega8 (либо ATmega328), так как у данного МК имеется АЦП, при помощи которого я организовал измерение уровня заряда аккумулятора. Также у данного МК имеется достаточное количество выводов (а мы ведь хотим подключить аж 10 светодиодов). Данный микроконтроллер распространён в радиомагазинах, и стоит отностиельно дёшево – в пределах 50…100 рублей, в зависимости от жадности магазина и типа корпуса.

Чтобы понять, как работает устройство, посмотрим на блок-схему:

В данной статье описывается только то, что касается ШИМ-регулятора (левая часть блок-схемы), а драйвер светодиода и сам светодиод Вы выбираете на свой вкус, тот который Вам больше подходит. Мне подходит драйвер ZXSC400, поэтому его я буду рассматривать как пример.

ШИМ-регулятор должен быть подключен к светодиодному драйверу, у которого есть функция регулировки яркости (DIM, PWM, и т. п.), например, ZXSC400. Можно использовать любой другой подходящий драйвер, главное чтобы он поддерживал ШИМ-регулировку яркости, и питался от того же аккумулятора, которым питается ШИМ-регулятор. Для тех, кто не знает что такое светодиодный драйвер – поясню: драйвер нужен для того, чтобы светодиод светился одинаково ярко как при заряженном аккумуляторе, так и при севшем аккумуляторе. Иными словами – драйвер светодиода поддерживает стабильный ток через светодиод.

Типовая схема включения светодиодного драйвера ZXSC400:

Питание этой схемы нужно соединить с питанием нашего ШИМ-регулятора, а ШИМ-выход с регулятора нужно подключить ко входу «STDN» драйвера ZXSC400. Вывод «STDN» как раз служит для регулировки яркости при помощи ШИМ сигнала. Аналогичным способом можно подключить ШИМ-регулятор ко многим другим светодиодным драйверам, но это уже отдельная тема.

Алгоритм работы устройства. При подаче питания, МК на 1 секунду отображает уровень заряда аккумулятора (на светодиодной шкале из 10 светодиодов), затем светодиодная шкала гаснет, МК переходит в режим энергосбережения, и ждёт команд управления. Всё управление я сделал на одной кнопке, чтобы на велосипеде тянуть меньше проводов. При удерживании кнопки более 1 секунды, ШИМ-регулятор включается, на ШИМ-выход подаётся сигнал со скважностью 30% (1/3 яркости светодиода). При повторном удерживании кнопки более 1 секунды, ШИМ-регулятор выключается, на ШИМ-выход не подаётся сигнал (скважность 0%). При кратковременном нажатии на кнопку, происходит переключение яркости 30% - 60% - 100%, а также на 1 секунду отображается заряд аккумулятора. Таким образом, однократное нажатие изменяет яркость светодиода, а долгое нажатие включает/выключает светодиод. Для проверки работоспособности ШИМ-регулятора, я подключил к его выходу обычный светодиод, но ещё раз повторюсь – исключительно в целях проверки работоспособности. В дальнейшем я подключу ШИМ-регулятор к драйверу ZXSC400. Более подробно и наглядно работа устройства показывается на видео (ссылка в конце статьи).

Также процесс регулировки яркости показывает следующая схема:

Что делать, если не устраивают данные значения яркости? Например, хочется чтобы было так: 1 %, затем 5 %, затем 100 %. Я предусмотрел и такой вариант. Теперь пользователь может сам установить эти три значения яркости, какие ему хочется! Для этого я написал небольшую программку, которая на основе желаемых значений генерирует файл для прошивки EEPROM. Прошив в микроконтроллер данный файл, яркости соответственно поменяются на желаемые. Прилагаю скриншот окна программы:

Если не прошивать файл EEPROM, то значения яркости останутся «по умолчанию» - 30 %, 60 %, 100 %. Правильно собранное устройство не нуждается в настройке. При желании можно лишь настроить минимальную, среднюю, и максимальную яркость по своему усмотрению. Программка и инструкция по использованию находятся в конце статьи.

Выбор используемого аккумулятора. Я использовал Li-ion аккумулятор ввиду его распространённости и дешевизны. Но в схеме я предусмотрел перемычку J1, при помощи которой можно выбрать, что мы используем в качестве питания.

Если перемычка J1 находится в положении «1», то используется один Li-ion аккумулятор. Если перемычка J1 находится в положении «2», то используются три обычные батарейки типа AAA/AA/C/D, соединённые последовательно. Перемычка J1 необходима для правильного отображения уровня заряда аккумулятора, так как у Li-ion аккумулятора рабочее напряжение находится примерно в диапазоне 3,3…4,2в, а у обычных батареек рабочее напряжение примерно равно 3,0…4,5в. Таблицы соответствия напряжений аккумулятора с показаниями индикатора я приложил внизу статьи.

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

Схема устройства:

Схема устройства

Микроконтроллер может быть как ATmega8, так и ATmega328. Оба этих микроконтроллера совместимы по расположению контактов, и различаются лишь содержанием «прошивки». Я использовал ATmega328, так как этот МК был у меня в наличии. В целях снижения энергопотребления, микроконтроллер работает от внутреннего RC-генератора на 1 МГц. Программа микроконтроллера написана в среде FlowCode 4.3.6.61 (или 4.3.9.65).

В схеме применена микросхема-источник опорного напряжения TL431. С её помощью достигается неплохая точность измерения напряжения аккумулятора. Питание на TL431 подаётся с вывода PC1 микроконтроллера через резистор R3. Подача напряжения питания на TL431 происходит только во время индикации уровня заряда. После того, как светодиоды индикации гаснут, подача питающего напряжения прекращается, обеспечивая экономию энергии аккумулятора. Микросхему TL431 можно найти в негодных блоках питания от компьютеров, в сломанных зарядных устройствах от сотовых телефонов, в импульсных блоках питания от ноутбуков и различной радиоэлектронной техники. Я применил TL431 в корпусе SOIC-8 (smd вариант), но TL431 больше распространена в корпусе TO-92, поэтому я сделал несколько вариантов печатных плат.

Об эмуляции в программе "Proteus". Проект в Proteus работает некорректно. Ввиду того, что модель ATmega8 не выходит из спящего режима, а также с тормозами отображается динамическая индикация. Если после запуска проекта, сразу удерживать кнопку, чтобы ШИМ-регулятор включился, то всё работает. Но стОит повторным удерживанием кнопки выключить ШИМ-регулятор, как МК погрузится в сон, и больше не проснётся (до перезапуска проекта). Проект в Proteus не прилагаю. Кто хочет поиграться – пишите, вышлю проект в Proteus.

Основные технические характеристики:

  • Напряжение питания, при котором гарантируется работоспособность:   2,8 ... 5 вольт
  • Частота ШИМ сигнала:   244 Гц
  • Частота динамической индикации шкалы из 10 светодиодов:   488 Гц (на 10 светодиодов) или 48,8 Гц (на каждый светодиод)
  • Количество режимов яркости, переключаемых по циклу:   3 режима
  • Возможность изменения пользователем яркости каждого из режимов:   Имеется

Ниже вы можете скачать прошивки для МК ATmega8 и ATmega328

Шутов Максим, г.Вельск

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega8-16PU
1 Поиск в магазине ОтронВ блокнот
U2 ИС источника опорного напряжения
TL431ILP
1 Поиск в магазине ОтронВ блокнот
Резисторы
R1, R2 Резистор постоянный SMD 1206
330 Ом
2 Поиск в магазине ОтронВ блокнот
R3 Резистор постоянный SMD 1206
1 кОм
1 Поиск в магазине ОтронВ блокнот
R4 Резистор постоянный SMD 1206
10 кОм
1 Поиск в магазине ОтронВ блокнот
R5 Резистор постоянный SMD 1206
47 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор постоянный SMD 1206
0 Ом (перемычка)
1 Поиск в магазине ОтронВ блокнот
Конденсаторы
C1, C2, Конденсатор керамический SMD 12060.1 мкФ3 Поиск в магазине ОтронВ блокнот
C3 Электролитический конденсатор470 мкФ 10В1 Поиск в магазине ОтронВ блокнот
 
D1-D10 Светодиод10 Поиск в магазине ОтронВ блокнот
S1 Кнопка тактовая1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 24.10.2013 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (16) | Я собрал (0) | Подписаться

0
hardbar #
А исходники можно? Желательно на asm.
Ответить
+1

[Автор]
Zlodey #
Я пишу на Flowcode, это не асм.
Ответить
0
ON/OFF #
Так автор пишет Flowcode, вот его бы я взглянул...
Хорошая конструкция, повторю обязательно, давно искал похожую.
Вот если бы ещё драйвер подобрать с такими параметрами: входное напряжение 3-12V , и на выходе 700мА 0,7В
Ответить
+1

[Автор]
Zlodey #
Есть куча драйверов, ищите в инете
Ответить
0
Александр #
Это просто игрушка практического применения этому нет. Если использовать для фонаря или велосипедной фары - придется использовать мощные светодиоды, что порты проца не потянут. Да и для питания мощных свето диодов нужен источник тока. Ведь при разряде акб яркость то будет падать. Да и кстати, почему только один гасящий резистор на с/д? Яркость от этого сильно плавать будет
Ответить
+1

[Автор]
Zlodey #
Александр, это схема лишь УПРАВЛЕНИЕ драйвером мощного светодиода. Маленький желтый светодиод подключен ДЛЯ ПРИМЕРА, к этой схеме надо подключать драйвер мощного светодиода, например, ZXSC400 или LM3406 (1.5a), который и будет заниматься стабилизацией тока. Эта схема включает, отключает, регулирует яркость, показывает заряд юатареи. Учитесь читать статью, а не с ходу писать дурацкие комменты! В статье ведь всё расписано
Ответить
0
ON/OFF #
Так драйвер для чего? Это просто ШИМ+контроллер заряда.
Ответить
+1

[Автор]
Zlodey #
Именно! Всё же кто-то читает текст статьи, а не меж строк пробегает
Ответить
-1
const1105 #
ZXSC400 не имеет ШИМ регулятора яркости.
Ответить
+1

[Автор]
Zlodey #
Вы неправы. Специально для вас ткну носом в часть даташита, даже обвел чтобы наконец то ЗАМЕТИЛИ что там есть ШИМ регулятор http://zalil.ru/34789290
Ответить
0
Serg #
Уважаемый автор! Изучаю Flowcode, хотел бы в образовательных целях взглянуть на ваш код, т.к. хороших мануалов очень не густо. Заранее спасибо.
Ответить
+1

[Автор]
Zlodey #
На сайте flowcode.info есть полезная информация. Для образовательных целей нужно что-то попроще...
Ответить
0
Serg #
Про этот сайт знаю, изучаю, смотрю видео, но почти вся инфа под PIC, а мой интерес связан именно с AVR...
Ответить
0
Игорь #
Хотел у вас попросить проект на Flowcode... Очень нужно!
Ответить
0

[Автор]
Zlodey #
К сожалению проект уже потерял
Ответить
0
Александр #
Исходник можно?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Печатная плата для усилителя "LM3886 + AD825" Модуль измерения тока на ACS712 (30А)
вверх