|
|
|
|
92862 204 0 0 |
|
Опции темы | Поиск в этой теме |
24.02.2011, 22:14 | 1 |
Ветеран Фонарёвки
|
Индикатор заряда батареи на Attiny25 (Светофор)
Здравствуйте.
Выкладываю свою версию индикатора заряда батареи. Для чего изготавливалась эта версия - хотелось сделать что то своё и для себя, так же я отказался в целях экономии энергии аккумулятора от внешнего делителя напряжения. Как работает схема - да впринцыпе так же как схема от 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 программатором. Если кому надо то прошивку доработаю. |
24.02.2011, 22:27 | 2 |
Ветеран Фонарёвки
|
Да, забыл сказать - все мигания и прочее анимации, плавные.
Это моя первая прошивка и скорее всего я её буду дорабатывать. Потребляет схема мало, а когда контрллер засыпает то потребляет столько, сколько потребляет МК в спящем режиме. А для тех кому светодиодов мало можно сделать так. Правда на CHRG вывод придется подавать сигнал высокого уровня (например при зарядке аккумулятора подавать ток напрямую на этот вывод), а контролер придется включать вместе с самим лазером для измерения напряжения на нем, и он не будет подключен к аккумулятору когда лазер выключен. Но это всё в теории на практике я такое решение не проверял. Прошивку само собой под этот вариант нужно будет менять ... да и нужно будет точно знать падение на диоде которфй между Vcc и 8 выводом МК, так как он будет вносить искажения в замеры. |
08.03.2011, 20:32 | 3 |
Ветеран Фонарёвки
|
Решил объединить индикатор заряда с самой зарядкой, а драйвер крепить на лапах диода - так безопаснее для диода.
Итого конструкция будущих "фонариков" будет состоять из зарядно-индикаторной части и самого драйвера с диодом, всего 2 платы вместо 3х в разных частях фонарика как было ранее Вот фото того что получилось, на плате недораспаяны 2 детали резистор на 10 килоом и еще один конденсатор, сейчас это уже собрано полностью и опробовано - результат меня устраивает. Вторая сторона платы используется только для массы и в качестве радиатора. Ток зарядки 525 милиампер. прошивку стоит откалибровать так как она раньше предусматривала индикацию в диапозоне 2,8-4,2 вольта а надо в диапозоне 3,4-4,2 а то что ниже разделить на 2 поддиапазона 3-3,4 сильный разряд и мигание, а ниже 3х вольт хочу что бы тинька гасила драйвер (придется отключать ресет что бы на это хватило выводов, в результате выкинул из схемы драйвера 2 супервизора ). Платка как раз входит в фонарик. Заказал на заводе еще втулки-переходники аксиз-фонарик. Вверху платы 6 контактов под программатор, переходник тоже изготовил так как перетыкать и паять провода мне лениво, лучше на плате предусмотреть площадки. P. S. Микросхема зарядки MC34673 |
08.03.2011, 20:40 | 4 |
Ветеран Фонарёвки
Регистрация: 11.02.2010 Последняя активность: 03.09.2015 13:00
Сообщений: 622
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Интересно будет увидеть твой комбайн. Молодец!) Я завтра тоже оккупирую кое-чей сверлильный станок, и просверлю в паре фонариков отверстия для зарядки и индикации.
|
08.03.2011, 21:05 | 5 |
Завсегдатай Фонарёвки
|
|
08.03.2011, 21:16 | 6 |
Ветеран Фонарёвки
|
А что за микросхемы использовал?
Я стремился к минимальной цене, так как хочу собрать несколько фонариков на продажу, очень принтер хочется лазерный и паяльную станцию (хотя бы фен, так как паяльник нормальный у меня теперь). контроллер - Attiny25 зарядка - MC34673 драйвер - NCP1529 начинка не такая уж дорогая к этому и стремился. |
08.03.2011, 21:58 | 7 |
Завсегдатай Фонарёвки
|
А я стремился к КПД. Зарядка - BQ24155.
|
08.03.2011, 23:23 | 8 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
А где исходник? Открыл архив, а там только .hex ...
|
08.03.2011, 23:43 | 9 |
Ветеран Фонарёвки
|
Исходник на СИ.
Алгоритм тупейший if (напряжение от и до то) {Делаем что то.} это моя первая прошивка,даже стыдно код показывать так как знаю что косяков в ней не мало. |
09.03.2011, 01:18 | 10 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Просто там есть некоторые моменты с энергопотреблением, из-за которых у тебя МК может есть не 1мкА в дежурке, а целых 0,2мА. И ещё мне интересно как ты меряешь без делителя напряжения, собственно, напряжение батареи...
|
09.03.2011, 10:02 | 11 | |
Ветеран Фонарёвки
|
Там есть хитрость одна, её нет в даташите что так можно но всё же можно.
Есть возможность в качестве опорного напряжения выбрать AVCC, а в качестве измеряемого – опору Vbg (1.1В в моем случае для attiny25 да и atinyX5) Uavcc = 1.1*1024/ADC Зависимость в этом случае будет обратня - большему значению напряжения будет соответствовать меньшее значение на АЦП. Но есть и недостаток в быстродействии так как переключение мультиплексора АЦП в таком режиме происходит не сразу, из-за чего первые 5-6 результатов измерения будут недостоверными (в режиме Free-Run), я выкидывал примерно 10 первых результатов установив задержку. Цитата:
|
|
09.03.2011, 12:42 | 12 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1034
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Цитата:
По идее в режиме Free-Run переключение выполнится только перед последующим измерением, ну может еще одно измерение будет неверное, 10 - это как-то многовато. Отключать источник опорного надо (BOD, ADC и компаратор). И вачдог, если используется. |
09.03.2011, 12:46 | 13 |
Ветеран Фонарёвки
|
Ну так контроллер уходит в спячку а когда просыпается то начинает мерять, тут могут возникать ошибки ( у меня возникали - бывали попадались результаты некорректные) но задержка получается совсем небольшая при включении . В моем случае не нужно сверхбыстро реагировать контроллеру - он используется только в качестве индикатора
сторожевой таймер отключен и компаратор а вот про опорное... в общем прошивку все равно корректировать... |
09.03.2011, 16:48 | 14 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Так и думал что ты решил так подключать АЦП . Других вариантов просто и нет. Я думал над таким подключением, но предпочёл делитель, желая сделать по-меньше программного огорода и по-выше характеристики. В общем я беру эту идею на вооружение, действительно у МК такая возможность есть. А если по извращаться над кодом, то работать будет ненамного хуже резистивного делителя...
А ты разве не замерил потребляемый МК ток? Супервизор жрёт много (точнее ИОН, который он, ADC и компаратор используют), его перед выходом в Power down необходимо отключать хитрым способом (недостаточно просто бит где-то поставить). |
09.03.2011, 19:12 | 15 |
Ветеран Фонарёвки
|
замерял, действительно 0,2 милиампера я раньше не замерял так как проверял на старой схеме с впаяным делителем.
Прошивку все равно менять перепрограммирование занимает меньше минуты, площадки на плате предусмотрены, и переходник под эти платы сделан. Печатку выложу как на работе время будет - дома нет принтера поэтому печатки я на работе делаю. |
26.03.2011, 21:52 | 16 |
Ветеран Фонарёвки
|
Супервизор жрёт много (точнее ИОН, который он, ADC и компаратор используют), его перед выходом в Power down необходимо отключать хитрым способом (недостаточно просто бит где-то поставить).
и что же это за хитрый способ? |
27.03.2011, 04:52 | 17 |
Ветеран Фонарёвки
Регистрация: 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 |
27.03.2011, 22:38 | 18 |
Ветеран Фонарёвки
|
после этих изменений контроллер вообще перестал засыпать
пока сделаю с потребелением 0,2 милиампера, не так это много, но устал переделывать, одни изыскания и ничего готового в итоге. |
27.03.2011, 22:49 | 19 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1342
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
На Си вообще плясок с бубном хватает. Да и на С++, если на комп пишешь прогу, тоже не всё прозрачно. Пишешь вроде что-то вполне конкретное и понятное, а компилятор извращает как ему больше нравится. Так что полезно иногда выискивать ошибки в листинге...
|
04.04.2011, 00:40 | 20 |
Увлеченный
|
|