roboforum.ru

Технический форум по робототехнике.

Определитель оставшегося заряда аккумуляторов

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 09:26

Несколько раз я сталкивался с такой ситуацией: хочется добавить роботу какую-нибудь программную примочку, пишу программу, заливаю ее в робота - а он не едет. Аккумуляторы разрядились, для перепрограммирования еще тянут, а для движения уже нет. Чтобы исключить такую ситуацию в будущем, и было придумано это устройство.
Известно, что NI-MH аккумулятор в заряженном состоянии выдает напряжение 1,2 - 1,25 В, в разряженном - около 1 В. Емкость аккумулятора от напряжения на нем зависит нелинейно, но нам это и не важно. Самый простой способ контроля емкости - измерение напряжения (я использую 4 аккумулятора), диапазон от 4 до 5 В. Сперва думал сделать это используя встроенный АЦП + семисегментный индикатор двухразрядный, но этот способ имеет кучу недостатков (для этого нужно минимум 10 свободных ножек, контроллер должен отвлекаться, для динамической индикации придется задействовать таймер, или же вешать дополнительные регистры-защелки) и всего одно достоинство - высокая точность измерения (но для двухразрядного индикатора точность мы все равно загрубим до 0,1 В), которая в принципе не нужна. Поэтому был реализован другой способ, о котором я сейчас расскажу.
В качестве устройства индикации я взял линейку светодиодов DC-10EWA. Она состоит из 10 отдельных светодиодов. И на рассыпухе собрал трехбитный АЦП. Для этого использовал две микросхемы LM239 (счетверенный компаратор, выходы "открытый коллектор", нагружены на соответствующие светодиоды линейки), управляемый стабилитрон LM431 для источника опорного напряжения 2,5 В, резистивный делитель из 9 резисторов (8 точек съема напряжения). Схема в точности является схемой самого быстрого АЦП: измеряемое напряжение поступает на делитель, с делителя с точек съема напряжения на 8 компараторов подаются напряжения (на неинвертирующие входы), на инвертирующие входы компараторов подается опорное напряжение 2,5 В от ИОН. Источник опорного напряжения состоит из резистора и LM431 (трехногая микросхема, соединяем две ноги - получаем аналог стабилитрона на 2,5 В, только его напряжение слабо зависит от тока).
Поскольку светодиодов в линейке 10, а выходов от компараторов всего 8, два крайних светодиода подключены напрямую к питанию.
Устройство собрано на маленькой печатной плате, к торцу которой припаян разъем PBD-10 для подстыковки получившегося модуля в разъем программатора (IDC-10M) (из которого используются только выводы питания). Это удобно и экономит место на плате.
Как работает устройство. Вставляем устройство в разъем программатора, включаем питание. Если напряжение аккумуляторной батареи больше 4,875 В - горят только два крайних светодиода. По мере понижения напряжения начинают загораться светодиоды по одному (с какой стороны - зависит от разводки). Когда напряжение станет 4 В - все светодиоды загорятся. Можно сделать обратный эффект: если поменять полярность входов (ИОН подключить к неинвертирующим входам, а точки съема напряжения - к инвертирующим). Тогда при напряжении +5 В будут гореть все светодиоды, а по мере снижения они будут последовательно гаснуть (прямо как индикация заряда в сотике).
Ну и напоследок: смотрим на светодиодную линейку при работе с роботом и понимаем, когда пора поставить аккумуляторы на зарядку.

PS: линейку делителей можно пересчитать на нужный контролируемый диапазон, например от 3 до 4 В. Помните только, что ИОН на 2,5 В. Если интересует напряжения меньше - надо уменьшать напряжение ИОН.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Определитель оставшегося заряда аккумуляторов

Сообщение =DeaD= » 04 фев 2010, 09:31

А фотки, схемы? :wink:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 09:58

Есть у меня такой недостаток - не люблю оформлять документацию. Считаю, что если схема целиком не помещается в голову, то надо ее упростить, а если это невозможно, тогда думаю над ней глубже. Я рисую схемки карандашом на оборотках только для того, чтобы по даташиту обозначить цоколевку для разводки. Так что схемы нет, и фотки тоже. Есть файл печатной платы, но отдельно без сборочного чертежа, схемы и перечня он никому не нужен. Просто девайс настолько простой, что я подумал что идея будет понятна из описания.

АЦП прямого преобразования или параллельный АЦП содержит по одному компаратору на каждый дискретный уровень входного сигнала. В любой момент времени только компараторы, соответствующие уровням ниже уровня входного сигнала, выдадут на своём выходе сигнал превышения. Сигналы со всех компараторов поступают на светодиодную линейку.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Определитель оставшегося заряда аккумуляторов

Сообщение galex1981 » 04 фев 2010, 10:02

Если схема такая простая, так может быть ее стоит все таки восстановить. Просто например у меня по вашему описанию как минимум представилось схемы 3...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 11:30

Ну раз идея вызвала интерес - накидал схемку.
Вложения
вольтметра.zip
(65.76 КиБ) Скачиваний: 28
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Определитель оставшегося заряда аккумуляторов

Сообщение galex1981 » 04 фев 2010, 11:39

Вот сейчас действительно видно наглядно ;)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Angel71 » 04 фев 2010, 11:40

:oops: это жесть какая-то. создавать в пикаде, потом сделать принтскрин, затем обрезать картинку. :D и всё это, чтоб запихнуть в корявый rtf, который ещё и в зип запакован. шучу. Radist, просто картинку выложить намного удобней и быстрей будет, эт я на будущее
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Определитель оставшегося заряда аккумуляторов

Сообщение boez » 04 фев 2010, 11:47

А еще бывает вот такая http://www.chipinfo.ru/literature/radio/199906/p37.html микросхема.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 12:04

Интересная ссылка. Иллюстрация к фразе "все уже придумано до нас". Так что идея не нова. Внутри этой микросхемы уже есть опорник. НО:
- она российская и в дипе (дип-18), не уверен что есть в соике (в обратном тоже не уверен), но есть аналог от сименса
- редкая
- девайс получился габаритным достаточно
- стоит от 30 до 60 р

Мои затраты на рассыпуху, на которой собран АЦП
20 резисторов по 40 копеек (чипы 0805), можно найти дешевле
lm239 4.8 р две штуки
lm431 12 р
Итого те же 30 рублей)))))
(Ну вообще-то я ничего не покупал, все эти детальки я достал на работе)
Но габариты у меня получились 35х35 мм
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Определитель оставшегося заряда аккумуляторов

Сообщение SERGEY_M » 04 фев 2010, 12:11

а еще есть микра LM3914
LM3914.pdf
(368.48 КиБ) Скачиваний: 9

стоит гдето 1...1,4$
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 12:41

Посмотрел даташит. Корпус только дип-18 или PLCC-20, а это габарит. В нашем магазине указанная цена только при большом опте, в розницу 60 р. Я не сомневаюсь, что найдется еще куча микросхем, которая пойдет в замену. Что именно ставить, если вы захотите использовать такой девайс - решать вам. Моей задачей было вызвать интерес к девайсу, облегчающему жизнь робототехника. Помог себе - помоги другому))). Ну и ответить на вопросы, ежели таковые возникнут.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Определитель оставшегося заряда аккумуляторов

Сообщение yak-40 » 04 фев 2010, 13:26

Девайс конечно интересный. Но если в конструкции есть МК, то стоит ли городить огород из дополнительных элементов?
Это конечно IMHO, но я в аналогичных ситуациях обхожусь одним светодиодом и внутренним АЦП ( итого 2 вывода МК)
1. Если напряжение нормальное - светодиод не горит,
2. Напряжение падает до определённого предела - светодиод начинает вспыхивать. Период вспышек уменьшается помере уменьшения напряжения.
3. Наконец напряжение уменьшилось до минимума - светодиод загорелся постоянно.
Дёшево и наглядно. :D
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Определитель оставшегося заряда аккумуляторов

Сообщение blindman » 04 фев 2010, 13:37

+1. Я щас делаю девайс в котором куча режимов индицируются всего одним двухцветным светодиодом - рабочий режим, уровень заряда аккумулятора, подключение к компу, зарядка аккумулятора, сообщения самодиагностики.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Определитель оставшегося заряда аккумуляторов

Сообщение MiBBiM » 04 фев 2010, 13:48

я считаю, что для детских наборов пойдет. они любят, когда все крутится и светится.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Определитель оставшегося заряда аккумуляторов

Сообщение Radist » 04 фев 2010, 13:53

Использование встроенного АЦП - дело хорошее и полезное. И одним светодиодом можно индицировать. А двухцветным еще лучше индицировать. Эта индикация по сути ЧИМ или ШИМ, не горит когда все нормально, горит когда все плохо, и светится хитрым образом, показывая степень плохости. Таким способом хорошо смотреть за постоянным, медленно меняющимся напряжением. А потребление робота в общем случае импульсное. На линейном индикаторе виден уровень провалов напряжения при бросках тока. Но я не навязываю применение светодиодной линейки - кому ведь как нравится).
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

След.

Вернуться в Электроника, электротехника

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron