Comments 110
На самом деле, 18650 очень сложно заставить взорваться, только если разве что нагреть градусов до 200. И то, если я не ошибаюсь, то взрыва не будет, так как у них есть защитный клапан.
Я уж было надеялся что уж на хабре-то всякую банальщину выкладывать не будут… ыыыхх…
По пунктам
1) КПД вашей защиты от переполюсовки 60%!
2) при разряде батареи до 3.2 вольт фонарик на максимуме будет светить как мунлайт
3) сверхперегруженный алгоритм на одну кнопку
4) нет возможности контролировать/стабилизировать ток светодиода
5) естественно нет никакой возможности повышать напряжение батареи до нужного светику.
Я давно пытаюсь сам свой драйвер собрать но делать нечто подобное не хочется абсолютно — нужно две кнопки вкл-выкл и режимы(как в фотоаппарате полунажатие и полное) или как вариант — несколько программируемых режимов(2-3 не более) и возможность входа в меню программирования для изменения этих режимов. Естественно запоминание настроек в еепроме.
По схемотехнике — ну вопервых защита переполюсовки — давным давно люди используют схему идеальный диод из полевика и резистора. Сразу кпд+. Во вторых без индуктивности и низкоомного шунта невозможно поддерживать стабильную яркость свечения. Проблема в том чтоб уместить в компактных размерах синхронный флайбек или инвертирующий преобразователь с полевиками вместо диодов т.к. падение 0.4 вольта из 3-х полезных на диоде — непозволительная роскошь.
Дальше микроконтроллер… ну тини 13 конечно неплох но 85-тая имеет pll и 64 мегагерца на такт таймеру — так задрало что на средних и низких мощностях все фонарики стробят и вращающиеся детали могут останавливаться с разными последствиями для рук…
В общем очередная моргалка… а жаль… таки прийдется самому доделывать толковый драйвер для светодиодного фонарика.
1. Влияние защиты от переполюсовки на КПД в районе погрешности — через защитный диод питается только МК (который потребляет 1-2 мА), основной ток через него не идет. Полевик я пробовал ставить, но с ним были проблемы — МК перезагружался при подключении нагрузки из-за просадок напряжения, поскольку ток через него идет в оба направления, когда он открыт. С диодом такой проблемы нет.
2. Это не совсем так. Светить конечно будет гораздо слабее, но все еще достаточно ярко для того, чтобы им можно было пользоваться. Эту проблему решил бы DC-DC преобразователь, но тогда нужно и индуктивность ставить, и частоту ШИМ повышать, и другой МК в общем-то ставить (например ту же 85-ю, тут я с вами соглашусь). Но тогда драйвер будет гораздо сложнее, а я ставил перед собой цель создать простое устройство.
3. Управление одной кнопкой не вызывает никаких проблем — короткое нажатие ВКЛ/ВЫКЛ, долгое нажатие — изменение яркости. Но тут дело предпочтений и привычек, скорее.
4. Это усложнение конструкции и прошивки, а толку будет мало.
5. См. пункт 2.
>нужно две кнопки вкл-выкл
Это нужно делать новую механику, а так да — две кнопки будут удобнее в управлении.
>несколько программируемых режимов(2-3 не более)
Мне больше нравится плавная регулировка. Режимы имеет смысл делать в фонарях с кнопкой по питанию.
Кстати, эффект стробоскопа не наблюдается совсем, поскольку частота ШИМ более 4 КГц.
ДА именно о DC-DC с индуктивностью я и мечтаю… только минимальная топология, мощный выход до 3 ампер и малый размер дросселя. И все это усугубляется работой не только на понижение но и на повышение.
По поводу плавности… ну моё имхо конечно но я пробовал — неудобно. два режима основных и третий — ночник — иногда — более чем достаточно — главное чтоб была возможность оперативно поменять этот средний режим. Впрочем с моими глазами и удивляться нечего — слепой как крот и потому яркость сильно люблю. Кстати по поводу зарядки — в паре моих фонариков есть зарядник — не использую т.к. мне проще зарядить 8 акумов в литокалу и просто жменей положить в карман и по мере разряда — просто перекладывать их в другой карман а как кончаться начинают — снова зарядить в литокалу. ненавижу эти пучки проводов с микроюсб — куда не плюнь везде надо втыкать эти хвосты. Я как-то вот всей душой прикипел к сменным запасным акб. Заряжаются когда не нужны и не привязан хвостом на 2 часа к розетке.
Мне кстати тоже хороший драйвер с DC-DC нужен, правда только понижающий. Быть может, потом займусь этим :)
>Кстати по поводу зарядки — в паре моих фонариков есть зарядник — не использую т.к. мне проще зарядить 8 акумов в литокалу
В походе будет проблема с розетками, а повербанки и солнечные батареи как правило имеют выход 5 вольт. Брать с собой большое количество аккумов для фонаря тоже не хочется, вес все-таки.
мощный выход до 3 ампер и малый размер дросселяОдно другому противоречит, т.к. выходной ток напрямую зависит от размера дросселя.
Опять разочарование
Мне кажется вы несколько сгустили краски.
Да, эта разработка не предел мечтаний, зато готовый экземпляр. За что автору и большое спасибо.
А вот вы написали хорошее тех.задание на дальнейшее развитие. Может, займетесь?
Что-то вроде такого?
И ещё не совсем понял, что не так с подключением диода через mosfet — вроде бы так примерно и обеспечивают более-менее стабильный ток через полезную нагрузку (пока напряжения питания хватает, чтобы подтягивая затвор mosfet-а к нему, держать его открытым)?
Писать для аттини13 моветон.
Вы бы здесь озвучили, что не так с этим драйвером относительно вашего гуру сайта, а не издевались над теми кто перейдет по вашей ссылке
Dc-dc преобразователя не хватает. Но если работает и так, и пульсации не видно — к черту условности ;)
ЗЫ: Не понимаю я аккумулятора в фонарике для похода. Мне всегда хватало запасного комплекта батарей. И манера китайцев управлять всеми режимами одной кнопкой выбешивает. А если эта кнопка способна самонажаться в кармане — совсем ъуъ.
1. Огромные габариты как для фонарного драйвера.
2. Ужасное управление яркостью. Через светодиод и остальные цепи при полностью заряженном аккумуляторе пульсирует ток больше 6А (а чем больше ток, тем ниже его КПД, в таком режиме эффективность XM-L2 около 60 Лм/Вт, в номинальном режиме больше 100). Можно было хотя бы линейный стабилизатор тока поставить, типа AMC7135, и его уже стробить с помощью МК.
3. П-канальный ключ, серьезно? Что мешало поставить в нижнее плечо Н-канальный?
4. Отсутствие стабилизации яркости, с понижением напряжения на батарее, яркость будет падать до мунлайта.
5. Какой смысл в подсветке кнопки при включенном фонаре?
6. Ну и писать на Си для аттини13 это все равно что сажать картошку роторным экскаватором.
5. Какой смысл в подсветке кнопки при включенном фонаре?
У этих налобников обычно светодиод на плате с драйвером подсвечивает красную полоску на затылке, который выполняется функцию дополнительного габарита для тех, кто сзади.
Чем вам оформление не понравилось? Или нужны свистелки-перделки которые кладут среднестатистический компьютер?Например, тем, что открыв ссылку, я обнаружил на появившемся экране двадцать пять (!!!!) огромных анимированных баннеров и ноль полезной информации. Когда глаз чуть-чуть пришел в норму от баннеров, в левом верхнем углу нашлись мааааленькие кнопки, обещающие контент. Но проверять я уже не стал, я на такое количество рекламы не подписывался.
1. Огромные габариты как для фонарного драйвера.Автор написал же, что мог сделать меньше, но решил сделать такие же габариты, как были у оригинала.
3. П-канальный ключ, серьезно? Что мешало поставить в нижнее плечо Н-канальный?А в чем принципиальная проблема с p-канальным ключом? Вы что, мосфеторасист?
Автор написал же, что мог сделать меньше, но решил сделать такие же габариты, как были у оригинала.В тех же габаритах можно было применить человеческую схемотехнику.
А в чем принципиальная проблема с p-канальным ключомЗачастую п-канальные ключи имеют большее сопротивление канала при той же емкости затвора.
Зачастую п-канальные ключи имеют большее сопротивление канала при той же емкости затвора.Во-первых, не «зачастую», а «всегда», потому что подвижность дырок в кремнии всегда ниже подвижности электронов. Во-вторых, это не важно. Важно, то, удовлетворяет ли решение условию задачи.
Если войти в аккаунт, то вся эта порнография прячется.А если сферическая корова развивает в вакууме скорость света, она дает литр молока в секунду. По факту этот сайт, как верно заметили выше, застрял в девяностых и является издевательством над глазами и художественным вкусом тех, кто посещает его в первый раз.
Да и сидеть в интернетах в 2к19 без адблока как-то странноЭто если вам IT-отдел и служба безопасности разрешают такое ставить на рабочий компьютер.
В тех же габаритах можно было применить человеческую схемотехнику.Это совершенно другой вопрос. Ваши претензии к схемотехнике обоснованы. А к габаритам — нет.
Важно, то, удовлетворяет ли решение условию задачи.
Ага, и костыль в виде ограничения тока через фет тоже условие задачи.
Это если вам IT-отдел и служба безопасности разрешают такое ставить на рабочий компьютер.
А служба безопасности разрешает сидеть в интернетах?
А служба безопасности разрешает сидеть в интернетах?На хабре — разрешает.
Ага, и костыль в виде ограничения тока через фет тоже условие задачи.А максимальный ток типом транзистора ограничен? У меня есть подозрение, что все же не им. В огромном количестве задач p-канальные силовые ключи используются, и все довольны. Даже специализированные микросхемы силовых ключей с драйверами и защитой существуют на p-канальных ключах (например TPS2291xx).
Это если вам IT-отдел и служба безопасности разрешают такое ставить на рабочий компьютер.
Аддон для браузера нельзя поставить?
Можно название конторы в студию чтобы туда случайно не устроится?
А по теме — много кто наверное хотел делать свой такой проект и я не исключение. Стабилизацию яркости надо делать обязательно! И учитывать просадку батарейки и температуру диода.
Спасибо за конструктивную критику (наконец). Отвечу по пунктам.
- Габариты этого драйвера в 5 раз меньше оригинального. Сделать меньше реально, но тогда во-первых, драйвер не получится закрепить на родные посадочные места, а во-вторых, будет гораздо сложнее сделать плату ЛУТом и без металлизации отверстий.
- Максимальный ток, который идет через светодиод — 1.5 А, и это при полностью открытом транзисторе. Откуда Вы взяли цифру в 6 ампер? Вы предлагаете поставить линейный стабилизатор в импульсный драйвер? Про КПД тогда можно будет забыть.
- N-канальный полевик конечно имеет меньшее сопротивление, но его нельзя было применить в этой схеме, поскольку к светодиоду идет всего три провода. Тут можно либо управлять светодиодом по минусу (n-канальный) и иметь общий плюс, на который будет замыкаться кнопка, либо управлять светодиодом по плюсу (p-канальный) с общим с кнопкой минусом. Первый вариант невозможен из-за особенностей МК, из режима power-down его может вывести только прерывание по низкому уровню, следовательно кнопка должна замыкаться на землю.
- Отсутствие стабилизации яркости по мере разряда батареи мне никак не мешает. Яркость всегда можно подстроить достаточно точно.
- Подсвечивается не кнопка, а сам корпус драйвера, который расположен сзади. Я писал в статье, зачем мне это нужно.
- Тут я с Вами соглашусь, для контроллера с одним килобайтом памяти ассемблер больше подходит. Но я его не знаю, к сожалению.
Про КПД тогда можно будет забыть.
Вообще, в текущей реализации про КПД можно забыть. Где я взял 6А? Посмотрите на ВАХ светодиода, в каком месте она пересечется с нагрузочной характеристикой источника питания. Если у вас ток в импульсе (а как вы измеряли?) не поднимается выше 1.5 А, значит все напряжение проседает на проводах, ведущих к драйверу. И в этом случае КПД будет хуже чем у линейного драйвера.
Да, так и есть — ток ограничивает сопротивление проводов до диода (там около 25 см), контактов держателя батареи, ну и сама батарея имеет внутренее сопротивление. Если поставить туда линейный драйвер, КПД будет намного хуже.
Как измерял? При полностью открытом ключе, амперметром.
Дело в том, что на проводах она рассеивается и так. А вы предлагаете еще стабилизатор туда, дабы потери были еще больше?
Честно говоря, я даже представить не могу из чего сделаны провода если на них так сильно падает напряжение. У нормальных фонарей сопротивление цепей питания считанные миллиомы.
А устранив потери и поставив стабилизатор тока, будет получена стабилизация в диапазоне питания от 4.2 В до 3.5 В ( 3.3 В падение на светодиоде и 180 мВ падение на стабилизаторе). так же, улучшится режим работы светодиода, что благоприятно повлияет на его КПД.
Там этот провод от драйвера к фонарю достаточно длинный (25-30 см, скручен в спираль), и при этом достаточно тонкий. Можно было бы вместо него поставить что-нибудь потолще, но это будет очень колхозно.
Если решить эту проблему, тогда конечно уже придется ограничивать ток на драйвере. Но я бы все равно не стал ставить линейный стабилизатор, а сделал бы повышающий/понижающий импульсный преобразователь, что для КПД будет лучше. Но это уже другая история :)
только нужно или включить адблок или войти :)
Снимать его механически это злоНапротив, если на плате есть отверстия, одновременно со снятием тонера наждачкой обработаются и их края, достаточно удобно.
Это позволит получить более концентрированный раствор и сильно уменьшить время травления.
… который становится склонен к саморазгону реакции при повышении температуры. Десять раз нормально, на 11 температура в комнате чуть больше, и вот ваш стол уже заливает горячей пеной.
www.instagram.com/p/eFSzapMUz4
Посмотрел Ваше видео и сразу вспомнился этот пост https://dlinyj.livejournal.com/676121.html
Идея была купить эти же самые модули, например Arduino Pro Mini (Atmega 328P) + модуль для Micro SD карты, и распаять эти компоненты на новую плату.
Так вот как определить номенклатуру компонентов, например кварц на вот этой схеме Arduino, или холдер для MicroSD карты?
Вам нужно определить номенклатуру для футпринтов?
Я бы на Вашем месте заказал бы эти компоненты по отдельности, желательно в тех магазинах, где предоставляется спецификация на продукт — тогда с поиском футпринтов проблем не будет. К тому же отпаять Атмегу не так просто — нужна паяльная станция с феном.
Если уж очень хочется распаять ардуинку на запчасти:
Фен есть, попробую перепаять.
К тому же отпаять Атмегу не так просто — нужна паяльная станция с феном.Можно рискнуть с лезвием бритвы если место позволяет. Оно делается из нержавейки и не смачивается припоем, так что можно прогреть одну сторону, проталкивая лезвие между ножками и платой. Хотя, конечно, есть риск погнуть или даже отломать ножки. Я так пытался выпаять STM32L151 в 64-ногом корпусе, по результатам даже статью сюда написал. Если вкратце — вот там ножки слишком дохлые для таких экспериментов. А на Мегах риск намного меньше. Хотя феном, конечно, лучше.
Я ж не говорю что фен — зло, не пользуйтесь им. Я предложил альтернативный вариант, вдруг кому пригодится.
Можно рискнуть с лезвием бритвы если место позволяет.
Наконец-то представилась возможность проверить — работает на ура! Спасибо за этот лайфхак.
Делитель я рассчитывал при помощи вот этого калькулятора .
Как Вы там, что-то рассчитывали, методом научного тыка? :)
Пользуясь случаем, зацените калькулятор, который сделал для одного известного обзорщика. Он в принципе затачивался для различных DC-DC преобразователей. Но можно спокойно и тут посчитать, просто в Uout вводится максимальное напряжение на батарее, в Ufb максимальное напряжение на АЦП. Т.е. к примеру возьмем батарею 4,25В, а на АЦП 1В. Можно в расширенных выбрать желаемые ряды резисторов и диапазон номиналов. В итоге получается такая табличка.
Как Вы там, что-то рассчитывали, методом научного тыка? :)
Ну почти — я вбил напряжение источника (4.5 В — с гарантированным запасом), открыл таблицу доступных в магазине поблизости номиналов и по ним подбирал такие, при которых бы выходное напряжение было бы максимально близко к 1 В, а сопротивление было бы как можно большим.
За калькулятор спасибо, с ним это делать конечно же намного удобнее — буду теперь им пользоваться :)
Кстати, в статью попала не та ссылка, я пользовался этим калькулятором.
На максимальном режиме, «турбо» — потребляет около 1.5 А, в таком режиме проработает около полутора часов. Светодиод на таких токах начинает сильно нагреваться, поэтому данный режим не предназначен для длительной работы.
Рекомендую сделать функцию автоматического плавного снижения яркости по времени. Без этого сжёг один светодиод, случайно оставив его в «турбо» режиме.
html.alldatasheet.com/html-pdf/858433/DIODES/PAM2803AAF095/222/1/PAM2803AAF095.html к примеру.
Но как ее применить в описанном в статье фонарике, где автор хочет регулировать яркость?
Тема мощных светодиодов востребована, должны существовать готовые драйвера.
Это регулируемый преобразователь — можно поидее с микроконтроллера им управлять через Vfeedback (ШИМ + rc фильтр), тогда будет регулировка яркости.
В конкретном случае дроссель не актуален — даже когда транзистор полностью открыт, ток будет в районе полутора ампер.
Все эти программные счетчики в основном цикле перед измерением напряжения — тоже 100% цыганщина — если зажать кнопку надолго, то основной цикл будет проходить дольше, так как упрется в цикл while (BUTTON_PRESSED); Кроме того, кнопки дребезжат не только при нажатии, но и при отжатии — это тоже хорошо бы обрабатывать правильно
Вообще, внешний физический мир асинхронен по отношению к циклу while (1) — и события с него ловить надо тоже асинхронно, а не тогда, когда процессор готов будет это сделать, вывалившись из очередного _delay_ms :)
Ну я же не зря поставил тег "arduino" :)
На самом деле, реализация антидребезга с delay — самая простая. Можно конечно через прерывание переполнения считать время, пока кнопка нажата, но я не вижу смысла так усложнять код.
Основной цикл должен смотреть на эту переменную и на переменную текущего режима работы, и исходя из их разницы, при необходимости ставить новый режим.
Имхо, так будет неудобно плавно изменять яркость в реальном времени
если зажать кнопку надолго, то основной цикл будет проходить дольше,
Это не является проблемой, с батареей ничего не случится, если проверку напряжения отложить на какое-то время.
Кроме того, кнопки дребезжат не только при нажатии, но и при отжатии — это тоже хорошо бы обрабатывать правильно
Ну так это отлично отрабатывается конструкцией следующего вида:
If (btn_pressed) {
while (btn_pressed); // антидребезг при нажатии
_delay_ms(x); // антидребезг при отпускании
}
Вообще, внешний физический мир асинхронен по отношению к циклу while (1) — и события с него ловить надо тоже асинхронно, а не тогда, когда процессор готов будет это сделать, вывалившись из очередного _delay_ms :)
Согласен, в теории все так и есть. Но на практике (в конкретном случае) кнопку нажимает человек — существо довольно медленное, и длительность нажатия составляет как минимум, несколько миллисекунд. За это время мк гарантированно успеет отловить это нажатие, так как в коде нет delay большой длительности. Исключение — дополнительный режим, но там это не мешает — кнопку можно держать, пока драйвер из него не выйдет.
Есть несколько вопросов технических.
1) реально нужен супрессор?
2) схема переполюсовки работает?
При переполюсовке через внутренний диод полевики потечёт ток через светодиод. И через резистор R6 и защитный диод внутри контроллер небольшой ток будет около 100мкА.
3) какой собственный ток устройства, когда светодиод выключен?
Спасибо. По пунктам:
- Считается хорошим тоном ставить супрессоры в носимые устройства. При замене батареи можно дотронуться рукой до контактов холдера батареи, и если в этот момент Ваше тело было заряжено статическим электричеством, заряд пойдет прямиком на драйвер. МК может этого не пережить, да и полевые транзисторы тоже боятся сильных статических разрядов, насколько я знаю.
- Через светодиод ток в обратном направлении не течет (до определенного порога — примерно в 5 В, что меньше максимального напряжения батареи, а если вдруг и будет превышено — отсечется супрессором). Так что да, схема работает.
Да, через R6 пойдет ток около 80 мкА, но это не наносит вреда — видимо, рассеивается на внутреннем диоде. - Собственный ток в выключенном режиме не более 5 мкА, обычно где-то 2-3 мкА.
Было б хорошо если автор поделился файлом *.ini для ардуино иде.
Спасибо.
Скетча для Arduino не будет по причине неэкономного расходования ресурсов МК прошивкой, скомпилированной в ней. Откройте для себя Atmel Studio, данная среда разработки Вас приятно удивит по сравнению с Arduino IDE.
Для сравнения: пустой скетч (вида void setup() {} void loop(){}) весит 172 байта, тогда как в Atmel Studio всего 40 байт. Когда доступно только 1024 байта памяти программ, 130 байт — очень хорошая экономия.
Пробовал скомпилировать для Attiny85 — ошибка, под рукой Attiny13 нет, чтобы попробовать в железе. Я так понял там в настройках ШИМа, частоты и настройкам сна нужно менять параметры.
Тут нашелся интересный способ скомпилировать прошивку в Arduino IDE без излишней траты памяти. Это не совсем скетч в привычном его понимании, а просто .ino файл с одной единственной строчкой :)
Обновил статью и репозиторий на гитхабе, смотрите.
Добавил сохранение значения ШИМ в энергонезависимую память, причем память перезаписывается только если было изменение значения ШИМ (EEPROM.h та что используется для Arduino.ide).
И как, сколько теперь весит программа?
Я решил не делать такую функцию, так как это имеет мало смысла без стабилизации яркости. При замене разряженной батареи яркость все равно изменится.
Оставил только ШИМ и управление яркостью, с сохранением в еепром. Как ранее писал, делаю светильник от стабилизированного БП на 24 вольта (1А на максимальной яркости)
Какое напряжение подается на драйвер?
Через понижающий преобразователь?
Я бы сделал так — МК запитал бы через LDO, а светодиод через понижающий DC-DC, задавая ему Vfb через ШИМ с МК.
Да, можно, но особого смысла нет, утечка через делитель около 4 мкА, что сравнимо с потреблением тиньки в спящем режиме (1 мкА).
Вообще, я хотел на него терморезистор повесить, для контроля нагрева светодиода.
TinyFL — драйвер фонарика на микроконтроллере