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

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

Для использования мощных светодиодов не обойтись без использования токостабилизирующих устройств – драйверов. Правильные драйвера имеют очень высокий КПД - до 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) 

Наверняка у многих имеются фонари фирмы 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 файл, который остается залить в драйвер описанным в предыдущем разделе способом.

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

Этот обзор будет интересен в основном любителям доделывать и переделывать китайские фонарики.

Речь пойдет об однорежимном 15-мм драйвере светодиода на 3 Вт. Вот ссылка на товар в FocalPrice . Для нетерпеливых и знающих сразу скажу, что драйвер нормальный, работает хорошо, по цене получился сравнительно дешевым (я дешевле не нашел, но выбирал из сравнительно небольшого числа магазинов). Ну а подробности - под катом.

После покупки фонарика Sipik SK58, который питается от батарейки или аккумулятора размера АА, у меня не раз возникала мысль, что светодиод в нем светит не в полную силу. Да еще при этом нагрузка на старенький NiMH аккумулятор выходит за рамки приличий (со свежезаряженным аккумулятором ток порядка 1 А - аккумулятору было уже лет 5, чего его так насиловать). А все дело в том, что для питания светодиода требуется напряжение порядка 3.4 - 3.6 В, в то время как NiMH аккумулятор выдает порядка 1.4 В в свежезаряженном состоянии (мой же и до 1.2 еле дотягивал), а по мере разрядки напряжение может упасть аж до 0.9 В (может и ниже, но тогда и аккумулятор быстро теряет емкость). Поэтому в данном фонарике стоит повышающий драйвер светодиода, т.е. плата, которая преобразует напряжение аккумулятора в те самые 3.4 - 3.6 В. При этом драйвер Sipik"а не пытается регулировать ток через светодиод - он выдает напряжение, какое получится (исходя из напряжения аккумулятора), а там будь что будет. Светодиод же достигает максимальной эффективности только на определенном рабочем токе, например, белый светодиод мощностью 1 Вт - при токе 350 мА. Ток через светодиод в моем случае был меньше.

Решил я поменять в фонарике драйвер с повышающего на понижающий, а NiMH аккумулятор заменить на литий-ионный типоразмера 14500. У литий-ионных аккумуляторов напряжение порядка 3.6 - 4.2 В, что очень хорошо подходит для питания белых светодиодов. Драйвер в данном случае стабилизирует ток через светодиод.

Драйвер нашел на FocalPrice, выбирал из нескольких магазинов - при закупке трех плат цена у FP была существенно ниже, чем в других магазинах.

Плата драйвера содержит три микросхемы AMC7135, каждая из которых обеспечивает ток 350 мА. Суммарный ток, соответственно, равен 1050 мА (микросхемы допускается включать параллельно - так они и соединены на плате). Я решил запитать светодиод током 350 мА (мощность 1 Вт), поскольку точных данных о светодиоде не было, а по косвенным признакам (заявленная яркость фонарика) он должен быть одноваттным. Нужный мне ток обеспечивает и одна микросхема AMC7135, поэтому две из трех микросхем я просто отпаял с платы и использовал в других осветительных устройствах (в частности, в велосипедной фаре, в которой до того вместо драйвера стоял балластный резистор). Плата драйвера отлично встала в фонарик, и светить он стал существенно ярче, чем на аккумуляторе АА и родном драйвере.

Вот так выглядит драйвер в соответствующем месте разобранного фонарика:

Выковырять его оттуда обратно я уже не смог - плотненько засел:).

Вот так выглядит драйвер на 7135 (слева) в сравнении с родным повышающим драйвером Sipik"а (справа).

И под другим углом - если интересно, можно почитать надписи на микросхемах:

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

Оставшиеся с заказа две платы я использую как источник микросхем AMC7135, которые оказалось не так просто купить в розницу.

Если соберетесь покупать этот драйвер, будьте внимательны: в последних комментариях покупателей на FocalPrice есть упоминание, что теперь на плате всего две микросхемы, и ток, соответственно, получится 700 мА, а не 1050 мА. Цена тоже снизилась по сравнению с той, по которой покупал я (у меня bulkrate-цена была $1.61, сейчас $1.07) - возможно, это как раз обусловлено отсутствием одной микросхемы.

Привет, Habr!


Хочу рассказать историю о том, как мне в руки попал китайский налобный фонарик на светодиоде Cree XM-L и что дальше с ним стало.

Предыстория

Когда-то давно я заказал с одного китайского сайта фонарик с ярким светодиодом. Фонарик оказался довольно эргономичным (хотя он мог быть и полегче), но вот его драйвер оставлял желать лучшего.


Светил он достаточно ярко, но у драйвера было только 3 режима - очень яркий, яркий и стробоскоп, переключение между которыми производилось нажатием кнопки. Для того, чтобы просто включить и выключить фонарь, требовалось каждый раз перебирать эти 3 режима. Вдобавок, этот фонарик, будучи включенным, разряжал батарею до последнего – так пара моих банок 18650 ушли в глубокий разряд.


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


Фонарик со старым драйвером

Вот такой фонарик, наверняка многие имели дело с подобными


Так выглядит оригинальный драйвер

Техническое задание

Как известно, для достижения хорошего результата любая разработка должна иметь хорошее ТЗ, поэтому постараюсь сформулировать его для себя. Итак, драйвер должен:

  • Уметь включаться/отключаться по короткому нажатию кнопки (кнопка без фиксации). Пожалуй, это основная причина, по которой все это затеялось.
  • Иметь плавную (бесступенчатую) регулировку яркости, от самого яркого - "турбо", до "мунлайта", когда диод еле светится. Яркость должна изменяться равномерно.
  • Запоминать установленную яркость на время выключения.
  • Контролировать заряд батареи, предупреждая когда она почти разряжена (примерно 3.3В) и отключаясь, когда разряжена полностью (примерно 2.9В). Для разных АКБ эти параметры могут быть иными. Соответственно, рабочее напряжение должно быть в диапазоне 2.7~4.5В.
  • Иметь 2 специальных режима - аварийный маячок и стробоскоп (ну а почему бы и нет?)
  • Уметь включать/выключать задний светодиод (это актуально при езде на велосипеде ночью, получается что-то вроде габаритного огня).
  • Иметь защиту от переполюсовки и статического электричества. Не обязательно, но будет приятным дополнением, поскольку в темноте можно по ошибке поставить АКБ неправильной стороной.
  • Быть меньше изначального драйвера по размерам, но при этом иметь те же посадочные места. Китайский драйвер просто огромен, сделать крупнее будет непросто.

Ну и если фонарик подвергается моддингу, почему бы не встроить в него зарядное устройство с micro-USB разъемом? У меня под рукой всегда есть такой кабель и USB зарядка, а родной блок питания приходится искать.

Железо

У меня есть кое-какой опыт работы с Arduino, поэтому было решено делать драйвер на МК семейства AVR. Они широко доступны, легко программируются и имеют режимы пониженного энергопотребления (сна).


В качестве "мозга" драйвера был выбран микроконтроллер Attiny13a - это один из самых дешевых МК фирмы Atmel (ныне поглощенной компанией Microchip), он имеет на борту все необходимое - GPIO для подключения кнопки и светодиода, таймер для генерации ШИМ-сигнала, АЦП для измерения напряжения и EEPROM для сохранения параметров. Доступно всего 1 КБ флеш-памяти (но много ли надо для фонарика), а так же 64 Б RAM и столько же EEPROM.
Attiny13 выпускается в нескольких вариантах корпуса, в частности в DIP-8, который можно воткнуть прямо в обычную макетную плату с шагом 2.54мм.


Поскольку от задней части к голове фонаря идет всего 3 провода, кнопка вынуждена замыкаться на землю (о невозможности замыкать на плюс - позже), придется коммутировать светодиод по плюсу - а значит, нужен P-канальный полевик. В качестве такого транзистора я взял AO3401, но можно взять SI2323, он дороже, но имеет меньшее сопротивление открытого канала (40 мОм, тогда как у AO3401 60 мОм, при 4.5 В), следовательно драйвер будет меньше греться.


От слов к делу, собираю на макетке предварительную версию


Питается оно пока что напрямую от программатора, напряжением 5 В (на самом деле меньше из-за потерь в кабеле USB). Вместо светодиода XM-L пока воткнул обычный светодиод на ножках и поставил слабый транзистор с высоким пороговым напряжением.
Затем в программе Altium Designer была начерчена схема, которую я дополнил защитой от переполюсовки и ESD.



Подробное описание и предназначение всех компонентов

Обязательные компоненты:


С1 - развязывающий конденсатор по питанию микроконтроллера, должен быть в районе 0.1 мкф, корпус 1206 или 0805, температурный коэффициент X7R


R1-R2 - резисторный делитель для измерения напряжения батареи, номиналы можно ставить любые, тут главное соотношение (750К/220K, коэффициент деления 4.41) и ток утечки, который будет больше, если увеличить номиналы (при текущих он порядка 4 мкА). Поскольку используется внутренний ИОН (1.1 В, согласно даташиту он может быть в пределах 1.0 В - 1.2 В), максимальное напряжение на выходе делителя не должно быть более 1 В. При делителе 750/220 максимально допустимое напряжение на входе делителя будет 4.41 В, что более чем достаточно для всех типов литиевых аккумуляторов.
Делитель я рассчитывал при помощи вот этого калькулятора .


R3 - защита вывода порта микроконтроллера от замыкания (если вдруг PB1 окажется притянуто к VCC, через пин потечет большой ток и МК может сгореть)


R4 - подтяжка RESET МК к питанию, без него возможны перезагрузки от наводок.


Q1 - P-канальный полевой транзистор в корпусе SOT-23, я поставил AO3401, но можно и любой другой с подходящей распиновкой (например SI2323)


R7 - токоограничительный резистор затвора. Поскольку затвор транзистора имеет некоторую емкость, при зарядке этой емкости через пин может проходить большой ток и пин может выйти из строя. Можно ставить в районе 100-220 Ом (больше не следует, транзистор начнет долго находиться в полузакрытом состоянии, и, как следствие, будет сильнее греться).


R6 - резистор подтяжки затвора к питанию. На случай, если PB0 перейдет в высокоимпедансное состояние, через этот резистор на затворе Q1 установится логическая 1 и транзистор будет закрыт. Такое может произойти из-за ошибки в коде или в режиме программирования.


D2 - "запирающий" диод - позволяет при "проседании" напряжения (когда светодиод включается на короткий период на полную яркость) питаться МК от конденсатора какое-то время, так же защищает от переполюсовки.
Можно ставить любой диод шоттки в корпусе SOD323 с минимальным падением напряжения, я поставил BAT60.


Изначально, защита от неправильной полярности питания была сделана на полевом транзисторе (это можно увидеть на платах, изготовленных лутом). После распайки вылезла неприятная особенность - при включении нагрузки возникала просадка напряжения и МК перезагружался, поскольку полевик не ограничивает ток в обратном направлении. Сначала я припаял между VCC и GND электролитический конденсатор на 200 мкФ, но мне не понравилось такое решение из-за его размеров. Пришлось отпаивать транзистор и на его место ставить диод, благо SOT-23 и SOD-323 имеют похожие размеры.


Итого, в схеме всего 10 компонентов, обязательных для установки.

Необязательные компоненты:

R5 и D1 отвечают за заднюю подсветку (LED2). Минимальный номинал R5 - 100 Ом. Чем больше номинал, тем слабее светится задний светодиод (он включается в постоянном режиме, без ШИМ). D1 - любой светодиод в корпусе 1206, я поставил зеленый, т.к. визуально они ярче при тех же токах, чем прочие.


D3 и D4 - защитные диоды (TVS), я использовал PESD5V0 (5.0В) в корпусе SOD323. D3 защищает от перенапряжения по питанию, D4 - по кнопке. Если кнопка закрыта мембраной, то в нем нету особого смысла. Защитные диоды наверное имеет смысл использовать двунаправленные, иначе при переполюсовке через них пойдет ток и они выгорят (см. ВАХ двунаправленного защитного диода).


C2 - танталовый конденсатор в корпусе А (похож на 1206), имеет смысл ставить при нестабильной работе драйвера (напряжение питания мк может просаживаться при больших токах коммутации светодиода)


Все резисторы типоразмера 0603 (для меня это адекватный предел для пайки вручную)


С компонентами все ясно, можно делать печатную плату по вышеприведенной схеме.
Первым делом для этого нужно построить 3D модель будущей платы, вместе с отверстиями - имхо, в Altium Designer это самый удобный способ определить геометрию ПП.
Измерил размеры старого драйвера и его посадочных отверстий - плата должна крепиться к ним же, но иметь меньшие габариты (для универсальности, вдруг куда-то еще придется встроить).
Разумный минимум здесь получился где-то 25х12.5мм (соотношение сторон 2:1) с двумя отверстиями диаметром 2мм для крепления к корпусу фонаря родными винтами.


3D-модель я сделал в SolidWorks, затем экспортировал в Altium Designer как STEP.
Затем я разместил компоненты по плате, контакты сделал по углам (так паять удобнее и проще разводить землю), Attiny13 поставил по центру, транзистор поближе к контактам LED.
Развел силовые дорожки, разместил остальные компоненты как получится и развел сигнальные дорожки. Для удобства подключения ЗУ я вывел под него отдельные контакты, которые дублируют контакты батареи.
Всю разводку (за исключением одной перемычки) я сделал на верхнем слое - для того, чтобы была возможность изготовить плату в домашних условиях ЛУТом.
Минимальная ширина сигнальных дорожек - 0.254 мм / 10 mil, силовые имеют максимальную ширину там, где это возможно.


Так выглядит разведенная плата в Altium Designer


В Altium Designer есть возможность посмотреть, как будет выглядеть плата в 3D (для этого необходимо наличие моделей для всех компонентов, некоторые пришлось строить самому).
Возможно, кто-то тут скажет, что 3D режим для трассировщика не нужен, но лично для меня это удобная функция, которая облегчает размещение компонентов для удобства пайки.



На момент написания статьи было сделано 3 версии платы - первая под ЛУТ, вторая для промышленного изготовления и 3-я, финальная с некоторыми исправлениями.

Изготовление плат

Самодельный способ

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


Для начала нужно подготовить шаблон, который будет распечатан на термобумаге. Экспортирую в PDF слой top_layer, получаю векторное изображение.



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


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


Такая вот домашняя панелизация - большое количество плат позволяет компенсировать брак производства


Я травлю платы лимонной кислотой в растворе перекиси водорода, это самый доступный способ, хотя и довольно медленный.
Пропорции такие: на 100мл перекиси 3% идет 30г лимонной кислоты и примерно 5г соли, это все перемешивается и выливается в емкость с текстолитом.
Подогревание раствора ускорит реакцию, но может привести к отслаиванию тонера.


Начинается неведомая химическая магия: медь покрывается пузырями, а раствор приобретает синий оттенок


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


Теперь остается залудить плату - это поможет при пайке и защитит медь от окисления и облегчит пайку. Лудить я предпочитаю сплавом Розе - этот сплав плавится при температуре около 95 градусов, что позволяет лудить им в кипящей воде (да, возможно не самый надежный состав для лужения, но для самодельных плат годится).



После лужения я сверлю плату (для контактов использую твердосплавные сверла ф1.0, для перемычек - ф0.7), сверлю дремелем за неимением другого инструмента. Пилить текстолит я не люблю из-за пыли, поэтому после сверления разрезаю платы канцелярским ножом - с двух сторон делаю несколько надрезов по одной линии, затем разламываю по надрезу. Это напоминает метод V-cut, используемый в промышленности, только там надрез делается фрезой.


Так выглядит плата, готовая к пайке


Когда плата готова, можно приступать к распайке компонентов. Сначала я запаиваю мелочь (резисторы 0603), затем все остальное. Резисторы примыкают вплотную к МК, поэтому в обратной последовательности запаять может быть проблематично. После пайки я проверяю, нет ли КЗ по питанию драйвера, после чего уже можно приступать к прошивке МК.


Драйверы, готовые к загрузке прошивки

Промышленный способ

ЛУТ - это быстро и доступно, но технология имеет свои недостатки (как и почти все "домашние" методы изготовления ПП). Проблематично сделать двухсторонную плату, дорожки могут быть перетравлены, а о металлизации отверстий остается только мечтать.


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


Нижний слой платы в Altium Designer


Для этого проекта я решил заказать печатную плату на сайте PcbWay. На сайте есть удобный калькулятор расчета стоимости плат в зависимости от их параметров, размеров и количества. После расчета стоимости я загрузил gerber-файл, созданный ранее в Altium Designer, китайцы его проверили и плата отправилась на производство.


Изготовление комплект из 10 плат TinyFL обошлось мне в $5. При регистрации нового пользователя дается скидка $5 на первый заказ, поэтому я оплачивал только доставку, которая тоже стоит где-то в районе $5.
На этом сайте есть возможность выложить проект в общий доступ, поэтому если кто-то захочет заказать эти платы, можно просто добавить в корзину этот проект .


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


Программа (прошивка)

Основная трудность, которая возникла при написании прошивки драйвера, связана она с крайне малым размером flash-памяти - у Attiny13 ее всего-навсего 1024 байта.
Так же, поскольку изменение яркости плавное, нетривиальной задачей оказалось равномерное ее изменение - для этого пришлось делать гамма-коррекцию.

Алгоритм управления драйвером

Драйвер включается по короткому нажатию на кнопку, выключается по нему же.
Выбранный режим яркости сохраняется на время выключения.


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


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


Более подробное описание алгоритма работы драйвера

  1. При подаче питания на МК производится настройка периферии и МК погружается в сон (если STARTSLEEP определено). При подаче питания на драйвер оба светодиода мигают некоторое количество раз, если STARTBLINKS определено.
  2. Сон. Attiny13 засыпает в режиме power-down (это самый экономичный режим, по даташиту потребление МК составит ~ 1 мкА), выйти из которого оно может только по какому-либо прерыванию. В данном случае это прерывание INT0 - нажатие кнопки (установка PC1 в логическое 0).
    На PC1 при этом должна быть включена внутренняя слабая подтяжка к питанию. АЦП и компаратор являются основным потребителями тока из всей периферии, поэтому их тоже нужно отключить. На время сна содержимое регистров и оперативной памяти сохраняется, поэтому EEPROM не нужен для запоминания яркости.
  3. После сна периферия и ШИМ включается и драйвер входит в бесконечный цикл, в котором отслеживается нажатие кнопки и периодически проверяется напряжение батареи.
  4. Если кнопка нажата - засекается время нажатия.
    4.1. Если нажатие короткое - ожидается двойной клик (если BTN_DBCLICK определено).
    Если он был, переключается дополнительный светодиод LED2
    Если нет, то переход к п.2 (сон)
    4.2. Если нажатие долгое (дольше, чем BTN_ONOFF_DELAY) - включается режим управления яркостью. В этом режиме:
    • Инвертируется направление изменения (больше/меньше) и изменяется % заполнения ШИМ, пока нажата кнопка.
    • Если достигнуто максимальное/минимальное значение (RATE_MAX / RATE_MIN), светодиод начинает мигать;
    • Если прошло n-миганий (AUXMODES_DELAY) и кнопка все еще нажата, включается дополнительный режим. Таких режимов два - стробоскоп (включается на 25 мс, частота 8 Гц) и аварийный маячок (включается на полную яркость на 50мс, частота 1 Гц). В этих режимах не происходит проверки заряда батареи, а для выхода нужно какое-то время держать нажатой кнопку.
  5. Если пришло время проверять напряжение батареи - считываются показания с ADC2, результат сравнивается с предустановленными значениями.
    • Если значение АЦП больше значения BAT_WARNING – все нормально
    • Если меньше BAT_WARNING – пользователь предупреждается о разряде, драйвер мигает основным светодиодом. Кол-во вспышек будет пропорционально степени разряда. Например, с дефолтными значениями при полном разряде фонарь мигнет 5 раз.
    • Если меньше BAT_SHUTDOWN - МК переходит в п.2 (сон).

Управление яркостью светодиода

Как известно, самый простой способ управлять яркостью - изменять скважность ШИМ, при этом светодиод на какое-то время включается на полную яркость, затем выключается. Из-за особенностей человеческого глаза кажется, что светодиод светит менее ярко, чем если бы он был включен постоянно. Поскольку светодиод подключен через P-канальный полевой транзистор, для его открытия необходимо притянуть затвор к земле, а для закрытия - наоборот, к питанию. Время открытия транзистора по отношению ко времени его закрытого состояния будет коррелировать с заполнением ШИМ.
За скважность шим отвечает переменная rate, 255 rate = 100% ШИМ.
При частоте тактирования 1.2 МГц и предделителе таймера в 1, частота ШИМ будет равна 1200000/256 = 4.7 КГц. Поскольку это частота звуковая (воспринимаемая человеческим ухом), на некоторой скважности ШИМ драйвер может начать пищать (точнее, пищит не драйвер, а провода, либо элементы питания). Если мешает, можно увеличить рабочую частоту до 9.6 (CKSEL=10, CKDIV8=1) или 4.8 МГц (CKSEL=01, CKDIV8=1), тогда частота ШИМ будет в 8 или в 4 раза больше, но энергопотребление МК так же вырастет пропорционально.


Считается, что диод нужно питать путем стабилизации тока через него, а в таком режиме он быстро выйдет из строя. Тут я соглашусь и скажу, что у меня в фонаре (да и во многих налобниках аналогичной конструкции) светодиод не подключается напрямую к драйверу, а до него идут достаточно длинные и тонкие провода, сопротивление которых, а так же внутреннее сопротивление батареи и сопротивление драйвера ограничивают максимальный ток в районе 1.5 А, что в 2 раза меньше максимального тока для данного светодиода (максимальный ток для Cree XM-L согласно документации - 3 А).
Если у Вас драйвер подключен к светодиоду короткими проводами и у держателя батареи хорошие контакты, ток при максимальной яркости (rate=255) может превышать значение в 3А. В этом случае данный драйвер Вам скорее всего не подойдет, так как есть риск выхода светодиода из строя. Тем не менее, можно скорректировать параметр RATE_MAX до получения приемлемых значений тока. К тому же, хоть по спецификации транзистора SI2323DS его максимальный ток и превышает 4 А, лучше выставить порог в 2 А, иначе драйверу может потребоваться охлаждение.

Гамма-коррекция

Человеческий глаз воспринимает яркость объектов нелинейно. В случае с этим драйвером, разница между 5-10% ШИМ будет восприниматься как многократное увеличение яркости, тогда как разница между 75-100% будет практически не будет заметна глазу. Если увеличивать яркость светодиода равномерно, со скоростью n процентов в секунду, будет казаться, что в начале яркость очень быстро растет от нуля до среднего значения, затем очень медленно увеличивается от середины до максимума.


Это весьма неудобно, и для компенсации этого эффекта пришлось сделать упрощенный алгоритм гамма-коррекции. Его суть в том, что шаг изменения яркости увеличивается от 1 при минимальных значениях ШИМ до 12 при максимальных значениях. В графическом представлении это выглядит как кривая, точки которой сохранены в массиве rate_step_array. Таким образом, кажется, что яркость изменяется равномерно на всем диапазоне.

Контроль напряжения батареи

Каждые n-секунд (за интервал в миллисекундах отвечает параметр BAT_PERIOD) происходит замер напряжения батареи. Положительный контакт батареи, который подключается к VIN и попадает на резисторный делитель R1-R2, к средней точке которого подключен пин PB4 (он же ADC2 у мультиплексора АЦП).


Поскольку напряжение питания изменяется вместе с измеряемым напряжением, не получится измерить его, использовав в качестве опорного напряжения Vref, поэтому в качестве ИОН я применил внутренний источник на 1.1 В. Как раз для этого и нужен делитель - МК не может измерить напряжение, большее чем напряжение опорного источника (так, напряжению 1.1 В будет соответствовать значение АЦП в 1023 или 255, если использовать 8-битное разрешение). Проходя через делитель, напряжение в средней его точке будет в 6 раз меньше входного, значению 255 будет соответствовать уже не 1.1 В, а целых 4.33 В (делитель на 4.03), что с запасом покрывает диапазон измерений.


В итоге получается некоторое значение, которое дальше сравнивается с предустановленными значениями минимальных напряжений. При достижении значения BAT_WARNING светодиод начинает мигать некоторое количество раз (чем сильнее разряжено, тем больше мигает - за это отвечает BAT_INFO_STEP, подробнее в коде), а при достижении BAT_SHUTDOWN драйвер отключается.
Значение АЦП переводить в милливольты я не вижу смысла, т.к. это тратит лишную память, которой в тиньке и так мало.


Кстати, делитель является основным потребителем питания, когда МК находится в режиме сна. Так, делитель на 4.03 с R1 = 1M и R2 = 330К, будет иметь общее R = 1330K и ток утечки при 4 В = 3 мкА.
На время измерения напряжения нагрузка (светодиод) отключается примерно на 1 мс. Это почти не заметно для глаз, но помогает стабилизировать напряжение, иначе измерения будут некорректные (а делать какие-либо поправки на скважности шим и прочее - слишком сложно).

Внесение изменений в прошивку

Это нетрудно сделать, особенно если был опыт работы с Arduino или просто с C/C++.
Даже если такого опыта не было, можно настроить почти все рабочие параметры путем редактирования определений (defines) заголовочного файла flashlight.h.
Для редактирования исходного кода нужно будет поставить Arduino IDE с поддержкой Attiny13(a) или Atmel Studio – оно не сложнее, чем Arduino IDE, но гораздо удобнее.


Arduino IDE

Сперва необходимо будет установить поддержку Attiny13 в IDE. Достаточно подробная инструкция имеется в статье.
Далее нужно выбрать в меню Tools>Board Attiny13(a) и в меню Tools>Frequency 1.2MHz.
"Скетч" содержится в файле с расширением.ino, он содержит всего одну строчку кода - это включение в проект заголовочного файла. По сути дела, данный скетч - просто способ скомпилировать прошивку через Arduino IDE. Если Вы захотите внести в проект какие-либо изменения, работайте с файлом.cpp.
После открытия проекта нужно нажать на галочку, пойдет компиляция, в случае успеха в логе будет ссылка на файл *.hex. Его нужно залить в микроконтроллер по инструкции ниже.


Atmel Studio

Проект для этого IDE содержится в файле flashlight.atsln, а исходники - в файлах flashlight.h содержит определения (настройки) и flashlight.cpp содержит собственно код.
Расписывать более подробно содержимое исходников не вижу смысла - в коде полно комментариев.
После внесения изменений в код надо нажать F7, прошивка скомпилируется (или нет, тогда компилятор укажет, где ошибка). В папке debug появляется flashlight.hex, который можно загрузить в микроконтроллер по инструкции ниже.

Для загрузки прошивки и настройки фьюзов я использую программатор USBASP в сочетании с программой AVRDUDEPROG. Программа представляет из себя подобие GUI для программы avrdude, есть удобный встроенный калькулятор фьюзов - достаточно поставить галочки возле нужных битов. В списке контроллеров нужно выбрать подходящий (в данном случае Attiny13(a), зайти на вкладку Fuses и нажать кнопку read. Только после того, как значения фьюзов считаны из МК, можно их изменять. После изменения нужно нажать programm, новые фьюзы будут записаны в МК. Подходящие значения фьюзов записаны в файле flashlight.h



Программатор USBASP, подключенный к драйверу через клипсу со шлейфом


Для подключения USBASP к тиньке я использую клипсу под 8-контактный SOIC. Не очень удобное приспособление, приходится помучаться минут 10, прежде чем поймаешь контакт (возможно, мне просто попалась бракованная клипса). Бывают так же адаптеры SOIC-DIP, куда вставляется микросхема до пайки и в нее заливается прошивка - этот вариант удобнее, но теряется возможность программировать драйвер внутрисхемно (то есть обновлять прошивку после пайки МК на плату).
Если всего этого нет, то можно просто припаять проводки к выводам МК, которые затем прикрепить к Arduino.

Калибровка

Токи, проходящие через драйвер и светодиод, не должны превышать максимальных значений. Для светодиода XM-L это 3 А, для драйвера оно зависит от используемого транзистора, например для SI2323 максимальный ток около 4 А, но лучше гонять на меньших токах из-за чрезмерного нагрева. Для уменьшения тока на максимальной яркости используется параметр RATE_MAX (#define RATE_MAX xx, где xx - максимальная яркость от 0 до 255).
Калибровка АЦП не является обязательной процедурой, но если хочется, чтобы драйвер точно отслеживал пороговое напряжение, то придется с этим повозиться.


Расчеты не дадут высокой точности измерений, т. к. во-первых, номиналы резисторов могут варьироваться в пределах допуска (обычно 1-5%), а во-вторых, внутренний ИОН может иметь разброс от 1.0 до 1.2 В.
Поэтому, единственный приемлемый способ - выставить значение в единицах АЦП (BAT_WARNING и BAT_SHUTDOWN), экспериментально подбирая его под нужное. Для этого понадобится терпение, программатор и регулируемый источник питания.
Я выставлял в прошивке значение BAT_PERIOD в 1000 (проверка напряжения раз в секунду) и постепенно снижал напряжение питания. Когда драйвер начинал предупреждать о разряде, я оставлял текущее значение BAT_WARNING как нужное.
Это не самый удобный способ, возможно в будущем надо сделать процедуру автоматической калибровки с сохранением значений в EEPROM.

Сборка фонарика

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


Новый драйвер подключается вместо старого по этой схеме


Проверив, нет ли короткого замыкания по питанию, подключил питание и проверил работоспособность. Затем смонтировал плату зарядки (TP4056), для этого пришлось немного дремелем рассверлить отверстие разъема зарядки, и зафиксировал ее термоклеем (тут важно было, чтобы клей не затек в разъем, достать его оттуда будет сложно).


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


Тестирование и расчет стоимости изготовления

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


Энергопотребление старого драйвера (измерялось при 4.04 В):

  1. Во время сна - не измерялось
  2. Максимальный режим: 0.60 А
  3. Средний режим: 0.30 А
  4. Стробоскоп: 0.28 А

Энергопотребление нового драйвера (измерялось при 4.0 В):

  1. В режиме сна потребляет в районе 4 мкА, это намного меньше тока саморазряда литий-ионной батареи. Основной ток в этом режиме протекает через резисторный делитель.
  2. На минимальном режиме, "мунлайт" - около 5-7 мА, если считать, что емкость одной ячейки 18650 около 2500 мА*ч, то получается около 20 дней непрерывной работы . Сам МК потребляет где-то 1.2-1.5 мА (при рабочей частоте 1.2 МГц).
  3. На максимальном режиме, "турбо" - потребляет около 1.5 А, в таком режиме проработает около полутора часов. Светодиод на таких токах начинает сильно нагреваться, поэтому данный режим не предназначен для длительной работы.
  4. Аварийный маячок - потребляет в среднем около 80 мА, в таком режиме фонарь проработает до 30 часов.
  5. Стробоскоп - потребляет около 0.35 А, проработает до 6 часов.

Цена вопроса

Если покупать компоненты в Чип и Дипе, выйдет около 100р (60р Attiny13, ~40р остальная рассыпуха). С китая заказывать имеет смысл, если делается несколько штук - тогда в пересчете на штуку выйдет дешевле, китайцы продают как правило партиями от 10 штук.
Платы выйдут по цене в районе 300р за 10 штук (без доставки), если заказывать их в Китае.
Распайка и прошивка одного драйвера у меня занимает где-то час.

Заключение

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


Драйвер крупным планом (версия 2_t)


UPD : Добавлена поддержка Arduino IDE.

ZDL 23-06-2010 23:30

Хороший драйвер стоит дорого в 5 раз дороже хорошего диода...
Вот такой вопрос что дольше проработает:
1. Диод, драйвер + 1 литиевый элемент

Ток, диод и литиевые элементы одни и те же.
P.S. Я очень давно не читал про диоды, а сейчас что то снова зацепило . Литературу в сети я конечно поищю и прочитаю. Просто может этот вопрос уже подробно рассмотрен.

KAR2009 24-06-2010 01:13


2. Диод, резистор + 2 литиевых элемента

Пусть на светодиод надо 3,4 Вольта и ток 0,9 А при мощности 3 Вт. Берём 2 литий-ионных аккумулятора на 3,7. В заряженном состоянии они имеют до 4,2 В. Итак, на резисторе надо погасить 4,2В * 2 - 3,4В = 5В.
Резистор нужен на 5,56 Ом. При этом на нём будет выделяться мощность 5В*0,9А=4,5 Вт, т.е. больше чем на светодиоде. Фактически, 2-й аккумулятор будет работать на разогрев резистора, когда как в первом случае на светодиод. Я молчу, что в драйвере можно реализовать разные алгоритмы с изменением скважности ШИМ значительно повышающих экономию...

ZDL 24-06-2010 05:52

MauserFL, спасибо с удовольствием прочитал.

ilkose 24-06-2010 06:04

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

ZDL 24-06-2010 08:30

Скоро у меня будет хороший драйвер и диод. Вот и проверю что там да как.

sergVs 24-06-2010 09:41

Литий не единственный и не всегда лучший источник питания (а иногда и доступный). Это надо иметь в виду.

rkromanrk 24-06-2010 20:03

quote: Скоро у меня будет хороший драйвер и диод

Вы тут только не вздумайте написать какие именно - разочарованию не будет предела!..

John JACK 24-06-2010 21:09

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

ZDL 24-06-2010 22:31


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

Да? Раньше были только ШИМ преобразователи. Теперь есть линейные, это которые меняют своё сопротивление в зависимости от напряжения? Почитаю, посмотрю узнаю. Порядок цен не могли бы указать?
Да и ШИМы сейчас какие то неважнецкие.
Вот в журнале радио были ШИМы так ШИМы. Выходное напряжение 5вольт, при изменении входного с 3 до 15 вольт, и всего 2 транзистора.
Приобрел драйвер за 600руб... На эти деньги я мог купить 7 шт. 123 элементов...
Да вообшем чего гадать то, нужно эксперимент поставить. Вот только люкс метра у меня нет, нужно что то колхозить.

John JACK 24-06-2010 22:39

ШИМ - это не драйвер (стабилизатор тока) а средство ограничения яркости же. Однорежимные драйверы просто стабилизируют ток на светодиоде (по мере возможностей), а многорежимные состоят из стабилизатора, настроенного на ток максимального режима и ШИМа, который обеспечивает меньшие режимы и всякие стробы с цветомузыкой.
Линейный драйвер работает как умный переменный резистор, да. Имеет узкий диапазон входного напряжения, но высокий КПД, и сделать хороший линейный драйвер гораздо проще, чем хороший импульсный. Начинаются со ста рублей: http://www.dealextreme.com/details.dx/sku.6190

ZDL 24-06-2010 22:42



Диод R2 140 люкс на 1 ватт, максимальный ток 1500 мА. Драйвер 3х режимный на рефлекторе с наружи надпись 0.8-4.2 V. Максимальный выхолдной ток 1 ампер. Продавец сказал что один из лучших.

ilkose 24-06-2010 22:49

Наверное не драйвер а модуль купили? Все равно 600 руб дорого, я драйверочки по 110 руб покупаю (8-24 вольт, 1-3 одноваттника) светики китайские по 100-130 руб, оптика вообще копейки

ZDL 24-06-2010 23:40


Joker12 24-06-2010 23:51

Кстати, вот хороший фонарик. Чистой воды директ драйв, с резистором на второй режим.

KAR2009 24-06-2010 23:52

quote: Originally posted by ZDL:
Диод R2 140 люкс на 1 ватт, максимальный ток 1500 мА.

John JACK 25-06-2010 02:00

quote: Originally posted by ZDL:

Давайте рассмотрим самый тяжёлый случай:


У светодиода нелинейная ВАХ. Если уронить на драйвере/резисторе чуть-чуть напряжения, то ток на светодиоде упадёт весьма заметно. Рассуждения ваши были бы верны если диод был бы тупым сопротивлением. А он - сопротивление весьма нетупое.
Кроме того, утверждение
quote: Originally posted by ZDL:

4,2 в. выдаёт аккумулятор, 3,2в и 1.5 а.


неверно. Аккумулятор выдаёт 4.2 В без нагрузки. Если его включить напрямую на диод (директ драйв), то напряжение просядет до 3.2 В при токе 1.5 А. А чтобы получить на диоде 1 А, надо драйвером или резистором рассеять всего 0.1 В напряжение. Почему - смотрите таблицы ВАХ.
ШИМ же изменяет длительность импульса, да, но ток в импульсе будет максимально возможным. То есть 1.5 А или более при свежем аккумуляторе, с падением по мере разряда. Стабилизировать ток при помощи ШИМ нельзя, стабилизировать яркость (увеличивая длину импульса по мере разряда батареи) - теоретически можно, а практически не нужно.
quote: Originally posted by Joker12:

Кстати, вот хороший фонарик.


Чем он хороший? Тем, что десятиваттный светодиод питается всего 1.5-2 амперами и то при хорошем аккумуляторе и только первые несколько минут? Для P7 или MC-E надо минимум два 18650.

KAR2009 25-06-2010 02:39

quote: Originally posted by John JACK:
Стабилизировать ток при помощи ШИМ нельзя, стабилизировать яркость (увеличивая длину импульса по мере разряда батареи) - теоретически можно, а практически не нужно.

А вот "vaska" утверждает, что можно на форуме http://forum.fonarevka.ru/showthread.php?t=239 :
"Сама широтно-импульсная модуляция применительно к питанию светодиодов условно может быть разделена на два вида: первичная ШИМ и внешняя ШИМ.
Первое означает, что стабилизация тока на светодиоде осуществляется импульсным преобразователем, на выходе которого имеется фильтр, превращающий производимый преобразователем меандр в постоянный ток. Если сделать преобразователь такого рода регулируемым (обычно для этого изменяют опорное напряжение компаратора обратной связи по току), то, как справедливо разъяснял Малкофф, мы сможем добиться неплохого КПД на всех режимах работы.
Второе означает, что стабилизированный ток, обеспечиваемый первичным источником (безразлично, импульсным или линейным), прерывается с невысокой частотой и далее не фильтруется. Таким образом диод запитывается не постоянным током, как в первом случае , а импульсами тока, что, естественно, отрицательно сказывается на КПД системы в режимах малого света.
"
Так что при наличии фильтра с помощью ШИМ мы можем стабилизировать ток.

ZDL 25-06-2010 04:34


Люксы и люмены разные единицы... У R2 нет 140 люмен на 1 Ватт, это у R5 столько и максимальный ток для XP-G 1,5А приведён, а не для XR-E.

Да, я пока путаюсь. обешаю исправиться .

ZDL 25-06-2010 05:04

John JACK, светодиод вообще не похож на сопротивление. Более похож на стабилитрон, при достижении напряжения стабилизации его сопротивление значительно уменьшаеться. Только светодиод светиться в отличае от стабилитрона.
На счёт ШИМ. Есть широтноимпульсные стабилизаторы и они именно стабилизируют напряжение, либо ток с высоким КПД. Они могут повышать напряжение и ток, а так же понижать. А есть схемы изменяюшие длительность импульса, ни чего не стабилизируя. Этакий "импульсный" резистор. КПД их ниже, диапазон напряжений меньше, но они проще. Вообщем в электронике можно в такие дебри влезть .

vaska 25-06-2010 08:49

quote: Originally posted by ZDL:

У линейного драйвера хороший КПД?
Давайте рассмотрим самый тяжёлый случай: 4,2 в. выдаёт аккумулятор, 3,2в и 1.5 а. ест диод, отсюда 1в. и 1.5а драйвер просто переводит в тепло. Диод ест 4,8вт., а от аккумулятора забираем 6,3 вт. КПД... по моему тут нет, а есть 24% потерь в виде выделяемого тепла. И с ростом напряжения питания, потери будут расти. А ШИМ, насколько я с ними знаком, изменяеняет длительность импульса в зависимости от напряжения питания оставляя ток неизменным. Т.е. диод ест 4,8вт и от аккумулятора потребляет 5вт.

В общем случае утверждение абсолютно верное, но рядовому фонаревщику интересны частные случаи, например питание одного диода от одного литий-иона. И вот тут линейник с оговоркой, что он построен на полевом транзисторе со сверхмалым сопротивлением насыщения, составляет реальную конкуренцию ШИМ. При питании ШИМ от напряжения 4 В трудно достичь КПД выше 90%, и у линейника суммарный КПД получается сравнимым. Если, например, мы эксплуатируем самый передовой XP-G на токе 1,5 А (падение 3,36 В), то от свежезаряженного лития получаем 80% КПД. При разряде, когда напряжение аккумулятора и падение на диоде выравниваются, КПД близок к 100%, так что суммарный выходит около 90%. С учетом того, что спад напряжения в процессе разряда нелинеен, и максимален именно в его начале, реальный суммарный КПД выходит еще выше.

vasee 25-06-2010 15:51


http://www.4sevens.com/product_info.php?cPath=297_306&products_id=1654

LiaGen 25-06-2010 16:20

quote: О. Как хорошо, что тему заметил). Нет необходимости плодить лишние). Уважаемы форумчане, просьба подсказать), верно ли я понимаю, что Power: Two CR123A Batteries (3.0V~9.0V) в характеристиках говорит о наличии драйвера, так что можно не искать аккум на 3В, а брать 3,6В?
]http://www.4sevens.com/product_info.php?cPath=297_306&products_id=1654
Что до наличия драйвера -верно, он есть, работает как и указано в диапазоне 3-9в.
А теперь по питанию: фонарь ест 2 батарейки типа cr123 с маркировокй 3.0v, но реально их вольтаж выше, таким образом фонарь питается не от 6, а примерно от 7 с гаком вольт(могу врать не мерил как то свежих батареей) в при новых батареях.
Аналог\замена cr123 батарейкам это литиевые аккумуляторы типа rcr123(16340) с маркировкой 3.6v, их реальный вольтаж при полном заряде 4.2v - т.е. два акума дадут 8.4v - драйвер такой вольтаж скушает нормально.
Следует лишь учитывать, что большинство китайских акумов с защитой -длинее и толще, чем батарейки кр123. Посему предварительно уточните у пользовательей фонаря, влезут ли они туда..

ZDL 25-06-2010 16:34


Подключил модуль и диод к 123 элементу. Чегой то не впечатлён. Видать нужно от аккумулятора питать.

vaska 25-06-2010 17:06

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

ZDL 25-06-2010 17:45

И так я купил XPG R5, драйвер Solarforse 0,8 -4,2 3 mode. От одного элемента 123 диод не раскачивается на максимальный ток... А вот если диод запитать от двух 123 то думаю нужен будет токоограничительный резистор.
Аккумуляторов у меня пока нет.

Virgo_Style 25-06-2010 17:51

quote: Originally posted by ZDL:

От одного элемента 123 диод не раскачивается на максимальный ток

ZDL 25-06-2010 18:28

А чего странного то. Подключил 3 пальчиковых батареи. на диоде 3,02в 1,01а. На батареях 3,45в 1,2а. Какой КПД? Драйвер просто превращает в тепло лишнюю, по его мнению, энергию.

quote: Originally posted by rkromanrk:

Вы тут только не вздумайте написать какие именно - разочарованию не будет предела!..

Да разочарование есть...

Что и сделанно в китайце за 300 руб.

Virgo_Style 25-06-2010 18:46

quote: Originally posted by ZDL:

на диоде 3,02в 1,01а.

А на сколько драйвер расчитан? Вероятнее всего - на 1А... ну так вот он, как в аптеке.

KAR2009 25-06-2010 19:12

quote: Originally posted by ZDL:
А чего странного то. Подключил 3 пальчиковых батареи. на диоде 3,02в 1,01а. На батареях 3,45в 1,2а.

Нормально выдает. Первоначально для XP-G R5 было разрешено около 1 А, а потом расширили до 1,5 А максимальны ток. Так что драйвер мог выпущен и спроектирован под старые нормы.
quote: Originally posted by ZDL:
А вот если диод запитать от двух 123 то думаю нужен будет токоограничительный резистор.

Это перед драйвером резистор хотите?
Если без драйвера, то я уже отвечал в начале темы о бессмысленности этой затеи.
quote: Originally posted by ZDL:
Вообщем у вас устоявшиеся определения и понятия. Переубеждать вас себе дороже .
Да разочарование есть...
Так что прямое включение диода рулит.
Что и сделанно в китайце за 300 руб.

Похоже, что содержимое этой ветки не прояснило Вам прелести китайцев за 300 руб.

ZDL 25-06-2010 21:14

Я не буду вас переубеждать, кто в теме тот понял. Линейный стабилизатор самым наипростейшим низкоэффективным способом согласует диод с батареей.
Китайский фонарь за 300 руб. Светит так же, только синим, как и супер диод питаемый через стабилизаро тока. Может я чего то не понимаю, но китаец ест 1,5вт, а XPG R5 + драйвер 4,4вт...

vaska 25-06-2010 22:31

quote: Originally posted by ZDL:

При применении вместо него резистора много не потеряем, если заметите вообще какую либо разницу.

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

KAR2009 25-06-2010 23:02

quote: Originally posted by ZDL:
При применении вместо него резистора много не потеряем, если заметите вообще какую либо разницу.
Китайский фонарь за 300 руб. Светит так же, только синим, как и супер диод питаемый через стабилизаро тока. Может я чего то не понимаю, но китаец ест 1,5вт, а XPG R5 + драйвер 4,4вт...

В разговоре речь шла о 2-х элементах CR123 ("А вот если диод запитать от двух 123 то думаю нужен будет токоограничительный резистор.") А это от 6 до 8 Вольт в зависимости от типа CR123. В итоге одна батарея будет работать на резистор, нагревая его.
Если в расчёт берется то, что изначально элементы питания CR123 имеют высокое внутреннее сопротивление, что уже не правильно, так как идеальный источник напряжения должен иметь нулевое внутреннее сопротивление. То избыточное напряжение будет рассеиваться на внутреннем сопротивлении элемента нагревая его и не делая полезную работу. Причем величина этого сопротивления не постоянна и зависит от многих факторов. Ограничение тока светодиода резистором оправдана, когда светодиод маломощный или имеем не большой перепад напряжения источника и напряжения на светодиоде при котором обеспечивается заданный рабочий ток. Причем, как отметил "vaska" "потеряем половину первоначальной яркости через пятнадцать минут работы". Обычно принято считать время работы фонаря от первоначальной яркости до 50% снижения...
Ну а еле тлеющие часами китайские фонарики после 15-30 минут работы и моргающими или сгорающими светодиодами за 300 руб выбор не из лучших...

Der Alte Hase 26-06-2010 03:09

quote: Originally posted by vaska:
Активный самодельщик StasikOFF уже который год лепит фонари на линейных источниках тока, и своим КПД они весьма впечатляют.

Типа таких, по сути своей?
http://www.candlepowerforums.com/vb/showthread.php?t=264687

Der Alte Hase 26-06-2010 04:51


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

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

vaska 26-06-2010 06:25

quote: Originally posted by Der Alte Hase:

Типа таких, по сути своей?

По сути - да, я в какой-то ветке его схему выкладывал: источник опорного, операционник, полевик, три резистора. Вся комплектация легко умещается в сто рублей.

ZDL 26-06-2010 08:13

Разницу в свечении при подаче на диод 2 вт и 4вт я должен увидеть? Именно увидеть а не измерить люкс метром?
Так вот я её не вижу. Сравниваю яркость светового пятна на стене с другим фонарем. Нужно конечно подтвердить бимшотами, но пока времени нет.

Virgo_Style 26-06-2010 10:30

quote: Originally posted by ZDL:

Разницу в свечении при подаче на диод 2 вт и 4вт я должен увидеть?

Попробуйте посветить вдаль - на стене разницу видно плохо.

John JACK 26-06-2010 11:02

Разница между 2 Вт и 4 Вт на глаз - меньше. чем в полтора раза. У меня точно так же было с модулем на XP-G. 700 мА и 1400 мА, на глаз - одинаково, люксметром - 3000 и 4000 попугаев, соответственно.
Главная суть драйвера - поддерживать одинаковый ток на диоде вне зависимости от степени разряда батареи. Потому нельзя говорить, что вот в какой-то момент директ-драйв или резистор эффективнее драйвера - в соседний момент батарея подсядет и ток с яркостью упадут. Резистор годится тогда, когда у нас есть источник относительно постоянного напряжения - сетевой блок питания или автомобильный генератор, например, и нам не надо получить от светодиода максимум эффективности.

ZDL 26-06-2010 13:17

Вот и я об том же!!! Разница в излучении и потребляемой мощьности нелинейная.
Вообщем мне нужно найдти характеристки диода.

Со воим модулем разобрался, китаец сфокусирован лучше, поэтому казалось что он ярче.

Virgo_Style 26-06-2010 13:31

quote: Originally posted by ZDL:

Специалисты подскажите какой драйвер сможет выдавать постоянный ток, допустим 1 ампер, при питании от 1,5в до 8в. И желателно его цену. ?

ZDL 26-06-2010 14:52

Virgo_Style 26-06-2010 15:04

vaska 27-06-2010 20:12

quote: Originally posted by ZDL:

И так XGP R5 при 3,5в.,1,4А выдаёт 350люм, а при 3.2в., 0,65а. - 175люм.
Так что при потере 50% яркости можно вполне обойдтись без драйвера. Правда в самом начале разряда подьём, на него и расчитывать максимальный ток диода. Масимальную яркость не получим, но схема вполне работоспособна с очень приемлемыми параметрами, по моему.

Вообще-то ток 2С - это больше четырех ампер! А Вы, как я понимаю ориентировались именно на нижний график.
Теперь по поводу падения и светоотдачи. Читаем здесь: http://www.candlepowerforums.com/vb/showpost.php?p=3115908&postcount=354 Цифры немного не сходятся с Вашими предположениями.

Просто разок попробуйте подцепить XP-G напрямую к 18650, и потом расскажите сколько секунд он продержался.
Собственно, мне Ваш подход не очень понятен. Вы начали тред, чтобы проконсультироваться и попросить совета. Полезных советов Вам накидали, но у Вас всегда находятся какие-то возражения, и Вы начинаете спорить с людьми, разбирающимися в предмете явно лучше Вас, после чего предлагаете очередное непродуманное решение, причем совершенно не учитывая той информации, на выкладывание которой специально для Вас форумчане потратили определенное время. Если у Вас на все существует свое мнение, то зачем спрашивать советов, ну а если спрашиваете, то отнеситесь чуть более лояльно к тем, кто откликнулся, и хотя бы задумайтесь над тем, что для Вас написали, а то создается впечатление, что Вы живете в режиме монолога.

Virgo_Style 27-06-2010 20:31

Был у меня один XR-E, который я запитывал напрямую. Ток - два ампера, сгореть он так и не удосужился. Впрочем, надолго я его и не включал - секунд на 10, может быть на 20.
Естественно, пользоваться таким фонарем постоянно я бы не стал. Просто от этого фонаря мне был нужен главным образом корпус

В принципе, если любопытно, то можно и повторить эксперимент -)
Но - только после ZDL

ZDL 27-06-2010 21:22

Я на какойто CREE подавал 2,5 а в течении нескольких секунд ни чего не взорвался и продолжает работать.
Сейчас собрал фонарь для показухи. Тот
самый КРЕЕ, резистор на 1ом., 2 элемента CR2. Потребляемый ток 1 а. Куплю еще элементов, посмотрю за сколько он разрядиться.
Да и думаю как сделать импульсный стабилизатор тока с рабочим напряжением 3-9в.
АККУМУЛЯТОРОВ У МЕНЯ НЕТ, не могу я прицепить диод к аккумулятору, был бы сразу и прицепил.

ilkose 27-06-2010 23:51

quote: Я на какойто CREE подавал 2,5 а в течении нескольких секунд ни чего не взорвался и продолжает работать.

Очень показательно , я как то на машине газанул, педаль до пола, и ниче не взорвалось, работает. если серьезно- как то включил напрямую 18650 к ребелу (конечно не ахти какое сравнение, макс ток 700 по даташиту) он продержался 1 сек и стал вечно синим.

ilkose 27-06-2010 23:54

quote: Тот
самый КРЕЕ, резистор на 1ом., 2 элемента CR2. Потребляемый ток 1 а


quote: АККУМУЛЯТОРОВ У МЕНЯ НЕТ, не могу я прицепить диод к аккумулятору, был бы сразу и прицепил.

Тут то и было самое интересное. 18650 в ноутбучных батареях есть, можно сходить где ноуты ремонтируют и попросить баночку.

Virgo_Style 28-06-2010 12:01

quote: Originally posted by ilkose:

Сколько из этих 1 а осталось на резисторе?

pnvkolya 28-06-2010 09:18

quote: Сколько из этих 1 а осталось на резисторе?

Эм... Вы, наверное, вольты или ватты имели в виду?


вот имено, если резистор не в паралель светодиоду, то как я понимаю все что ушло с батареии все на диод и попало, что касаеся амперов-то, других контуров нету.

ilkose 28-06-2010 10:50

Virgo_Style это образно имелось в виду. Хотелось подтолкнуть к тому что будут потери. Ватта 3 мощности будет рассеивать резистор.

vaska 28-06-2010 11:07

quote: Originally posted by ilkose:

Ватта 3 мощности будет рассеивать резистор.

Один ампер возвести в квадрат и умножить на один ом = 1ватт.

ZDL 28-06-2010 16:08

Так и пусть рассеивает, если яркость и продолжительность свечения устраивает. Так как резистор+батарейка гораздо дешевле моего хренового дорого драйвера, который расчитан на работу только с литиевыми аккумуляторами, а на 123 батареи выдаёт 1,5 вата и ещё не известно стабилизированных ли.

KAR2009 28-06-2010 16:32

quote: Originally posted by ZDL:
Так как резистор+батарейка гораздо дешевле моего хренового дорого драйвера

Virgo_Style 28-06-2010 16:36

А можно увидеть ссылочку на дорогой хреновый драйвер?

ZDL 28-06-2010 18:03

quote: Originally posted by KAR2009:

Здесь, в ЕС, 1 штука CR2 стоит от 6,5 до 7,5 Евро. Итого за 2 штучки надо отдать около 14 Евро, т.е. свыше 500 руб. В фонарике UltraFire WF-606A Cree Q5 (3 Вт) время жизни 1-го CR2 около 20-30 минут при токе потребления в 1,82 А.


Ого у вас цены. Спасибо за информацию, теперь есть с чем сравнить.

Virgo_Style, модуль я брал с рук. Продавец сказал что это solarforse 0,8-4,2 3 mode. Что я намерял у него на выходе писал в этом топике.

Virgo_Style 28-06-2010 18:56

И кстати,

quote: Originally posted by ZDL:

Так как резистор+батарейка гораздо дешевле моего хренового дорого драйвера, который расчитан на работу только с литиевыми аккумуляторами, а на 123 батареи выдаёт 1,5 вата



А у вас?

andory 28-06-2010 20:59

quote: Так как резистор+батарейка гораздо дешевле моего хренового дорого драйвера.....

1. Всюду должны быть очень хорошие контакты и достаточно толстые провода. Для экспериментов лучше всюду использовать пайку. Тогда и токи начнут получаться, и светодиоды гореть. Если просто прислонить провод к батарейке, легко получить сопротивление контакта 0.2 Ом и больше. Для 2хCR2 можно собрать линейный стабилизатор тока, при этом кпд будет всегда больше 70% (при токах >1A). Импульсный стабилизатор - устройство сложное, и 85%- почти предел. Так что если устраивает выбрасывать 1\10 батарейки, то самодельный драйвер состоит из 1 микросхемы, светодиода и мощного полевика.

ZDL 28-06-2010 22:19


Это случайно не тот, который dsche бесплатно отдавал?

Хотя в любом случае solarforce на "дорогой" ну никак не тянет.

Нет я его приобрёл за 600 руб. О чем писал. Я за эти деньги ожидал большего.

quote: Originally posted by Virgo_Style:
И кстати,

1.5 ватта - это маловато, конечно... а с резистором сколько получилось?
У меня вот почему-то от БП и без всякого резистора получилось ровно в два раза меньше - 0.25А при 3V.
А у вас?

Virgo_Style 28-06-2010 22:59

quote: Originally posted by ZDL:

Нет я его приобрёл за 600 руб.

~20 баксов?! Мамадорогая. Тогда я вас понимаю. Переплатили раза в четыре, наверное

Virgo_Style 28-06-2010 23:08

quote: Originally posted by ZDL:

резистор всё же проще не правда ли?

Было бы недурно определиться все же, какую характеристику мы обсуждаем.

Проще - резистор.
Надежнее - резистор.
Дешевле в изготовлении - резистор.
Дешевле в эксплуатации - драйвер.
Функциональнее - драйвер.
Позволяет использовать различные типы питания - драйвер.

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

andory 28-06-2010 23:12

quote: Originally posted by ZDL:

У меня 2 элемента CR2 + резистор на 1 ом.
andory, резистор всё же проще не правда ли?


Проще. Только яркость падает в процессе и светит недолго. Фактически, игрушка на 30 минут. Учитывая немаленькую цену CR2, сложно рассматривать это как полноценный фонарик. Во всяком случае, как им пользоваться и для чего- не особо представляю.

Тогда резистор будет более разумным решением.
И драйвера "за копейку" вполне приличные.
Кривая разряда позволяет питать светодиод током 800-1000мА (XRE)
а XP-G даже и больше (но нужен мощнее драйвер)
и проблем поменьше будет.

Virgo_Style 29-06-2010 09:15

quote: Originally posted by dsche:

Это не драйвер за 600, а модуль D26. Ну и он собственно $20 и стоит. По просьбе топикстартера на место R2 был поставлен куттеровский R5 (+350 диод +50 канифоль). Родной R2 передан вместе с модулем.

У меня периодически просыпается чувство, что топикстартер вешает нам лапшу на уши. И это тот тот самый момент...

ZDL 29-06-2010 15:05

Злые вы, уйду я от вас...
Вчера дождался темноты и протестиовал в поле. Китаец естественно самый тусклый, R5 + драйвер поярче (видимо нужно подать на R5 1,5а.) Ну а R2, 2 элемента CR2 через резистор на 1ом самый яркий. Луч виден сам по себе и если вдоль него смотреть очень плохо видно, нужно немного со стороны. Вообщем для показухи самое то .

rkromanrk 30-06-2010 02:08

quote: Злые вы, уйду я от вас

Давно уже так и хочется сказать (жена меня просто ненавидит за эту фразу...): "А я Вас предупреждал!!!..."

andory 01-07-2010 01:04

quote: Originally posted by rkromanrk:

предлагаю заодно обсосать вот это буржуйское ВАУ:


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

rkromanrk 01-07-2010 01:21

quote: трансформатор можно прямо на корпусе батарейки намотать

Насколько я понимаю, ЭТО не стабилизирует ток, а лишь увеличивает напряжение???...

ZDL 01-07-2010 10:27

quote: Originally posted by rkromanrk:

Насколько я понимаю, ЭТО не стабилизирует ток, а лишь увеличивает напряжение???...

Да, стабилизация идёт за счёт диода. Преобразователь слабенький и спалить диодик не может.
Я нашёл такую же схему в инете. Транзистор КТ315. трансформатор 20 витков проводо 0,2, резистора нет. Заявленна работоспособность до 0,6 в. Если применить гернамиевый транзистор, то до 0,2 вольта.

KAR2009 14-07-2010 05:10

Извиняюсь, что снова поднимаю эту тему. Перед сном, что-то захотелось теоретически подсчитать сколько будет светить фонарик на 1-м элементе 18650, например ёмкостью 2400 с срабатыванием защиты на 2,8 В и использующий в качестве "драйвера" ограничивающий резистор в 1.3 Ом (взят с реального китайского фонаря). В качестве светодиода берём стандартный Cree 7090 XR-E Q5. Сопротивлениями проводов и внутренним сопротивлением аккумулятора 18650 пренебрегаем.
Цепь состоит из 3-х последовательно соединенных элементов: аккумулятор, резистор и светодиод. Соответственно ток через все элементы одинаковый. Напряжение на аккумуляторе равно сумме напряжение на светодиоде и резисторе.

Напряжение на резисторе Ur=I*R.

Напряжение на аккумуляторе зависит от его остаточной ёмкости. Для простоты считаем зависимость на участке 2,8...4,2 В линейной. Полагаем, что разряженный полностью аккумулятор имеет 2.8 В. Соответственно напряжение на 18650 в зависимости от текущей остаточной ёмкости C и полной ёмкости B: U=2.8+C*(4.2-2.8)/B=2.8+C*1.4/B

В результате получаем, что до срабатывания защиты 18650 ёмкостью 2400 мА*ч проработает около 16 часов. При этом в начале фонарь будет светить ярко (I=0,64А, около 170 лм), а в конце ток в цепи будет около 30 мА, т.е. около 10 люмен на светодиоде.
Как видно из всего этого, время работы без нормального драйвера такой конструкции не впечатляет.

Добавление. Если же в качестве критерия длительности работы принять падение светимости до 50% от первоначального, то следует из таблицы построить зависимость светимости светодиода в люменах от тока в Амперах: L(I)=1/(0.0027615/I+0.0014839). Эта аппроксимация описывает светимость светодиода с точностью до 1 люмена в диапазоне токов от единиц миллиампера до 1,5 А.
Добавив в задание MatCad функцию J(t)-значение тока в цепи (А) после t секунд и L(I), получаем график зависимости светимости светодиода в люменах от времени в минутах:

Первоначально светимость составляла около 170 лм. Из графика видно, что 85 люмен будет приблизительно через 200 минут или 3 часа 20 минут.

andory 14-07-2010 19:12

С шим-драйвером без индуктивностей при 20 мА получим те-же 10 люмен в течение 120 часов.

John JACK 14-07-2010 20:05

А нам надо - 170 люмен в течении четырёх часов

andory 14-07-2010 20:53

А другим нам- 300 люмен целый час. Симптоматика налицо, и драйвер (многорежимный), как лекарство, экономически чрезвычайно целесообразен.



Похожие статьи