Авторизация
Регистрация

Напомнить пароль

Простой самодельный индикатор уровня заряда аккумулятора

При разработке или модернизации различных портативных DIY устройств частенько возникает потребность в отображении актуального текущего уровня заряда аккумулятора или батареек. Первое, что приходит на ум — купить готовый модуль, типа такого. Это самый простой вариант, но он вынуждает идти на компромиссы: его придется ждать неопределенное время и останавливать разработку на этот срок; он может не подойти по размерам; может сильно врать по показаниям, и исправить это никак не получится. Я хочу показать довольно простой способ изготовления такого индикатора из минимального количества широкодоступных деталей.

Прошивка, схема и список деталей

Модуль реализован на простейшем микроконтроллере Attiny13A и 4х индикаторных светодиодах. Схема сильно упрощенная, без какой-либо защиты от помех и неправильной полярности, в моем случае это допустимо, т.к. индикатор устанавливается в маломощное устройство. Если предполагается работа в более жестких условиях, то стоит добавить в цепь питания микроконтроллера диод Шоттки и конденсатор 1-10мкФ, а так же пересчитать в прошивке пороговые значения напряжений с учетом падения напряжения на диоде.
Исходные коды, готовые прошивки и прочие нужные материалы можно найти у меня на гитхабе.
Схема:

Для сборки нам понадобятся:

У тех, кто увлекается DIY и всякими ардуинами, перечисленных выше компонентов скорее всего навалом, так что покупать ничего не придется, разве что Attiny13A.

Возможности

Я поставил цель запилить максимально простой, но в то же время достаточно функциональный индикатор. Для отображения уровня заряда в нем используются 4 светодиода, логика работы проста:

  • Горят 4 светодиода — заряд 100% — 75%, напряжение 4.2В — 3.9В
  • 3 светодиода — 75% — 50%, напряжение 3.9В — 3.7В
  • 2 светодиода — 50% — 25%, напряжение 3.7В — 3.5В
  • 1 светодиод — 25% — 0%, напряжение 3.5В — 3.3В

Первый и последний светодиоды могут мигать, сигнализируя соответственно либо о перезаряде (напряжение > 4.25В), либо слишком низком напряжении (< 3.3В). Диапазон рабочих напряжений модуля лежит в пределах от 2.7В до 5.5В, максимальный потребляемый ток — около 50мА (зависит от значений ограничительных резисторов).

Настройки и режимы работы

На гитхабе в разделе firmware лежат уже готовые «отполированные» мною бинарники прошивок (файлы all_leds.hex и single_led.hex), они рассчитаны на применение резисторов номиналами 18 кОм и 4.7 кОм в делителе напряжений. Но бывает так, что именно таких резисторов может не оказаться, либо может попасться кривой микроконтроллер (по даташиту у Attiny13A заявлена точность измерений ADC в районе 10%), тогда потребуется самостоятельно модифицировать и пересобрать прошивку для себя, сделать это можно в программе Atmel Studio.
Доступные для изменения настройки в прошивке:

UHI здесь задает порог напряжения, выше которого начинает работать индикация перезаряда, остальные (U100, U75, U50, U25) — пороги для зажигания соответствующих светодиодов. При напряжении ниже U25 срабатывает индикация низкого напряжения. Общая формула для вычисления этих пороговых значений в зависимости от номиналов резисторов и напряжения аккумулятора имеет вид:

Где Ubat — напряжение на входе, R1, R2 — значения сопротивлений резисторов делителя. В случае, если МК подключен через диод Шоттки, в формулу добавляется величина падения на диоде Ud:

Но, как я уже говорил, погрешность АЦП у этого типа МК довольно большая, поэтому занесенные мною в прошивку значения слегка отличаются от теоретических. В идеале можно добиться очень высокой точности, но только методом проб и ошибок на конкретном экземпляре микроконтроллера. Для использования индикатора в качестве простого показомера «заряжено» — «разряжено» подойдут и мои значения.
Помимо пороговых значений изменять можно еще 2 параметра: гистерезис UHYS и режим отображения USE_ALL_LEDS. Первый служит для предотвращения мерцания светодиодов при переходе через пороговые напряжения, чем выше значение — тем меньше вероятность мерцаний. Если никаких неожиданных миганий при работе индикатора вы не наблюдаете — то этот параметр трогать нет необходимости. Второй параметр, USE_ALL_LEDS, задает один из двух способов индикации: в случае наличия строки с этим параметром в индикации будут участвовать все «младшие» светодиоды, если же эту строку закомментировать или вовсе удалить — будет гореть только один светодиод, отвечающий за текущий уровень заряда. Как это выглядит — покажу дальше, а пока предлагаю приступить к сборке модуля.

DIY, DIY, DIY

В случае использования МК в исполнении DIP-8 удобнее всего собирать модуль навесным монтажом. В моем случае МК в SOIC-8, поэтому я буду делать плату буквально на коленке и покажу небольшой лайфхак, как можно легко от руки разводить платы для SMD. Первое, что нам для этого нужно — кусок текстолита, размером примерно 20x10мм:

Его даже не обязательно покупать, можно вырезать из ненужной платы какого-либо устройства, покрытые медью площадки такого маленького размера встречаются довольно часто. Далее шкурим и обезжириваем поверхность, затем примеряем наш МК:

Придерживая пинцетом, с помощью тонкого перманентного маркера наносим на будущую плату риски между контактами контроллера:

Так легко и просто мы получаем практически идеальное посадочное место под пайку, и так можно «обрисовать» практически любой SMD компонент:

Далее просто от руки дорисовываем места под резисторы делителя и выводы на светодиоды:

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

  • Пол рюмки перекиси водорода из аптечки
  • Кидаем в нее половину чайной ложки поваренной соли
  • Добавляем чайную ложку лимонной кислоты
  • Перемешиваем до полного растворения компонентов, если плохо растворяется — смесь можно подогреть

Кидаем плату в раствор:

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

Спустя 15-20 минут плата полностью протравилась, а раствор стал бирюзовым:

Вытаскиваем плату, смываем маркер, проверяем дорожки:

Все протравилось идеально, можно паять компоненты, которых не так много: всего 1 МК и 2 резистора. Паять удобнее всего пастой, фен в нашем случае не нужен, можно обойтись обычным паяльником с тонким жалом:

Плата готова, теперь нам нужно подготовить светодиоды. Я использовал обычные дешевые 3мм светодиоды: красный, оранжевый, зеленый и белый. Для удобства пайки я распечатал второй корпус и сделал из него подставку:

Минусовые выводы светодиодов подрезаны и запаяны вместе, к плюсовым паяем ограничительные резисторы:

Я использовал по 220 Ом, но при использовании одинаковых резисторов для всех светодиодов у них будет сильно отличаться яркость. В моем случае это не критично, но для большей красоты следует подбирать резисторы индивидуально.
Далее берем нашу плату, размещаем между выводами светодиодов и паяем минусовой контакт диодов к нижней дорожке земли на плате:

Свободные концы резисторов паяем к соответствующим пятакам платы:

Последний штрих — паяем провода питания. Я забыл развести пятаки для удобства, поэтому пришлось паять так:

Вид с обратной стороны:

Модуль готов, теперь в него необходимо «вдохнуть жизнь» прошивкой.

Заливаем прошивку

Для заливки прошивок в контроллеры я приспособил Arduino Nano. Прямо в Arduino Studio есть специальный скетч, который заливается в Nano и превращает его в AVRISP программатор:

В коде скетча перед заливкой в Arduino необходимо предварительно раскомментировать строку #define USE_OLD_STYLE_WIRING:

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

SOIC клипса в таких делах очень сильно выручает, но при ее отсутствии можно подпаяться напрямую к контроллеру. Конденсатор между RESET и GND можно не использовать, все должно работать и без него.
После подключения и проверки всех проводов пытаемся запустить прошивку командой, подставив нужное название файла:
avrdude -p t13 -c avrisp -b 19200 -u -Uflash:w:название_файла_прошивки.hex:a -Ulfuse:w:0x65:m -Uhfuse:w:0xFD:m

В случае успеха на экране будет что-то типа такого:

Если ошибка — то проверяем в первую очередь провода и правильность установки софта/драйверов, правильность выбора COM-порта. По опыту скажу, что сломать Attiny при прошивке очень сложно, они практически не убиваемые. Ни внезапно отвалившаяся в процессе прошивки клипса, ни баги с софтом на компе ему не страшны. Единственное, чем можно запороть этот МК — это неправильными фьюзами.

Проверяем работоспособность

После удачной прошивки модуль должен сразу заработать, потому что на него подается питание через программатор. Для большей уверенности необходимо подключить его к регулируемому источнику питания и прогнать диапазон 3В — 5В и проверить, что все светодиоды и режимы индикации работают. За неимением ЛБП выйти из положения можно с помощью наборов различных элементов питания: при работе от одной CR2032 модуль должен мигать красным светодиодом, сигнализируя о слишком низком напряжении; при питании от 3xAA или 2xCR2032 должен напротив мигать белый светодиод, обозначая превышение допустимого для Li-ion напряжения. Если при проверке на ЛБП выясняются расхождения с заявленными пороговыми напряжениями и индикацией, то для повышения точности можно методом проб и ошибок найти более точные значения UHI, U100, U...

Примеры работы в гифках

Изменение напряжения от 4.2В до 3.3В и обратно:

Индикация превышения допустимого напряжения:

Те же примеры с удаленной из прошивки строкой USE_ALL_LEDS:


Индикация низкого напряжения:


Продолжаем DIY

Модуль прошит, проверен и отлажен, теперь осталось разместить его в напечатанном ранее корпусе. Вставляем плату:


Для надежности внутренности я залил эпоксидной смолой:

Как оказалось, сделал я это зря) Эпоксидка при застывании расширилась и немного повела корпус, для целей фиксации все же лучше использовать герметик или термоклей.
Переднюю часть для красоты шкурим и тем самым матируем:

Итоговый вид:


Разница в яркости немного портит впечатление, но при желании это можно легко решить.

Выводы

По функциональности самодельный модуль ни в чем не уступает покупным, и при этом имеет кучу преимуществ:

  • В нем легко добиться высокой точности с помощью подгона параметров
  • Легко адаптировать под любой дизайн и встроить куда угодно
  • Его можно собрать на коленке из имеющихся элементов
  • При необходимости можно модифицировать его на работу с 2S и выше, либо вообще на другие элементы питания

Единственный недостаток — сделать его все же несколько сложнее, чем просто заказать и ждать)
Планирую купить +69 Добавить в избранное
+234 +346
свернутьразвернуть
Комментарии (95)
RSS
+
avatar
+8
  • ResSet
  • 16 февраля 2021, 22:34
Можно сделать компактнее если использовать RGB ленту и навесной монтаж в корпусе индикатора, принтер то всё равно есть )
+
avatar
0
  • rx3apf
  • 16 февраля 2021, 22:34
Зачем нужен внешний делитель Vcc, если можно встроенный опорник измерять относительно Vcc (REFS0=0)?
+
avatar
+9
  • SinuX
  • 16 февраля 2021, 22:35
Конкретно Attiny13 так не умеет
+
avatar
0
  • rx3apf
  • 16 февраля 2021, 22:37
«VREF can be selected as either VCC, or internal 1.1V reference». И у 13, и у 13A.
+
avatar
0
  • SinuX
  • 16 февраля 2021, 22:47
Это про источник опорного напряжения. Сравнивать опорное с VCC внутри себя t13 не умеет, только через порт и делитель
+
avatar
0
  • Yusff
  • 16 февраля 2021, 23:00
Либо добавить внешний опорник (более стабильный)
+
avatar
+2
  • rx3apf
  • 16 февраля 2021, 23:00
А, верно, ADMUX только входы переключает, опорник там не увидеть. Вы правы, да (с 13-й редко работаю, подзабыл). Но зато, кстати, можно воспользоваться красным светодиодом как внешним «эталоном» (впрочем, с худшей стабильностью).
+
avatar
+3
  • rx3apf
  • 16 февраля 2021, 23:20
Плюс был незаслуженный — я действительно запамятовал, что у 13-й нельзя измерять собственный опорник. Но зато можно (при необходимости) «съэкономить» ногу делителя — перевесить его на светодиод (лучше тот, что с максимальным падением).
+
avatar
0
как это сделать? что то не пойму…
светодиод ведь будет постоянно гореть при вашем включении(если я правильно понял)
+
avatar
0
  • rx3apf
  • 17 февраля 2021, 00:44
Не-а! У нас опорник 1.1V, значит измеряемое не может превышать 1.1V (при максимальном Vcc). А при таком напряжении даже красный светодиод гореть не будет. Т.е. просто переносим делитель на светодиод и на время измерения отключаем индикацию на этом канале (ну или на всех, без разницы).
+
avatar
0
Теперь понял. Спасибо.
+
avatar
+25
  • usb350
  • 16 февраля 2021, 22:42
Здорово, но с такими умениями лучше бы сделать на одном светодиоде RGB. И никаких корпусов делать не придется, только отверстие под светодиод в корпусе девайса.

+
avatar
+3
  • SinuX
  • 16 февраля 2021, 22:50
Второй режим с включением одного конкретного светодиода как раз для этих целей и задуман) Только в данном случае понадобится или RGBW светодиод, или костыли с диодами (для включения всех 3х каналов вместо белого)
+
avatar
+3
  • kirich
  • 17 февраля 2021, 22:49
Кстати, когда-то давно делал на заказ преобразователи напряжения и там в составе был индикатор напряжения на базе attiny15, Индикация на двухцветном светодиоде, четыре порога (зелёный, оранжевый, красный и красный мигающий), выход на пищалку и выход на отключение преобразователя. Также была и автокалибровка напряжения, чтобы не подбирать резисторы делителя.
Единственная проблема — нога ресета также была задействована.
+
avatar
+20
Травленная плата ну прям как у меня… 50 лет назад… Это не критика, а ностальгия…
+
avatar
+6
  • pacha5
  • 16 февраля 2021, 22:46
Заказал жменю таких индикаторов. Есть подстроечный резистор. Измерения в пределах нормы. Напряжение измерения 4.5-30 вольт.
Но за то что сделал своими руками +
a.aliexpress.com/_Adxmsk
+
avatar
+35
  • ventura
  • 16 февраля 2021, 23:13
Первое, что приходит на ум — купить готовый модуль, типа такого… Я хочу показать довольно простой способ изготовления такого индикатора из минимального количества широкодоступных деталей.
«Если у вас дома свой радиомагазин, а вот индикаторы внезапно закончились...»
Звучит как «Если не хотите заказывать и ждать суши, сделайте их из того, что всегда под рукой. Возьмите рис, корень васаби, мирин, сакэ, водоросли комбу, немного свежевыловленного тунца и живого осьминога...» ))
+
avatar
+14
  • SinuX
  • 16 февраля 2021, 23:29
Справедливости ради, у любителей суши многие ингредиенты для них дома легко найдутся, как и детали у любителей мастерить)
+
avatar
+11
  • falcon99
  • 17 февраля 2021, 09:39
Не возьмите, а посейте рис )))
+
avatar
+3
  • spc
  • 17 февраля 2021, 09:54
Если тунец с осьминогом скооперируются, до риса дело может уже не дойти.
+
avatar
+11
  • Aahz
  • 17 февраля 2021, 12:54
Раскрыв Поваренную книгу 1905 г, в разделе: «Что делать, если к вам пришли гости, а в доме нет продуктов?»
— «Пошлите кухарку в погреб, пускай она нарежет холодной буженины, лососины, добавит мочёную клюкву, посыплет свежей зеленью и подаст на стол. Разлив домашней наливочки, извинитесь перед гостями...»
+
avatar
+16
а такой вариант не устроил бы?
+
avatar
+25
  • SinuX
  • 16 февраля 2021, 23:26
Это не путь самурая)))
+
avatar
0
  • TheLamer
  • 16 февраля 2021, 23:36
Такой вариант от одного лития работать не будет. А вот если на каждый светодиод свой делитель — работать будет, но зажигание нечеткое будет.
+
avatar
+2
  • ksiman
  • 17 февраля 2021, 09:53
а такой вариант не устроил бы?
Так светодиоды не подключают.
+
avatar
+1
  • mike888
  • 16 февраля 2021, 23:52
Готовое от дядюшки Ляо покомпактнее https://aliexpress.ru/item/item/32922621077.html Это тем у кого на мелочи времени не хватает
+
avatar
+6
  • kirich
  • 16 февраля 2021, 23:55
Можно еще проще, поставить AN6884
+
avatar
+7
Еще проще взять такой 67,91 руб.
a.aliexpress.com/_9uo0pI
Сразу показывает напряжение и более универсален.
+
avatar
+4
  • Cremator
  • 17 февраля 2021, 01:08
Если делать себе, то однозначно информативнее, если делать для людей не в теме, то наоборот, менее информативно. Когда родным переделывал шурик на литий тоже думал поставить такой индикатор, но в итоге отказался, из-за сложности введения в курс дела, какое напряжение соответствует какому значению. И как раз светодиодный индикатор пришелся к месту, просо и понятно.
+
avatar
+1
  • fang_
  • 22 февраля 2021, 10:09
надо обучать людей, чтобы были в теме, а не делать — чтоб попроще
+
avatar
0
  • st2002
  • 16 сентября 2022, 13:52
не надо усложнять простые вещи. Доли вольта нахрен никому не интересны, кроме технодрочеров. Большинству людей в 99% приборов нужен индикатор разряда простой как выстрел. Один светодиод. Многоцветный или «не горит-горит-мигает». Всё.
+
avatar
0
На напряжениях ниже 3,5 В ему поплохеет.
+
avatar
+1
Написано от 2.5в. У меня такой в машине лежит, могу посмотреть. В теме вольтметр измеряет в пределах 4.2-3.3, имхо в указанный предел попадает.
+
avatar
+1
  • giga6yte
  • 17 февраля 2021, 19:33
Только если сильно не повезет. Я такие всюду устанавливаю. Большинство из них четко работают до 2,5-2,8 в. Попадаются такие, что ниже 4,0 В ничего уже не кажут (мне такой попадался только один — красный), но это скорее исключение, чем правило. Лучше всего заказывать у разных продавцов, чтобы сразу на партию высоковольтовых не попасть.
+
avatar
+3

Да, проверил. От 3.5 не поплохело.
+
avatar
+2
  • Aahz
  • 17 февраля 2021, 13:00
Как вариант можно такой взять, Кроме напряжения еще пищать будет при переразряде. Батарея до 8S.
https://aliexpress.com/item/item/1005001394064475.html
+
avatar
0
  • yualeks
  • 12 марта 2021, 07:35
Одно но, они врут безбожно.
+
avatar
0
Как видишь на фото, врут вполне божно, напряжение соответствует. Могу для сравнения конечно и с мультиметром сравнить, но сотые вольта мне не особо важны в данном случае.
+
avatar
+10
Использовать цифровые микросхемы (тем более микроконтроллеры) без конденсаторов по питанию — верный путь к чудесам.
+
avatar
+5
Для батарейного использования не хватает сна и выхода из него по кнопке с изменением, если отпустил кнопку то опять спать.
+
avatar
+151
загрузил фото этого прекрасного образца китайской каллиграфии в Яндекс переводчик. получил перевод 'класть система'. думаю

+
avatar
+1
по последней сводке уязвимостей виндовс даже подумать страшно.
+
avatar
+8
  • SinuX
  • 17 февраля 2021, 08:39
Перемен требуют наши сердца
+
avatar
+5
За автором уже выехали?
+
avatar
+2
  • ZeRNoVoz
  • 18 февраля 2021, 00:56
там же четко написано F1
+
avatar
0
  • slon1977
  • 17 февраля 2021, 02:02
А как плата моргает при зарядке?
+
avatar
0
  • SinuX
  • 17 февраля 2021, 08:34
Индикация зарядки не предусмотрена, будет просто уровень расти по мере повышения напряжения на аккумуляторе
+
avatar
+2
  • Bald
  • 17 февраля 2021, 06:29
это можно легко решить
Очень сомневаюсь, после заливки эпоксидной смолой…
+
avatar
0
  • SinuX
  • 17 февраля 2021, 08:37
Это частный случай) При установке готовом устройстве можно не заливать вообще или обойтись термоклеем
+
avatar
+6
Можно ещё изменить схему подключения светодиодов (добавить пару светодиодов):

«Освободится» один вывод у Attiny13A, его можно использовать для переключения режимов заряд/разряд.

Естественно, что программа управления светодиодами будет совершенно другая.
+
avatar
+7
Простой способ? Текстолит, травление и все равно половина деталей навесняком. 3Д печать. Программирование. Список деталей, материалов и инструментов далеко не широкодоступный.

Как поделка из серии «нечем заняться на пару дней» — пойдет.
+
avatar
+4
  • SEM
  • 17 февраля 2021, 10:31
Способ нарисовать «по месту» плату и вытравить — действительно показан очень простой и доступный. Ещё проще чем ЛУТ.
Корпус на 3D принтере — можно не делать, а просто залить устройство термоклеем в картонной опалубке. В корпусе основного устройства просверлить отверстия под светодиоды, вставить собранный индикатор и залить изнутри термоклеем.
Остальное да, «дома случайно нашлись светодиоды, резисторы, Attiny13, ардуина как программатор, на компе весь софт, в голове умение программировать для ардуино». Но на эту тему уже пошутили…
+
avatar
+1
Есть более простые и доступные способы. Описанные автором — не самые.
+
avatar
0
  • SEM
  • 17 февраля 2021, 11:47
Куда ещё проще чем «приложить и обвести»?
Проколоть дырки, вставить в них ноги деталей и с обратной стороны спаять?
+
avatar
0
Раньше платы на куске картона делались вполне успешно.
Формирование дорожек скрайбером тоже достаточно быстрый и надежный способ.

Обьемный монтаж вообще ничего кроме самих радиодеталей не требует.
+
avatar
+1
  • SEM
  • 17 февраля 2021, 12:23
Раньше платы на куске картона делались вполне успешно.
Я делал, в школьные годы…
Формирование дорожек скрайбером тоже достаточно быстрый и надежный способ.
В приличном стабе за упоминание вслух этого существа могут и побить… (S-T-I-K-S)
Обьемный монтаж вообще ничего кроме самих радиодеталей не требует.
Тут нужно чуть больше соображалки и ловкости рук.
+
avatar
+2
  • LeggO
  • 19 февраля 2021, 21:10
SEM
В приличном стабе за упоминание вслух этого существа могут и побить… (S-T-I-K-S)
Вы неправильно пишете слово «Скрэббер» ))))
+
avatar
0
  • SEM
  • 21 февраля 2021, 11:50
Это не я так написал, а TheTERMINATOR! Может он внешник?

P.S. Теперь и вас в стабе побьют…
+
avatar
+1
  • LeggO
  • 21 февраля 2021, 17:08
SEM
Я не понял, кто тут минусит, но это не я.У меня почти полное «собрание сочинений» на эту тему и, т.к. читать вообще некогда и к тому же с возрастом зрение здорово подсело, всё это в виде аудиокниг, а т.к. я часто езжу к себе в деревню за 220 км от Москвы, то слушаю в машине с удовольствием, кроме того, в отличии от музона, книга не дает заснуть, потому, что мозги не отключаются, а в голове, как и при чтении обычной книги, рисуется картинка, х\ф практисски.И если вдруг что-то экранизируют, то скорее всего получится совсем не то, что себе в мозгах нарисовал и не понравится.Так уже случалось в моей практике.Есть не сильно известная, но очень сильная книга «Джура». Автор — известный в свое время путешественник Георгий Павлович Тушкан.Невероятный человек. Но наши сняли весьма посредственную картину по его книге, вырезав половину интересных моментов.
А в сети есть такое о нём упоминание:
«Английское издательство в своем предисловии к «Джуре» назвало Георгия Тушкана советским Фенимором Купером и сообщило своим читателям, что «со времени „Последнего из могикан“ мы не читали повести, так насыщенной волнующими происшествиями и оригинальными характерами, как „Джура“.»
+
avatar
+1
  • SEM
  • 22 февраля 2021, 12:26
Я не понял, кто тут минусит, но это не я
Это спамеры, не обращайте внимания. Я им «бизнес» порчу, а всё что они могут мне сделать — это проминусить мои комментарии в пределах лимита на минусы.
слушаю в машине с удовольствием, кроме того, в отличии от музона, книга не дает заснуть, потому, что мозги не отключаются, а в голове, как и при чтении обычной книги, рисуется картинка
Я меня всё наоборот, я не могу слушать аудиокниги за рулём. Отвлекают. Или книгу пришлось бы слушать «в пол-уха» (содержание услышал, удовольствия не получил), или в столб…
Есть не сильно известная, но очень сильная книга «Джура». Автор — известный в свое время путешественник Георгий Павлович Тушкан.
Спасибо, попробую.
+
avatar
+1
  • LeggO
  • 22 февраля 2021, 13:49
SEM
я не могу слушать аудиокниги за рулём. Отвлекают. Или книгу пришлось бы слушать «в пол-уха» (содержание услышал, удовольствия не получил), или в столб…
А я раз ехал, книжек не было, начал клевать носом, врубил Раммштайн на всю катушку — хватило на 5 мин, потом этот грохот стал действовать, что та колыбельная)))
+
avatar
0
  • SSh1957
  • 12 марта 2021, 15:57
6-й том «Библиотеки приключений» издательства 1966 года. В свое время зачитывался этой книгой. Все 20 томов этой серии были уникальны. А капитан Блад зачитан вообще до дыр.
+
avatar
0
  • youhim
  • 18 февраля 2021, 16:02
Я в детстве, когда доступа к ЛУТ еще не было, да и позже, когда было лень возиться, пользовался скотчем и скальпелем. Сверлим плату, рисуем карандашом дорожки, заклеиваем скотчем и по нарисованным дорожкам под линейку вырезаем… Удавалось делать даже относительно сложные платы.
+
avatar
+4
  • Vingrad
  • 17 февраля 2021, 11:28
Можно из автомобильный зарядки вытащить маленький вольтметрик и обрезав плату, использовать его в качестве индикатора напряжения литиевого аккумулятора. Получается маленький и точный индикатор.
Когда переводил осциллограф DSO138 на питание от лития, так и сделал. Добавил только кнопку.Работает с 2,1 В.
+
avatar
+1
Вы использовали обычный маркер?
У меня почему то перекись не очень жалела оный при травлении.
+
avatar
+3
  • SinuX
  • 17 февраля 2021, 11:58
Обычный перманентный ErichKrause тонкий
+
avatar
+1
Не обычный. Перманентный.
+
avatar
+1
Да, эпоксидка — это чревато. Я маячки делал на светодиодах 3528, заливал их эпоксидкой — через некоторое время все перестали светить. Вроде бы есть какие-то специальные «сорта» без усадки.
+
avatar
-5
+
avatar
+11
  • SinuX
  • 17 февраля 2021, 13:38
Вообще это чревато, потому что шим не ограничивает импульсный ток. Для светодиода это приемлемо, а порт микроконтроллера может вылететь
+
avatar
0
Зависит от диодов, порт тиньки в пике держит до 40ма, для большинства не ультроярких диодов этого более чем достаточно, вот stm так не может — у него ограничение 20ма.
Так что вполне безопасно и будет долго и нормально работать.
+
avatar
0
  • SinuX
  • 17 февраля 2021, 18:42
Хм, тогда я пожалуй на днях запилю и шим, места еще дофига) Можно будет не только в коде править яркость отдельных каналов, но и переключения/мигалки всякие плавными делать
+
avatar
+1
  • mr_X
  • 17 февраля 2021, 19:50
Сделайте измерение во время, когда светодиоды не горят. Меньше нагрузка, меньше падение на проводах и внутреннем сопротивлении аккумулятора. Не знаю, как там в тиньке АЦП устроено, но если есть возможность оставить заряжаться ёмкость УВХ и на это время усыпить контроллер, то можно ещё уменьшить вносимую погрешность.

Понятно, что при не дохлом аккумуляторе напряжение и так будет измеряться точно. А с учётом того, что это лишь «показометр», то точность вообще нафиг не нужна. Однако, на мой взгляд, уж если развлекаться такими поделками, то сделать правильно — отдельное удовольствие.
+
avatar
0
Хм, тогда я пожалуй на днях запилю и шим, места еще дофига)
Вообще на 13 тиньке оно кончается очень быстро :)
Но можно сильно расширить показометр, добавив промежуточное мигание, т.е. уровней будет 8.
Ну и ИМХО, измерять нужно между индикацией, те на время измерения вырубать все светики.
И ШИМить по одному, перебирая — тогда потребление будет очень низкое.
+
avatar
+2
  • SinuX
  • 21 февраля 2021, 17:25
При желании в нее можно засунуть слона)
Запилил шим и измерение при отключеных светодиодах, яркость каждого канала можно подстраивать программно в прошивке (LED1_MAX, LED2_MAX и т.д). Так же добавил возможность включить плавное переключение светодиодов (FADE_LEDS)
+
avatar
+4
Без резисторов делать категорически не надо — это плохая практика, ток целиком будет определяться экземпляром МК и напряжением на аккумуляторе.

А вот поставить один резистор на все диоды — другое дело. Индикацию, правда, при этом придется сделать динамическую (чтобы яркость не зависела от количества светящихся диодов), а для визуального выравнивания яркости использовать ШИМ.
+
avatar
+7
  • mr_X
  • 17 февраля 2021, 19:32
В соседней теме у вас глухой while(), тут светодиоды без резисторов. Это всё плохие практики. Не отговариваю вас так делать, но другим лучше не советовать.
+
avatar
+4
  • parakhod
  • 17 февраля 2021, 14:25
Как-то выглядит неразумно переусложнённым, из пушки по воробьям.
Тем более что напряжения, которые вы замеряете, больше, чем напряжение падения на любом светодиоде.
Подберите светодиоды с нужным падением напряжения, добейте недостающее диодами — и вот вам готовый индикатор без программирования, регистрации и смс.
+
avatar
+4
Он будет нестабилен и зависеть от диодов, накой это нужно, если можно сделать универсальный и стабильный вариант, стоимость которого смешная.
+
avatar
+3
  • parakhod
  • 17 февраля 2021, 15:33
Он будет стабилен, при том что у вас непонятна какая точность делителя и непонятно какая стабильность опорного напряжения АЦП (не думаю что прям отличная)? Ооок.
Да, не забываем также об отсутствии нормального питания на мк и отсутствии какой-либо защиты.
+
avatar
+4
не думаю что прям отличная
Дак чтобы не было отсебячества — посмотрите спеки, очень даже неплохо там со стабильностью.
Делитель, если взять нормальные сопротивления — тоже вполне будет стабилен.
Да, не забываем также об отсутствии нормального питания на мк и отсутствии какой-либо защиты.
А питание от батареи — это уже не нормальное питание?
Какой защиты? От чего? От батареи же питаемся, не? До 2.8 вольт можно не беспокоится, а если взять контроллер с буковкой «V» то и до 1.8.
+
avatar
+2
  • youhim
  • 18 февраля 2021, 16:06
Диоды дороже обойдутся чем тинька.
+
avatar
+2
  • Musja
  • 18 февраля 2021, 16:48
С некоторым усложнением схемы для варианта 1, но без программирования можно использовать 4-ре TL431 c тремя резисторами на каждую.
+
avatar
+6
99 процентов высказавишихся негативно — просто не брали никогда в руки ни один ide. Автор довольно точно сформулировал то — что и хотел сказать. Для людей, работающих с контроллерами, это поделка выходного дня. Действительно проще и интереснее чем заказывать и ждать. Пожалуй тоже займусь такой же. Сжег в батарее шуроповерта по неосторожности родную. Заказывать такую херню — не наш метод. И тинька не важно какая. Это может быть пик например. То что на столе валяется. В годовом слое… Мне ( думаю как и автору ) проще сделать на пике одно-двувибратор. Чем городить его на 2х 555 с кучей обвязки. К примеру. Но у каждого — свои погремушки…
+
avatar
+3
  • yuzd
  • 20 февраля 2021, 12:07
Делал нечто подобное, только, чтобы не рассчитывать делитель, и получить максимальную точность, вводил кнопку для начальной настройки. Зажал кнопку, начал гореть первый светодиод, накрутил на регулируемом БП нужное напряжение, нажал кнопку, напряжение с АЦП сохранилось в EEPROM, ну и так далее с остальными.
+
avatar
0
  • rx3apf
  • 20 февраля 2021, 20:59
Да, такой алгоритм это первое, что приходит на ум. Расчет-подбор-перепрограммирование — затея весьма так себе (ладно бы разброс резисторов в делителе, в конце концов можно и однопроцентные взять), но опорник имеет допуск 10%, и еще чуть может набежать в смещении ADC, в итоге в худшем случае 15%. Многовато. А тут все разом, по вкусу и без ошибок.
+
avatar
+8
  • stas732
  • 20 февраля 2021, 20:59
Делал для себя барграф уровня заряда на 10 диодов, хотя есть возможность и на 12, по такой схеме:
+
avatar
+1
  • Knakll
  • 21 февраля 2021, 01:33
Отличный вариант для супер компактных решений. Когда нужна плата-индикатор не сильно больше самой микросхемки
+
avatar
+1
Своеобразное у вас представление о простоте.
+
avatar
+1
  • sinobi
  • 25 февраля 2021, 08:40
Спасибо за статью, позновательнно.Рад, что авр еще вовсю используется.
+
avatar
0
  • VLOD
  • 13 марта 2021, 08:23
Я делал визуальный вольтметр на адресном светодиоде. Но он был частью схемы. Если делать отдельным устройством, то тинька 85 потянет точно, а вот 13 не знаю, но и сами адресные светодиоды достаточно большие. А так уровней отслеживания можно сделать много.
+
avatar
0
  • nefedot
  • 14 марта 2021, 20:19
Самый простой индикатор: www.eddy.com.ua/archives/500
+
avatar
-1
  • kiv69
  • 14 марта 2021, 23:31
Пару hct595, пару семисегментных индикаторов, три ноги от МК и имеем индикатор на любое напряжение с индикацией в процентах заряда.
Или ещё проще — МК и готовый модуль на TM1637
Добавить копеечный датчик тока типа ZXCT1009 и наш индикатор начинает показывать заряд, напряжение и потребляемый ток.
Извращаться — так по полной.
+
avatar
0
  • beoleg
  • 25 апреля 2021, 21:04
Добавлю/поправлю при прошивке нужно добавить ключ '-P COMx', где х — номер порта ArduinoISP. Получаем:
avrdude -p t13 -c avrisp -P COM5 -b 19200 -u -Uflash:w:all_leds.hex:a -Ulfuse:w:0x65:m -Uhfuse:w:0xFD:m
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.