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

Замена драйвера в Yupard копии фонаря MagicShine MJ-810

В данной статье пойдет речь об особенностиях замены драйвера в довольно популярной копии (клоне) фонаря MagicShine MJ-810 . Популярность копии определяется в первую очередь доступной ценой, простотой конструкции и ремонта.

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

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

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

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

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

Выкручиваем алюминиевый стакан с драйвером. Отпаиваем провода от светодиода. Вытаскиваем драйвер. Для замены есть две версии: Вариант 1 стандартынй драйвер - Драйвер c магнитным управлением 5-12 В (три режима яркости, строб и SOS). Для тех кого раздражает режимы мигания Вариант 2 модернизированная версия - Драйвер c магнитным управлением 5-12 В VER.2

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

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

Перечислим неисправности фонаря которые могут возникать:

  • Неправильная установка драйвера или смещения стакана относительно магнита в кольце выбора режимов
  • Отсутствие контакта между драйвером и алюминиевым стаканом
  • Несправность драйвера (может возникнуть при переполюсовки и неправильной установке аккумуляторов)
  • Неисправность светодиода (или кривая пайка светодиода на подложку). Рекомендуется использовать качественные светодиоды XM-L2 правильно припаянные на подложку star SinkPAD
  • Неисправность аккумуляторов (на свежезаряженных аккумуляторах напряжение 4В на каждом и 8В на двух последовательно соединенных).

Глобальная доработка светодиодного фонарика

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

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

Это китайский фонарик фирмы Police с маркировкой 20W.
После приобретения фонарик был разобран и проанализированы внутренности. Внутри стоял одноватный светодиод с отражателем дающим очень большую боковую засветку и очень узкий луч света. Драйвер (если это так можно назвать) состоял из небольшого количества деталей - микросхема ME2108А, катушка индуктивности, конденсатор, диод. Вроде-бы все нормально, но дроссель с микросхемой в данной схеме очень грелся, схема потребляла примерно 0.5А от пальчиковой батарейки, и светодиод давал относительно слабый световой поток. Как оказалось позже - данный преобразователь давал без нагрузки на выход 4.5V, а светодиод был рассчитан на 3.6V, за счет маленького тока насыщения дросселя происходило падение выходного напряжения до необходимого и схема "работала".

Так как у меня была задача сделать эффективный источник света, а не использовать китайский драйвер у которого КПД "ниже чем у паровоза", я решил его доработать поменяв светодиод на OSRAM LUW W5AM-LXLY-6P7R-Z с коллиматором OSS-M на угол 30° (можно было поставить всеми любимый Cree, но у нас с ними проблемы, такие как отсутствие маленьких подложек и оптики), и поставить драйвер на основе специализированной микросхемы ZXSC310.

Светодиод фирмы OSRAM был выбран по ряду причин: при токе 350мА светодиод дает световой поток до 150 люмен, максимальный ток светодиода составляет 1А, этот светодиод почти совместим по посадке с штатным, у него самая низкая цена при его мощности.


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


Так-же необходимо снять фаску с края корпуса до резьбы, и уменьшить высоту гайки крепления оптики (так как наша система ниже чем стандартная).
Как показал опыт исполькования различных фонарей - узкий луч яркого света в большинстве случаев ухудшщает видимость и дает малую освещенность, поэтому мой выбор остановился на коллиматоре фирмы LEDIL с маркировкой OSS-M на 30º, предназначенный для светодиодов OSRAM серии DRAGON.
Дорабатываем коллиматор (по умолчанию коллиматор квадратный и в корпусе для приклеивания на подложку светодиода). Вытягиваем коллиматор из его корпуса, отрезаем уши и стачиваем его до необходимого диаметра на точиле.


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

Так, с корпусом вроде все понятно, теперь наконец-то приступаем к электронике.

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


Но так как меня заразили страшнейшей болезнью - болезнью "Люмена", и кроме того что необходимо получить большую яркость нам необходима универсальность фонаря и долгое время работы. Для большой яркости обычные пальчиковые батарейки не подходят, и я применил Li-Ion аккумулятор LIR14500на 700 mAh, который по размерам совпадает с обычной пальчиковой батарейкой. Но вот не задача - напряжение аккумулятора в заряженном состоянии 4.2V, а максимальное напряжение светодиода при токе 300мА - 3.4V. Повышающий драйвер не подходит.
Вот тут то я и решил воспользоваться основой схемотехники повышающе-понижающих драйверов (Buck-Boost). Кроме схемы драйвера я решил сделать два режима яркости, для этого применил миниатюрный PIC10F220.


Данная схема драйвера обеспечивает питание светодиода током до 300мА при питании от аккумулятора, и ток порядка 100мА при питании от батарейки. Так как в данной схеме нет обратной связи по току светодиода, то при питании от пальчиковой батарейки ток уменьшается, но нестабильность тока при работе от аккумулятора почти не заметна.

Второй задачей была разработка системы управления драйвером. Данная система должна определять напряжение заряда аккумулятора, и при низком заряде индицировать это. Так-же необходимо обеспечивать 2 режима яркости (для увеличения продолжительности свечения).

Данная схема обеспечивает:
-Переключение режимов при кратковременном розрывании питания
-Два режима яркости
-Индикацию разряда аккумулятора и отключение драйвера при полном разряде
-Возможность работы от пальчиковой батарейки

При использовании батарейки система управления не работает (внутренний подтягивающий резистор микросхемы драйвера запускает рдайвер), но как только будет установлен аккумулятор - напряжения питания становится достаточным для запуска контроллера, и фонарик включается в первом "Эконом" режиме на 40% яркости. При кратковременном нажатии на кнопку питания происходит отключение питания, и при отпускании кнопки включается второй режим - максимальная яркость.

Для индикации разряда аккумулятора я использовал АЦП и измерение напряжения внутреннего опорного источника 0.6V (значения АЦП обратнопропорциональны напряжению питания, с учетом падения на диоде). При снижении напряжения до минимального фонарик переключается примерно в 10% яркости, а при полной разрядке аккумулятора контроллер выключает драйвер.

Больше всего проблем было при попытке сделать переключение режимов, и сброс режима через некоторое время (что-бы фонарик включался не с последнего режима, а с эконом), были попытки запитать контроллер от конденсатора на время разрыва питания кнопкой, но возникли проблемы с пробуждением из режима спячки, так как я использовал порт GP2, как датчик наличия напряжения на драйвере, а прерывания по этому выводу порта отсутствуют, а переключать на другой я посчитал неблагоприятным для внутрисхемного программирования контроллера. Долго проводив эксперименты я заметил что контроллер сохраняет состояние регистров даже при долгом отсутствии питания, и проверив теорию я понял в чем дело - на конденсаторе C1 при выключении питания остается заряд примерно 0.7V (при этом напряжении драйвер перестает работать), и этого напряжения вполне хватает что-бы в регистрах контроллера сохранились последние значения (а именно режим). Для "сброса" последнего состояния (происходит примерно за 5с после выключения) я поставил резистор R1.

Перемычка JP1 была введена на всякий случай для отключения котроля разряда.

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


Детали: конденсаторы танталовые в корпусе А, дроссель Sumida CDRH6D38NP-100NC, резисторы типоразмера 0603, низкоомные резисторы датчика тока - типоразмера 0805 сопротивлением 0,05 Ом (с маркировкой E05) установлено 2шт параллельно друг на друге для получения сопротивления 0,025 Ом, диод Шоттки - миниатюрный с низким падением на ток 2А, транзистор (Zetex) на максимально возможный в этом корпусе ток (можно поставить ZXTN25012, ZXTN19020). Светодиод и оптичесскую систему можно использовать и другую, главное что-бы светодиод был расчитан на ток более 300мА для уменьшения тепловыделения.

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

В итоге получился фонарик внешне почти ни чем не отличимый от оригинала (кроме оптики, которая уже привлекает внимание), но с параметрами и углом светового потока намного лучшими чем у оригинала.

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

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

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

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

  • неудобное управление - три режима которые переключаются по циклическому алгоритму (четвёртый режим "выключено"), то есть если нужный режим пропустил, то надо "прощелкивать" все режимы по кругу, пока не "дощелкаешь" до нужного режима;
  • один из режимов - мигающий - вообще бесполезный, только мешает управлению;
  • нет контроля состояния аккумулятора, то есть при каждом цикле разряда портит аккумулятор, сильно разряжая его (если не выключить, может посадить аккумулятор до 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 кОм

Как известно диод - это токовый прибор, питать его нужно постоянным током, а не напряжением. Светодиоды – тоже диоды, и их тоже нужно питать стабильным током. При стационарной установке светодиода проблема его питания легко решается с помощью резистора, который задает ток через светодиод. Рассчитать номинал резистора помогает закон Ома: 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() ; //Разрешить прерывания