Самодельный драйвер для подводного фонарика на герконе. Самодельный драйвер для мощных светодиодов. Подробное описание и предназначение всех компонентов

Как известно диод - это токовый прибор, питать его нужно постоянным током, а не напряжением. Светодиоды – тоже диоды, и их тоже нужно питать стабильным током. При стационарной установке светодиода проблема его питания легко решается с помощью резистора, который задает ток через светодиод. Рассчитать номинал резистора помогает закон Ома: R=(Uпит-Uпад)/I , где Uпит – напряжение источника питания в вольтах, Uпад – напряжение, которое падает на светодиоде (примерно 3-3,5В, зависит от тока через светодиод), а I – желаемый ток через светодиод в амперах. Далее подбирается резистор ближайшего номинала, который есть в наличии и все хорошо работает. При больших токах резистор будет сильно греться, так что стоит его брать по мощнее.

Минусом стабилизатора на резисторе является неспособность реагировать на изменение напряжения питания (ток через светодиод и как следствие его яркость будут падать по мере разряда батареи), а также никому не нужная рассеиваемая мощность на резисторе. Для решения этой проблемы существуют так называемые драйвера светодиода (стабилизаторы тока). Стабилизаторы тока бывают повышающими (Boost) и понижающими (Buck). Boost стабилизаторы используются, когда напряжение на батареях меньше, чем падение напряжения на светодиоде, а Buck – когда напряжение на батарея больше падения на светодиоде.
При проектировании своего «неубиваемого» фонарика я задумал использовать параллельную связку из литиевых аккумуляторов или 3шт. АА батарейки (т.е. питающее входное напряжение драйвера должно быть в пределах 3-4,5В). Для этой задачи необходимо использовать Buck драйвер, но при этом не используется около 20% запасенной энергии в батареях! Эти 20% можно выжать, вставив в схему еще и Boost драйвер, который будет включаться, когда для Buck драйвера будет слишком низкое напряжения питания. Все это очень муторно и громоздко, 2 драйвера + компаратор или микроконтроллер для переключения. Так дело далеко не зайдет. Почитав раздел светотехники на speleo.ru открыл для себя Boost/Buck стабилизатор с нужным мне диапазоном питающих напряжений и недурной эффективностью (достижимой при вдумчивой намотке индуктивности). Эта микросхема следит за питающим напряжение и автоматически переключает встроенные Boost/Buck драйвера. Силовые ключи в мостовой схеме интегрированы в саму микросхему, и позволяют коммутировать токи до 1А. Схема включения была взята из и немного модифицирована:


Конденсаторы С3,С4 – танталовые в СМД исполнении 68мкФ, С1 ,С2 ,С5 – керамические по 0,1мкФ. С намоткой индуктивности я связываться не стал, поэтому купил взял SUMIDA CDRH5D28RNP-5RØN на 5мкГн. Как видно, микросхема драйвера имеет 2 «канала», которые можно включать по отдельности или вместе с помощью высокого логического уровня на выводах EN1 , EN2 . Токи «каналов» задается с помощью 2-х резисторов R1 , R2 которые рассчитывается по формуле R1=3580*0.8/I1 , R2=3580*0.8/I2 . Главное, чтобы суммарный ток «каналов» был меньше 1А, иначе есть хорошая вероятность спалить внутренние ключи. Далее по задумке, в фонарике будет 2 режима, «ходовой» и «мощный» с соответствующими токами через диод 0,2А и 1А (мощный режим достигается путем включения 2-х «каналов» по 0,2А и 0,8А одновременно). То есть резистор R1 , задающий «ходовой» режим должен быть номиналом 15кОм, а R2 – 3,9кОм. Переключатся режимы будут с помощью тактовой кнопки, герметизированной кусочком резины и прижимной пластиной. То есть для этого нужно повесить еще микроконтроллер, который будет считывать нажатия кнопки и переключать режимы свечения диода. Включение/выключение фонаря будет производиться с помощью длительного (2с) удержания кнопки. А переключение «ходового» и «мощного» режима будет с помощью короткого нажатия кнопки (0,5с). Полная схема устройства с микроконтроллером:


Микроконтроллер взял тот, который был ближе всего под рукой. Им оказался в SO-14 исполнении. Прошивка его тривиальна, кроме обработки нажатия клавиши, где учитывается время удержания. Когда фонарик выключен – микроконтроллер переходит в Power-Down режим, и потребляет всего 0,1мкА (LTC3454 в SHUTDOWN режиме потребляет тоже всего ничего – 1мкА) и ощутимо подсаживать аккумулятор не будет. Также добавил еще один элемент, конденсатор С6 – 0,1мкФ на питании микроконтроллера.

    #include

    #include

  1. #define EN1 2

    #define EN2 3

  2. #define KEY 2

  3. unsigned char mode= 0 ;

    unsigned char sleep_flag= 1 ;

  4. void pause (unsigned int a)

    { unsigned int i;

  5. for (i= a; i> 0 ; i-- )

  6. void set_mode(void )

    if (mode== 0 ) PORTA&= ~((1 << EN1) | (1 << EN2) ) ;

    if (mode== 1 ) PORTA= (1 << EN1) ;

    if (mode== 2 ) PORTA= (1 << EN1) | (1 << EN2) ;

  7. ISR (INT0_vect)

    { int count;

  8. count= 0 ;

    count= count+ 1 ;

  9. if (count== 1000 ) {

  10. if (mode== 1 ) mode= 2 ;

    else if (mode== 2 ) mode= 1 ;

  11. while ((PINB& _BV(KEY) ) == 0x00 )

    count= count+ 1 ;

    if (count== 9000 ) {

    if (mode== 0 ) mode= 1 ;

    else {

    mode= 0 ;

    sleep_flag= 1 ;

    set_mode() ;

  12. while ((PINB& _BV(KEY) ) == 0x00 )

    set_mode() ;

  13. return ;

  14. int main(void )

    DDRB= 0x04 ; //PB2 как вход

    PORTB= 0x04 ;

  15. DDRA= 0x0c ; //PA2,PA3 как выхода

  16. pause(1000 ) ; //Пауза

  17. GIMSK= (1 << INT0) ;

    MCUCR= (0 << ISC00) | (0 << ISC01) ; //Прерывание по низкому уровню на PB2

    MCUCR|= (1 << SM1) | (0 << SM0) | (1 << SE) ; //Разрешить power-down режим

    sei() ; //Разрешить прерывания

Наверняка у многих имеются фонари фирмы Convoy, они давно зарекомендовали себя как недорогие и качественные источники света. Но мало кто знает, что с помощью программатора за $3 и клипсы за $3 можно залить в некоторые фонари кастомную прошивку, которая будет иметь больше функций или будет удобнее в использовании. Сразу оговорюсь, что в статье речь пойдет о прошивке фонарей с драйверами на базе микроконтроллера Attiny13a, такие драйвера стоят во всех конвоях S серии (кроме нового S9), а так же в Convoy M1, M2, C8. Многие другие производители так же ставят в свои фонари драйвера с Attiny, к ним данный мануал тоже применим, но следует уделять внимание фьюзам и используемым портам Attiny.

Краткий ликбез

Не все знакомы с устройством современных фонарей, поэтому прежде чем перейти к колдовству, я постараюсь ввести вас в курс дела. Итак, электрическая схема типичного карманного фонарика состоит из следующих частей:

  • Кнопка выключения - у «тактических» EDC фонариков типа Конвоев обычно располагается в хвосте
  • Аккумулятор - обычно это Li-ion банка
  • Драйвер - самая важная часть фонаря, его мозги
  • Светодиод - говорит сам за себя

Из всего этого безобразия нас, как вы уже поняли, интересует в первую очередь драйвер. Он отвечает за работу фонаря в различных режимах яркости, запоминание последнего включенного режима и прочую логику. В одноаккумуляторных фонарях чаще всего встречаются ШИМ-драйвера. В качестве силового ключа в таких драйверах обычно используется либо полевой транзистор, либо куча линейных регуляторов AMC7135. Например, так выглядит довольно популярный драйвер Nanjg 105D:


Микроконтроллер Attiny13a содержит в себе прошивку, которая определяет логику работы фонаря. Далее я покажу, как можно залить в этот микроконтроллер другую прошивку, чтобы расширить функционал фонаря.

Предыстория

Сейчас на рынке представлено поистине огромное количество карманных EDC фонариков, и, что характерно, каждый производитель норовит изобрести свою собственную прошивку с собственным уникальным™ управлением. Из всех существующих решений мне больше всего нравилась прошивка, с которой до недавних пор поставлялись фонари Convoy с драйвером Nanjg 105D. Она имела 2 группы режимов (1 группа: Мин-Средний-Макс, 2 группа: Мин-Средний-Макс-Строб-SOS). Смена групп в ней осуществлялась интуитивно просто: включаем минимальный режим, спустя пару секунд фонарь моргнёт - кликаем кнопкой, и группа режимов переключена. С недавних пор Convoy начал поставлять свои фонари с новой прошивкой biscotti. Она имеет больше возможностей (12 групп режимов, возможность включения-отключения памяти последнего режима, запоминание режима в выключенном состоянии (т.н. off-time memory)), но у нее есть несколько жирных минусов, которые лично для меня перечеркивают все достоинства:

  • Сложное управление. Чтобы сменить группу режимов нужно помнить наизусть шаманскую последовательность кликов кнопкой
  • Off-time memory не работает при использовании светящихся кнопок (например, таких)
  • Много бесполезных групп режимов, отличающихся лишь порядком следования

Когда у меня накопился приличный зоопарк фонарей с разными прошивками, но одинаковыми драйверами, я решил унифицировать их, залив всем одну и ту же прошивку. Все бы ничего, но нельзя просто так взять и перешить Nanjg 105D на старую добрую прошивку с двумя группами, потому что в свободном доступе ее нет, и производитель установил запрет на считывание дампа памяти микроконтроллера, т.е. оригинальную прошивку взять неоткуда. В репозитории прошивок для фонарей аналога данной прошивки нет, поэтому у меня остался один выход - написать все самому.

Встречайте Quasar v1.0

Взяв за основу прошивку luxdrv 0.3b от DrJones , я сваял собственную с блекджеком и лунапарками. Я постарался сделать ее максимально похожей на стоковую прошивку Nanjg 105D и более масштабируемой. Что может мой Quasar:

  • 2 группы режимов: (Минимальный - Средний - Максимальный - Турбо) и (Минимальный - Средний - Максимальный - Турбо - Строб - Полицейский строб - SOS)
  • Строб злой (частота вспышек около 12Гц)
  • Новый режим - полицейский строб - делает прерывистые серии по 5 вспышек, режим может быть полезен велосипедистам, т.к. повышает заметность
  • Переключение групп осуществляется как в заводской прошивке: включаем первый режим, ждем пару секунд, кликаем сразу после того, как фонарь моргнет
  • Путем модификации исходников можно добавить до 16 групп, в каждой группе можно задать до 8 режимов
  • Используется традиционная on-time память, можно использовать светящиеся кнопки без потери функциональности
  • При разряде аккумулятора ниже 3В фонарь начинает сбрасывать яркость, но полностью не отключается - используйте аккумуляторы с защитой, если боитесь их убить.
  • Удобная фича для проверки текущего уровня аккумулятора: в любом режиме делаем 10-20 быстрых полу-нажатий кнопкой до тех пор, пока фонарь не перестанет включаться. После этого фонарь сделает от 1 до 4 вспышек, каждая вспышка означает уровень заряда соответственно < 25%, < 50%, < 75% и < 100%.

Исходники, скомпилированный бинарник с двумя группами режимов и проект для Atmel Studio вы можете найти на моем гитхабе . Помните, что исходники распространяются под лицензией CC-BY-NC-SA, и прошивку вы используете на свой страх и риск без каких-либо гарантий.

Принадлежности

Для заливки кастомной прошивки нам понадобятся:

  • SOIC клипса Купить
  • Любой клон Arduino Nano 3.0 для использования в качестве программатора Купить
  • Arduino у меня уже была, поэтому я решил завести отдельный самостоятельный девайс для прошивки фонарей и купил USBISP программатор Купить
  • Dupont провода для подключения клипсы к программатору Купить

Подготовка программатора

Для прошивки драйвера подойдет обычная Arduino Nano 3.0 с залитым скетчем ArduinoISP, но я решил завести отдельный программатор, поэтому купил USBISP. Он имеет форм-фактор флешки в алюминиевом корпусе:


Из коробки этот программатор определяется на компе как HID устройство и работает только с китайским кривым софтом, чтобы использовать его с avrdude можно перепрошить его в USBASP. Для этого нам, как ни странно, понадобится другой рабочий программатор. Здесь нам поможет Arduino Nano, подключаем её к компьютеру, открываем Arduino IDE и открываем стандартный скетч ArduinoISP:


Раскомменчиваем строку #define USE_OLD_STYLE_WIRING:


И заливаем скетч в Nano. Теперь у нас есть AVRISP программатор, которым можно перепрошить наш USBISP в USBASP. Для этого нам в первую очередь понадобится avrdude, он лежит в папке установки Arduino IDE по пути \hardware\tools\avr\bin. Для удобства советую добавить полный путь к avrdude.exe в переменную окружения PATH.

Теперь нам необходимо открыть USBISP и перевести его в режим программирования, установив перемычку UP:



Заодно убеждаемся, что на плате распаян Atmega88 или 88p, как в моем случае:


Другие перемычки, несмотря на советы в инете, трогать не нужно, все прекрасно прошивается и с ними.

Теперь внимательно смотрим на распиновку USBISP программатора, нанесенную на его алюминиевом корпусе, и подключаем его к Arduino Nano:

  • VCC и GND к VCC и GND сответственно
  • MOSI к D11
  • MISO к D12
  • SCK к D13
  • RESET к D10

У меня не оказалось Female-Female проводов, поэтому я заюзал мини-макетку:


Следующий шаг - скачиваем прошивку usbasp.atmega88-modify.hex , подключаем Arduino к компу, запускаем консоль и переходим в папку с сохраненной прошивкой. Для начала выставим фьюзы командой:

Avrdude -p -m88 -c avrisp -b 19200 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m

Затем заливаем прошивку командой:

Avrdude -p m88p -c avrisp -b 19200 -U flash:w:usbasp.atmega88-modify.hex

После этого убираем перемычку на USBISP, подключаем его к компьютеру, и если все сделано правильно, - на нем загорится синий светодиод:


Теперь у нас есть полноценный компактный USBASP программатор в удобном металлическом корпусе.

SOIC клипса

Программировать микроконтроллеры можно и без клипсы, подпаивая каждый раз проводки к соответствующим контактам, но это настолько рутинный процесс, что лучше все же не пожалеть денег на клипсу. Первое, что нужно сделать после получения клипсы, - это «распушить» контакты, поскольку из коробки они расположены слишком близко друг к другу, и к ним невозможно нормально подпаять провода:


Подключаем контакты клипсы к программатору в соответствии с распиновкой микроконтроллера:


Для большей надежности я припаял провода к клипсе и затянул все это термоусадкой:


Заливаем прошивку в фонарь

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


Крепим клипсу, соблюдая ориентацию. Ориентир в данном случае - кругляш на корпусе микросхемы, он обозначает первый её пин (RESET в нашем случае):


Смотрим, чтобы все пины клипсы утопились в корпус. Подключаем программатор к компу, теперь дело осталось за малым - нужно залить прошивку) Для этого идем на гитхаб, качаем бинарник quasar.hex , запускаем консоль, переходим в папку с бинарником и выполняем команду:

Avrdude -p t13 -c usbasp -u -Uflash:w:quasar.hex:a -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m

Если все нормально, то пойдет процесс загрузки прошивки, в этот момент ни в коем случае нельзя трогать клипсу, лучше вообще не дышать) При успешной прошивке в конце вывода будет примерно следующее:


Просто, да? А вот нифига, с вероятностью 90% вместо загрузки прошивки вы увидите это:


Причина чаще всего кроется в том, что у новых моделей драйверов замкнуты пины 5 и 6 (MISO и MOSI), что делает невозможным программирование. Поэтому если avrdude жалуется на target doesn"t answer, то первым делом вооружаемся скальпелем и внимательно смотрим на плату. Нужно перерезать дорожку, как показано на картинке:


После этого прошивка обычно заливается без проблем. Если нет - внимательно посмотрите на микроконтроллер, возможно у вас вовсе не Attiny13a, по крайней мере мне попадались драйвера с Fasttech с PIC контроллерами.

Модификация прошивки

Скомпилированная прошивка на гитхабе посути является чуть более продвинутым аналогом оригинальной прошивки, поэтому куда интереснее собрать собственную версию прошивки со своими группами и режимами. Сейчас я расскажу, как это сделать. Первым делом качаем и устанавливаем Atmel Studio с официального сайта. Потом скачиваем все файлы проекта (кто умеет в git - могут просто клонировать всю репу) и открываем Quasar.atsln через установленную студию:


Перечислю наиболее интересные места в коде:

#define LOCKTIME 50

Задает время, через которое текущий режим будет сохранен. Значение 50 соответствует 1 секунде, соответственно поставив 100 можно получить интервал ожидания в 2 секунды

#define BATTMON 125

Задает критический уровень напряжения на аккумуляторе, при достижении которого фонарь начнет сбрасывать яркость. У стандартного Nanjg 105D величина 125 соответствует примерно 2.9 вольтам, но все зависит от величин резисторов делителя напряжения на плате. Если удалить эту строку целиком - фонарь не будет следить за напряжением аккумулятора.

#define STROBE 254 #define PSTROBE 253 #define SOS 252

Определения режимов-мигалок, цифровые значения трогать не следует, если не нужен какой-либо режим - соответствующую строку можно удалить, не забыв после этого поправить объявления групп режимов в массиве groups.

#define BATTCHECK

Включает режим индикации уровня аккумулятора после 16 быстрых кликов. Можно удалить, если эта функция не нужна.

#define MEM_LAST

Задает запоминание последнего режима. Возможны следующие значения: MEM_LAST - фонарь включается в последнем включенном режиме, MEM_FIRST - фонарь всегда включается в первом режиме, MEM_NEXT - фонарь всегда включается в следующем режиме.

#define MODES_COUNT 7 #define GROUPS_COUNT 2

Задают количество режимов в группе и количество групп соответственно. Тесно связаны со следующим массивом groups:

PROGMEM const byte groups = {{ 6, 32, 128, 255, 0, 0, 0 }, { 6, 32, 128, 255, STROBE, PSTROBE, SOS }};

Здесь перечислены сами группы режимов работы. Числа 6, 32, 128, 255 - значения яркости, STROBE, PSTROBE, SOS - обозначения специальных режимов. Нулевые значения яркости игнорируются, поэтому в разных группах можно задавать разные количества режимов (в данном случае в первой группе 4 режима, во второй - 7).

Например, если вы хотите оставить один единственный режим работы со 100% яркостью, то сделать это можно так:

#define MODES_COUNT 1 #define GROUPS_COUNT 1 PROGMEM const byte groups = {{ 255 }};

Если вам нужны 3 группы режимов без мигалок и с обратным следованием (от максимального к минимальному), то можно сделать так:

#define MODES_COUNT 4 #define GROUPS_COUNT 3 PROGMEM const byte groups = {{ 255, 0, 0, 0 }, { 255, 64, 6, 0 }, { 255, 128, 32, 6 }};

При таком раскладе в первой группе всего один режим со 100% яркостью, во второй - 3 режима, в третьей - 4 режима с более плавным уменьшением яркости. Легко и просто, правда? Остается лишь скомпилировать исходник в hex файл с помощью студии, для этого выбираем «Release» в диспетчере конфигураций и жмем «Запуск без отладки»:


Если нигде в коде не накосячили, то в папке проекта появится директория Release, а в ней - hex файл, который остается залить в драйвер описанным в предыдущем разделе способом.

На этом все, надеюсь сей мануал будет кому-нибудь полезен. Если у кого возникнут вопросы - милости прошу в комменты)

Долго пылился на полке старый фонарик - ручка «Duracell». Работал он от двух батареек формата ААА, на лампочку накаливания. Очень удобен был, когда нужно посветить в какую-либо узкую щель в корпусе электронного прибора, но всё удобство от применения перечеркивал «жор» батареек. Можно было бы выкинуть этот раритет и поискать в магазинах что-то современнее, но… Это не наш метод... © Потому на Али была куплена микросхема светодиодного драйвера, которая помогла перевести фонарик на светодиодный свет. Переделка очень простая, которую сможет осилить, даже начинающий радиолюбитель, умеющий держать в руках паяльник… Так что, кому интересно, велком под Кат…

Микросхема драйвер покупалась давно, больше года назад, и ссылка на магазин уже ведет в «пустоту», потому я нашел аналогичный товар, у другого продавца. Сейчас этот драйвер стоит дешевле, чем я покупал его. Что же это за «клоп» с тремя ножками, давайте рассмотрим подробнее.
Для начала ссылка на даташит: www.diodes.com/assets/Datasheets/ZXLD381.pdf
Микросхема представляет собой Led драйвер способный работать от низкого напряжения, к примеру, одной батарейки 1.5В формата ААА. Микросхема драйвера имеет высокую эффективность (КПД) 85% и способна «высосать» батарейку практически полностью, до остаточного напряжения 0,8В.
Характеристики микросхемы драйвера

под спойлером


Схема драйвера очень проста…


Как вы видите, кроме этой микросхемы «клопа» нужна всего одна деталь - дроссель (индуктор), и именно индуктивностью дросселя задается ток светодиода.
Для фонарика в место лампочки, я подобрал яркий белый светодиод, потребляющий ток 30мА, соответственно мне нужно было намотать дроссель индуктивностью 10мкГн. Эффективность драйвера составляет 75-92% в диапазоне 0.8-1.5В, что очень неплохо.

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


Дроссель можно намотать, или взять готовый. Я намотал на гантельке, которая попалась под руку. При самостоятельном изготовлении необходимо контролировать индуктивность при помощи LC метра. В качестве корпуса для платы драйвера был использовать двух кубовый одноразовый шприц, внутри которого вполне достаточно места, что бы разместить все необходимые компоненты. С одной стороны шприца -резиновая пробка с светодиодом и контактной площадкой, с другой стороны вторая контактная площадка. Размер отрезка шприца подбирается по месту и приблизительно равен размеру батарейки ААА (мизиньчиковой, как её называют в народе)


Собственно собираем фонарик


И видим, что светодиод ярко светит от одной батарейки…


Ручка-фонарик в сборе выглядит вот так


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

Вот такой получился коротенький обзор… При помощи микросхемы драйвера, вы можете переделать почти любой раритетный фонарик, на питание от одной батарейки 1.5В. Если есть вопросы спрашивайте…

Планирую купить +73 Добавить в избранное Обзор понравился +99 +185

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

Приступим. Для начала выделю преимущества данного фонарика:

  • компактный и легкий корпус;
  • возможность регулировки фокуса;
  • удобное расположение органов управления (кнопка), учитывая что фонарик налобный.

Теперь недостатки, которых куда больше:

  • неудобное управление - три режима которые переключаются по циклическому алгоритму (четвёртый режим "выключено"), то есть если нужный режим пропустил, то надо "прощелкивать" все режимы по кругу, пока не "дощелкаешь" до нужного режима;
  • один из режимов - мигающий - вообще бесполезный, только мешает управлению;
  • нет контроля состояния аккумулятора, то есть при каждом цикле разряда портит аккумулятор, сильно разряжая его (если не выключить, может посадить аккумулятор до 1...2 вольт);
  • нет стабилизации тока, то есть с разрядом аккумулятора яркость постепенно падает;
  • заряд аккумулятора идет тупо через резистор, нет никакого контроля зарядного тока и отсутствует правильный алгоритм заряда литий-ионного аккумулятора (при каждом цикле заряда гробит аккумулятор);
  • стоИт китайский светодиод с низкой эффективностью;
  • стоИт китайский аккумулятор с завышенной емкостью на этикетке.

Теперь о том, что бы хотелось получить в итоге:

  • удобное управление режимами, убрать мигающий режим;
  • ввести стабилизацию тока через светодиод (поставить драйвер);
  • заменить светодиод на более эффективный и надежный (CREE XPG), тёплого свечения (вместо штатного холодного);
  • сделать контроль разряда аккумулятора, при разряде аккумулятора выключать фонарик;
  • добавить контроллер заряда литий-ионного аккумулятора;
  • заменить аккумулятор на нормальный.

Вскрываем корпус фонарика.

Здесь мы видим, что его "мозги" сделаны на основе БИС микросхемы, поэтому они не поддаются никакой модификации.

При замене светодиода на другой светодиод, выходной ток изменился почти на 50%, что говорит об отсутствии какой либо стабилизации тока. Решено выкинуть родную плату и сделать свою. В качестве управляющего контроллера я выбрал ATtiny13A-SSU ввиду следующих основных преимуществ:

  • малая цена - около 30 рублей (на момент написания статьи, май 2014г.);
  • компактный корпус поверхностного монтажа;
  • в режиме сна потребляет менее 500 наноампер (!!!);
  • возможность работы при низких напряжениях питания (вплоть до 1.8в);
  • возможность работы при температуре ниже 0 градусов.

В качестве драйвера светодиода выбор пал на AMC7135 благодаря следующим характеристикам:

  • возможность работы при низких напряжениях питания;
  • минимальное падение напряжения на микросхеме - всего 0.15в;
  • возможность ШИМ-регулировки яркости светодиода;
  • компактный корпус.

Схема драйвера:

Небольшие пояснения о работе схемы и применяемых компонентах. Для измерения уровня заряда аккумулятора, используется АЦП микроконтроллера и внешний источник опорного напряжения (далее ИОН) REF3125 с выходным напряжением 2,5В. Внешний ИОН используется не просто так - с его помощью достигается измерение напряжения аккумулятора с минимальными погрешностями, так как точность встроенного в микроконтроллер ИОН"а оставляет желать лучшего. Управление AMC7135 производится при помощи ШИМ-сигнала, частотой 500 Гц. При отключении драйвера, микроконтроллер отключает AMC7135, обесточивает ИОН, и переходит в спящий режим "Power Down", потребляя менее 1 мкА . Устройство не требует какой-либо настройки и корректировки, и после сборки и прошивки начинает работать сразу. Чтобы можно было выбрать напряжение отключения драйвера "под себя", в конце статьи прилагается архив с прошивками под напряжения 3,1...3,6 Вольт с шагом 0,1В.

Развожу печатку, травлю, запаиваю, пишу софт в AVR Studio 5, прошиваю микроконтроллер. На этапе изготовления платы нужно просверлить отверстия, и соединить перемычками дорожки с обеих сторон платы. Я взял медную жилу от витой пары, залудил её, и сделал из неё перемычки.

Вот что из этого получилось. Печатку и набор прошивок можно скачать в конце статьи.

На одной стороне платы (двусторонняя диаметром 18 мм) разместились все управляющие мозги, на другой стороне платы расположился драйвер светодиода с полигоном из меди для должного охлаждения. Опционально на плату может быть установлена вторая микросхема-драйвер AMC7135 для увеличения максимального выходного тока с 350 мА до 700 мА. Небольшие размеры платы выбраны не случайно - необходимо было уместить драйвер на родное место в корпусе. Вот фотка для оценки размеров получившейся платки:

Родной контроллер управления давал на светодиод следующий ток в режимах:

  • 1 режим, примерно 200 мА;
  • 2 режим, примерно 60 мА;
  • 3 режим, примерно 60 мА (мигающий).

Родной контроллер управляется по следующему алгоритму. При нажатии на кнопку выполнялся переход на следующий режим. 1 --> 2 --> 3 --> ВЫКЛ и так по циклу. Если нужный режим случайно пропустил, то придётся сидеть и "нащёлкивать" пока не дойдёшь до нужного режима. Также для выключения фонарика нужно "прощёлкать" все режимы. О быстром включении/отключении фонарика можно даже и не мечтать.

Моя плата контроллера с драйвером выдает следующие токи в разных режимах:

  • 1 режим, 30 мА;
  • 2 режим, 130 мА;
  • 3 режим, 350 мА (будет использоваться кратковременно, так как в корпусе фонарика не предусмотрено должного охлаждения для светодиода).

Мой контроллер управляется по следующему алгоритму. Однократное (короткое) нажатие выполняет включение/отключение фонарика (с сохранением последнего выбранного режима). Длительное удерживание кнопки выполняет переключение режима на следующий. Таким образом, мы имеем возможность как быстро включать/отключать фонарик, так и менять режимы. Надоедливого и бесполезного режима "мигалки" теперь нету. При снижении напряжения аккумулятора до заданного в "прошивке" уровня, фонарик переходит на предыдущий режим. Тоесть если стоял режим 3, то сначала контроллер включит режим 2, затем фонарик поработает какое-то время, затем включится режим 1, фонарик поработает ещё какое-то время, и только потом он выключится. В интернете уже есть аналогичные конструкции, но они либо имеют управление при помощи разрыва цепи питания, что не всегда оправданно, либо у них не используется режим сна, а это очень важно!!

Итак, выкидываем старые мозги, а также убираем конденсатор, зачем-то подключенный параллельно кнопке. Наверно китайцы боролись с дребезгом контактов. У меня обработка дребезга будет программная, поэтому конденсатор больше не нужен.

Также достаём штатный светодиод, будем менять его на эффективный светодиод CREE XPG с тёплым свечением.

Готовим наш новый светодиод:

Собираем оптический блок:

Теперь встраиваем новую плату управляющего контроллера и драйвера светодиода:

Cобираем корпус:

Таким образом, на внешний вид не произошло никаких изменений, но внутри теперь всё как и должно быть. Контроль разряда аккумулятора, стабилизация тока, нормальное управление режимами, и "правильный" светодиод. В выключенном состоянии контроллер потребляет мало энергии, так как микроконтроллер переводится в режим сна.

Позже был установлен нормальный контроллер заряда аккумулятора на микросхеме MAX1508, а также родной китайский аккумулятор был заменён на внешний блок аккумуляторов, состоящий из 2 оригинальных банок Sanyo UR18650.

В активном режиме микроконтроллер ATtiny13A потребляет менее 500 мкА благодаря работе на тактовой частоте 128 кГц. Также в активном режиме добавляется потребление AMC7135, потребление внешнего ИОН, и потребление внутреннего АЦП микроконтроллера. Суммарный ток потребления в активном режиме зависит от используемого ИОН, и может составлять от 0,1 мА до 1 мА. Я применил ИОН REF3125, суммарное потребление схемы в рабочем режиме составило 0,5...0,8 мА.

ИОН REF3125 можно заменить на аналоги:

  • ADR381
  • CAT8900B250TBGT3
  • ISL21010CFH325Z-TK
  • ISL21070CIH325Z-TK
  • ISL21080CIH325Z-TK
  • ISL60002BIH325Z
  • MAX6002
  • MAX6025
  • MAX6035BAUR25
  • MAX6066
  • MAX6102
  • MAX6125
  • MCP1525-I/TT
  • REF2925
  • REF3025
  • REF3125
  • REF3325AIDB
  • TS6001

Прилагаю небольшое видео, демонстрирующее управление режимами. Видео снято давно, светодиод ещё тогда стоял родной, позже он был заменён на CREE XPG, также стоял родной аккумулятор. Лень было заново снимать видео. Также хочу предупредить, что не каждый программатор поддерживает прошивку микроконтроллеров на частоте 128 кГц. Для прошивки я использовал программатор "USBAsp" со включенной опцией "Slow SCK". Всем удачных самоделок!!

Внимание! Прошивка управляющего микроконтроллера была полностью переписана. Алгоритм работы программы стал более корректным, устранены некоторые недочёты в работе устройства. Ниже Вы сможете скачать пробную версию прошивки с ограничением по времени работы 10 минут. По истечении тестового времени, гаснет светодиод и блокируется управление. После переподключения аккумулятора, вновь получаем 10 минут тестового времени.

Полную версию прошивки можно приобрести .

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

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
МК AVR 8-бит

ATtiny13A

1 корпус SOIC 208 mil В блокнот
Конденсатор 1 мкФ 1 не менее 1 мкФ В блокнот
Резистор

4.7 кОм

2 или 3...10 кОм

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

Для использования мощных светодиодов не обойтись без использования токостабилизирующих устройств – драйверов. Правильные драйвера имеют очень высокий КПД - до 90-95%. Кроме того, они обеспечивают стабильный ток и при изменении напряжения источника питания. А это может быть актуально, если светодиод питается, например, от аккумуляторов. Самые простые ограничители тока - резисторы - обеспечить это не могут по своей природе.

Немного ознакомиться с теорией линейных и импульсных стабилизаторов тока можно в статье "Драйвера для светодиодов" .

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


Простой драйвер. Собран на макетке, питает могучий Cree MT-G2

Очень простая схема линейного драйвера для светодиода. Q1 – N-канальный полевой транзистор достаточной мощности. Подойдет, например, IRFZ48 или IRF530. Q2 – биполярный npn-транзистор. Я использовал 2N3004, можно взять любой похожий. Резистор R2 – резистор мощностью 0.5-2Вт, который будет определять силу тока драйвера. Сопротивление R2 2.2Ом обеспечивает ток в 200-300мА. Входное напряжение не должно быть очень большим – желательно не превышать 12-15В. Драйвер линейный, поэтому КПД драйвера будет определяться отношением V LED / V IN , где V LED – падение напряжения на светодиоде, а V IN – входное напряжение. Чем больше будет разница между входным напряжением и падением на светодиоде и чем больше будет ток драйвера, тем сильнее будет греться транзистор Q1 и резистор R2. Тем не менее, V IN должно быть больше V LED на, как минимум, 1-2В.

Для тестов я собрал схему на макетной плате и запитал мощный светодиод CREE MT-G2 . Напряжение источника питания - 9В, падение напряжения на светодиоде - 6В. Драйвер заработал сразу. И даже с таким небольшим током (240мА) мосфет рассеивает 0,24 * 3 = 0,72 Вт тепла, что совсем не мало.

Схема очень проста и даже в готовом устройстве может быть собрана навесным монтажом.

Схема следующего самодельного драйвера также предельно проста. Она предполагает использование микросхемы понижающего преобразователя напряжения LM317. Данная микросхема может быть использована как стабилизатор тока.


Еще более простой драйвер на микросхеме LM317

Входное напряжение может быть до 37В, оно должно быть как минимум на 3В выше падения напряжения на светодиоде. Сопротивление резистора R1 рассчитывается по формуле R1 = 1.2 / I, где I – требуемая сила тока. Ток не должен превышать 1.5А. Но при таком токе резистор R1 должен быть способен рассеять 1.5 * 1.5 * 0.8 = 1.8 Вт тепла. Микросхема LM317 также будет сильно греться и без радиатора не обойтись. Драйвер также линейный, поэтому для того, чтобы КПД был максимальным, разница V IN и V LED должна быть как можно меньше. Поскольку схема очень простая, она также может быть собрана навесным монтажом.

На той же макетной плате была собрана схема с двумя одноваттными резисторами сопротивленим 2.2 Ом. Сила тока получилась меньше расчетной, поскольку контакты в макетке не идеальны и добавляют сопротивления.

Следующий драйвер является импульсным понижающим. Собран он на микросхеме QX5241 .


Схема также проста, но состоит из чуть большего количества деталей и здесь уже без изготовления печатной платы не обойтись. Кроме того сама микросхема QX5241 выполнена в достаточно мелком корпусе SOT23-6 и требует внимания при пайке.

Входное напряжение не должно превышать 36В, максимальный ток стабилизации – 3А. Входной конденсатор С1 может быть любым – электролитическим, керамическим или танталовым. Его емкость – до 100мкФ, максимальное рабочее напряжение – не менее чем в 2 раза больше, чем входное. Конденсатор С2 керамический. Конденсатор С3 – керамический, емкость 10мкФ, напряжение – не менее чем в 2 раза больше, чем входное. Резистор R1 должен иметь мощность не менее чем 1Вт. Его сопротивление рассчитывается по формуле R1 = 0.2 / I, где I – требуемый ток драйвера. Резистор R2 - любой сопротивлением 20-100кОм. Диод Шоттки D1 должен с запасом выдерживать обратное напряжение – не менее чем в 2 раза по значению больше входного. И рассчитан должен быть на ток не менее требуемого тока драйвера. Один из важнейших элементов схемы – полевой транзистор Q1. Это должен быть N-канальный полевик с минимально возможным сопротивлением в открытом состоянии, безусловно, он должен с запасом выдерживать входное напряжение и нужную силу тока. Хороший вариант – полевые транзисторы SI4178, IRF7201 и др. Дроссель L1 должен иметь индуктивность 20-40мкГн и максимальный рабочий ток не менее требуемого тока драйвера.

Количество деталей этого драйвера совсем небольшое, все они имеют компактный размер. В итоге может получиться достаточно миниатюрный и, вместе с тем, мощный драйвер. Это импульсный драйвер, его КПД существенно выше, чем у линейных драйверов. Тем не менее, рекомендуется подбирать входное напряжение всего на 2-3В больше, чем падение напряжения на светодиодах. Драйвер интересен еще и тем, что выход 2 (DIM) микросхемы QX5241 может быть использован для диммирования – регулирования силы тока драйвера и, соответственно, яркости свечения светодиода. Для этого на этот выход нужно подавать импульсы (ШИМ) с частотой до 20КГц. С этим сможет справиться любой подходящий микроконтроллер. В итоге может получиться драйвер с несколькими режимами работы.

(13 оценок, средняя 4.58 из 5) 


error: Контент защищен !!