Как стать автором
Обновить
63
0

Техножрец

Отправить сообщение

Ну я же не зря поставил тег "arduino" :)
На самом деле, реализация антидребезга с delay — самая простая. Можно конечно через прерывание переполнения считать время, пока кнопка нажата, но я не вижу смысла так усложнять код.


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

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


если зажать кнопку надолго, то основной цикл будет проходить дольше,

Это не является проблемой, с батареей ничего не случится, если проверку напряжения отложить на какое-то время.


Кроме того, кнопки дребезжат не только при нажатии, но и при отжатии — это тоже хорошо бы обрабатывать правильно

Ну так это отлично отрабатывается конструкцией следующего вида:


If (btn_pressed) {
while (btn_pressed); // антидребезг при нажатии
_delay_ms(x); // антидребезг при отпускании
}

Вообще, внешний физический мир асинхронен по отношению к циклу while (1) — и события с него ловить надо тоже асинхронно, а не тогда, когда процессор готов будет это сделать, вывалившись из очередного _delay_ms :)

Согласен, в теории все так и есть. Но на практике (в конкретном случае) кнопку нажимает человек — существо довольно медленное, и длительность нажатия составляет как минимум, несколько миллисекунд. За это время мк гарантированно успеет отловить это нажатие, так как в коде нет delay большой длительности. Исключение — дополнительный режим, но там это не мешает — кнопку можно держать, пока драйвер из него не выйдет.

Да, так и есть — ток ограничивает сопротивление проводов до диода (там около 25 см), контактов держателя батареи, ну и сама батарея имеет внутренее сопротивление. Если поставить туда линейный драйвер, КПД будет намного хуже.
Как измерял? При полностью открытом ключе, амперметром.

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

Спасибо за конструктивную критику (наконец). Отвечу по пунктам.


  1. Габариты этого драйвера в 5 раз меньше оригинального. Сделать меньше реально, но тогда во-первых, драйвер не получится закрепить на родные посадочные места, а во-вторых, будет гораздо сложнее сделать плату ЛУТом и без металлизации отверстий.
  2. Максимальный ток, который идет через светодиод — 1.5 А, и это при полностью открытом транзисторе. Откуда Вы взяли цифру в 6 ампер? Вы предлагаете поставить линейный стабилизатор в импульсный драйвер? Про КПД тогда можно будет забыть.
  3. N-канальный полевик конечно имеет меньшее сопротивление, но его нельзя было применить в этой схеме, поскольку к светодиоду идет всего три провода. Тут можно либо управлять светодиодом по минусу (n-канальный) и иметь общий плюс, на который будет замыкаться кнопка, либо управлять светодиодом по плюсу (p-канальный) с общим с кнопкой минусом. Первый вариант невозможен из-за особенностей МК, из режима power-down его может вывести только прерывание по низкому уровню, следовательно кнопка должна замыкаться на землю.
  4. Отсутствие стабилизации яркости по мере разряда батареи мне никак не мешает. Яркость всегда можно подстроить достаточно точно.
  5. Подсвечивается не кнопка, а сам корпус драйвера, который расположен сзади. Я писал в статье, зачем мне это нужно.
  6. Тут я с Вами соглашусь, для контроллера с одним килобайтом памяти ассемблер больше подходит. Но я его не знаю, к сожалению.

Посмотрел Ваше видео и сразу вспомнился этот пост https://dlinyj.livejournal.com/676121.html

Хорошая мысль, попробую это реализовать.

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

Это регулируемый преобразователь — можно поидее с микроконтроллера им управлять через Vfeedback (ШИМ + rc фильтр), тогда будет регулировка яркости.

Вам нужно определить номенклатуру для футпринтов?
Я бы на Вашем месте заказал бы эти компоненты по отдельности, желательно в тех магазинах, где предоставляется спецификация на продукт — тогда с поиском футпринтов проблем не будет. К тому же отпаять Атмегу не так просто — нужна паяльная станция с феном.


Если уж очень хочется распаять ардуинку на запчасти:


  • Футпринт кварца похож на 3225 — например.
  • Холдер microSD похож на вот этот. Где-то у меня вроде даже футпринт под него был самодельный.
Как Вы там, что-то рассчитывали, методом научного тыка? :)

Ну почти — я вбил напряжение источника (4.5 В — с гарантированным запасом), открыл таблицу доступных в магазине поблизости номиналов и по ним подбирал такие, при которых бы выходное напряжение было бы максимально близко к 1 В, а сопротивление было бы как можно большим.
За калькулятор спасибо, с ним это делать конечно же намного удобнее — буду теперь им пользоваться :)
Кстати, в статью попала не та ссылка, я пользовался этим калькулятором.


Выглядит это примерно так
Спасибо, попробую.
Может быть, Вы более конкретно напишете, что Вам не понравилось и чем не угодила Attiny13?
В вентиляторы лазать с фонарями не приходилось, увы. Сейчас специально посветил на все доступные вентиляторы — нигде не наблюдаю эффекта остановки или пропадания лопастей.

Мне кстати тоже хороший драйвер с DC-DC нужен, правда только понижающий. Быть может, потом займусь этим :)

>Кстати по поводу зарядки — в паре моих фонариков есть зарядник — не использую т.к. мне проще зарядить 8 акумов в литокалу
В походе будет проблема с розетками, а повербанки и солнечные батареи как правило имеют выход 5 вольт. Брать с собой большое количество аккумов для фонаря тоже не хочется, вес все-таки.
Есть еще вариант — можно поставить плату зарядки c защитой (те же модули TP4056 бывают в таком исполнении).
Постараюсь аргументированно ответить по всем Вашим пунктам.
1. Влияние защиты от переполюсовки на КПД в районе погрешности — через защитный диод питается только МК (который потребляет 1-2 мА), основной ток через него не идет. Полевик я пробовал ставить, но с ним были проблемы — МК перезагружался при подключении нагрузки из-за просадок напряжения, поскольку ток через него идет в оба направления, когда он открыт. С диодом такой проблемы нет.
2. Это не совсем так. Светить конечно будет гораздо слабее, но все еще достаточно ярко для того, чтобы им можно было пользоваться. Эту проблему решил бы DC-DC преобразователь, но тогда нужно и индуктивность ставить, и частоту ШИМ повышать, и другой МК в общем-то ставить (например ту же 85-ю, тут я с вами соглашусь). Но тогда драйвер будет гораздо сложнее, а я ставил перед собой цель создать простое устройство.
3. Управление одной кнопкой не вызывает никаких проблем — короткое нажатие ВКЛ/ВЫКЛ, долгое нажатие — изменение яркости. Но тут дело предпочтений и привычек, скорее.
4. Это усложнение конструкции и прошивки, а толку будет мало.
5. См. пункт 2.

>нужно две кнопки вкл-выкл
Это нужно делать новую механику, а так да — две кнопки будут удобнее в управлении.

>несколько программируемых режимов(2-3 не более)
Мне больше нравится плавная регулировка. Режимы имеет смысл делать в фонарях с кнопкой по питанию.

Кстати, эффект стробоскопа не наблюдается совсем, поскольку частота ШИМ более 4 КГц.
А Вам не страшно ходить с литиевым аккумулятором в кармане (если Вы конечно пользуетесь мобильным телефоном)?
На самом деле, 18650 очень сложно заставить взорваться, только если разве что нагреть градусов до 200. И то, если я не ошибаюсь, то взрыва не будет, так как у них есть защитный клапан.
12 ...
20

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность