|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Здравствуйте.
Выкладываю свою версию индикатора заряда батареи. Для чего изготавливалась эта версия - хотелось сделать что то своё и для себя, так же я отказался в целях экономии энергии аккумулятора от внешнего делителя напряжения. Как работает схема - да впринцыпе так же как схема от INFERION -а. А именно - при подаче на вывод PON высокого уровня индикатор просыпается и показывает текуший заряд. Есть несколько индикацый заряда. 1) Горят (переливаются) все 3 светодиода 2) Мигает 1 светодиод и 2 горят 3) Горят только 2 светодиода 4) мигает один и горит 1 5) горит один 6) мигает 1 7) быстро мигает 1 ![]() После отключения лазера программа ждет завершения анимации и гасит светодиоды ,если больше ничего не произошло то контроллер через 1 секунду засыпает. При подтяжке вывода CHRG на землю включается индикация заряда 1) плавно включается 1 светодиод 2) плавно включается второй светодиод 3) плавно включается 3 тий светодиод 4) плавно гаснут все и далее по кругу. В проекте файл прошивки и дудка, вначале шьются фьюзы, затем сама прошивка. Фьюзы те же что в схеме инфа, если перепрошиваете то их не трогайте. Можно расширить схему и подключить еще один светодиод, но тогда перепрошить можно будет только HV программатором. Если кому надо то прошивку доработаю. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Да, забыл сказать - все мигания и прочее анимации, плавные.
Это моя первая прошивка и скорее всего я её буду дорабатывать. Потребляет схема мало, а когда контрллер засыпает то потребляет столько, сколько потребляет МК в спящем режиме. А для тех кому светодиодов мало можно сделать так. Правда на CHRG вывод придется подавать сигнал высокого уровня (например при зарядке аккумулятора подавать ток напрямую на этот вывод), а контролер придется включать вместе с самим лазером для измерения напряжения на нем, и он не будет подключен к аккумулятору когда лазер выключен. Но это всё в теории ![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Решил объединить индикатор заряда с самой зарядкой, а драйвер крепить на лапах диода - так безопаснее для диода.
Итого конструкция будущих "фонариков" будет состоять из зарядно-индикаторной части и самого драйвера с диодом, всего 2 платы вместо 3х в разных частях фонарика как было ранее ![]() Вот фото того что получилось, на плате недораспаяны 2 детали резистор на 10 килоом и еще один конденсатор, сейчас это уже собрано полностью и опробовано - результат меня устраивает. Вторая сторона платы используется только для массы и в качестве радиатора. Ток зарядки 525 милиампер. прошивку стоит откалибровать так как она раньше предусматривала индикацию в диапозоне 2,8-4,2 вольта а надо в диапозоне 3,4-4,2 а то что ниже разделить на 2 поддиапазона 3-3,4 сильный разряд и мигание, а ниже 3х вольт хочу что бы тинька гасила драйвер (придется отключать ресет что бы на это хватило выводов, в результате выкинул из схемы драйвера 2 супервизора ). Платка как раз входит в фонарик. Заказал на заводе еще втулки-переходники аксиз-фонарик. Вверху платы 6 контактов под программатор, переходник тоже изготовил так как перетыкать и паять провода мне лениво, лучше на плате предусмотреть площадки. P. S. Микросхема зарядки MC34673 |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 11.02.2010 Последняя активность: 03.09.2015 13:00
Сообщений: 622
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Интересно будет увидеть твой комбайн. Молодец!) Я завтра тоже оккупирую кое-чей сверлильный станок, и просверлю в паре фонариков отверстия для зарядки и индикации.
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
|
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
А что за микросхемы использовал?
Я стремился к минимальной цене, так как хочу собрать несколько фонариков на продажу, очень принтер хочется лазерный и паяльную станцию (хотя бы фен, так как паяльник нормальный у меня теперь). контроллер - Attiny25 зарядка - MC34673 драйвер - NCP1529 начинка не такая уж дорогая ![]() |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
|
![]()
А я стремился к КПД. Зарядка - BQ24155.
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
А где исходник? Открыл архив, а там только .hex
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Исходник на СИ.
Алгоритм тупейший if (напряжение от и до то) {Делаем что то.} это моя первая прошивка,даже стыдно код показывать ![]() |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Просто там есть некоторые моменты с энергопотреблением, из-за которых у тебя МК может есть не 1мкА в дежурке, а целых 0,2мА. И ещё мне интересно как ты меряешь без делителя напряжения, собственно, напряжение батареи...
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|
Ветеран Фонарёвки
|
![]()
Там есть хитрость одна, её нет в даташите что так можно но всё же можно.
Есть возможность в качестве опорного напряжения выбрать AVCC, а в качестве измеряемого – опору Vbg (1.1В в моем случае для attiny25 да и atinyX5) Uavcc = 1.1*1024/ADC Зависимость в этом случае будет обратня - большему значению напряжения будет соответствовать меньшее значение на АЦП. Но есть и недостаток в быстродействии так как переключение мультиплексора АЦП в таком режиме происходит не сразу, из-за чего первые 5-6 результатов измерения будут недостоверными (в режиме Free-Run), я выкидывал примерно 10 первых результатов установив задержку. Цитата:
|
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1034
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
По идее в режиме Free-Run переключение выполнится только перед последующим измерением, ну может еще одно измерение будет неверное, 10 - это как-то многовато. Отключать источник опорного надо (BOD, ADC и компаратор). И вачдог, если используется. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Ну так контроллер уходит в спячку а когда просыпается то начинает мерять, тут могут возникать ошибки ( у меня возникали - бывали попадались результаты некорректные) но задержка получается совсем небольшая при включении
![]() ![]() сторожевой таймер отключен и компаратор а вот про опорное... в общем прошивку все равно корректировать... |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Так и думал что ты решил так подключать АЦП
![]() А ты разве не замерил потребляемый МК ток? Супервизор жрёт много (точнее ИОН, который он, ADC и компаратор используют), его перед выходом в Power down необходимо отключать хитрым способом (недостаточно просто бит где-то поставить). |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
замерял, действительно 0,2 милиампера
![]() Прошивку все равно менять ![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
Супервизор жрёт много (точнее ИОН, который он, ADC и компаратор используют), его перед выходом в Power down необходимо отключать хитрым способом (недостаточно просто бит где-то поставить).
и что же это за хитрый способ? |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Код:
cli ldi R17, 0b10110000 ldi R16, 0b10110100 ;BOD Sleep, Sleep, режим Power-down, BOD Sleep Enable out MCUCR, R16 out MCUCR, R17 ;BOD Sleep, Sleep, режим Power-down sei Sleep |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
|
![]()
после этих изменений контроллер вообще перестал засыпать
![]() пока сделаю с потребелением 0,2 милиампера, не так это много, но устал переделывать, одни изыскания и ничего готового в итоге. |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
На Си вообще плясок с бубном хватает. Да и на С++, если на комп пишешь прогу, тоже не всё прозрачно. Пишешь вроде что-то вполне конкретное и понятное, а компилятор извращает как ему больше нравится. Так что полезно иногда выискивать ошибки в листинге...
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Увлеченный
|
![]() |
![]() |
![]() ![]() |