Робот и батарейка

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем zserg, 19 апр 2013.

  1. zserg

    zserg Нерд

    Приветствую, форумчане!

    Делаю первые шаги в электронике, поэтому не все вещи понятны... Хочу сделать небольшого автономного робота на ардуинке. Все компоненты подобрал, почти всё проверил - особых проблем нет, кроме одной. Нужно, чтобы робот сам отслеживал заряд батареи до критического и как-то сообщал об этом. Далее есть варианты - иметь две батареи и переключаться на вторую а сдохшую человек меняет либо организовать зарядку прямо в роботе (непонятно как, тоже) и сделать док-станцию аналогично iRobot-и-подобные.

    Но главная проблема для меня сейчас - определение заряда батареи. Так как к роботу подключена не только ардуинка, но и моторы, сенсоры, и всё это питается от одной и той же батареи, то одним делителем напряжения не обойтись, как я понимаю - напряжение будет(?) скакать и результат будет странным. Компаратор тоже не подходит, так как нет референсного напряжения.

    Вопрос - делал ли кто-то подобные схемы? Вроде очевидная вещь, которая должна быть в любой автономной системе (тот же iRobot), а реальных примеров не найду - уже кучу сайтов перерерыл. Везде или элементарный случай (без доп. нагрузки), или с референсным источником питания.
     
    DMonin, Megakoteyka, roggedhorse и ещё 1-му нравится это.
  2. roggedhorse

    roggedhorse Гик

    Хорошо поставленный развернутый вопрос

    Навскидку 2 быстрореализуемых способа:
    1. Ставим в цепь питания сопротивление 0.1 Ом типа VCS103 и измеряем потребляемый вашим ботом ток, проходящий через этот резистор. Ток определяем по падению напряжения на резисторе. Интегрируем ток по времени - получаем Втч. Большинство батарей имеют некую емкость. Обычно ее указывают в мАч, но правильнее указывать в Втч, поскольку под нагрузкой напряжение на батарее со временем падает, а ток соответственно растет. От заданной емкости минусуете истраченную и при достижении определенного предела переключаетесь на резерв, одновременно двигаясь к док-станции

    2. Отслеживать напряжение на батарее. Измеренные значения фильтровать (сглаживать) с тем, чтобы отсечь пиковые значения. При стабильной нагрузке напряжение на батарее изменяется плавно вниз, при динамичной нагрузке (как у роботов) будет проседать скачками. Посему загрублять измерялку напряжения - например усреднять ежеминутно данные и на основании среднего значения делать вывод об остатке заряда.

    И, кстати, многое зависит от типа батарей. Радует только то, что все батареи имеют даташиты, а в даташитах как правило нарисованы графики заряда/разряда в зависимости от токов нагрузки и температур
     
    zserg нравится это.
  3. zserg

    zserg Нерд

    Большое спасибо за ответ! Наконец-то что-то конкретное и понятное :)

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

    [quite]И, кстати, многое зависит от типа батарей. Радует только то, что все батареи имеют даташиты, а в даташитах как правило нарисованы графики заряда/разряда в зависимости от токов нагрузки и температур[/quote]

    Да это тоже надо будет учесть, но это уже проще. Кстати для современных аккумуляторов насколько вредно просто параллельно подключать питание (приехал на док-станцию)? В этом случае нужны какие-то средства "контроля заряда" и т.п.? Или достаточно подключить те-же 12В параллельно аккумулятору и он будет нормально заряжаться? Оптимальная скорость зарядки тут не интересует пока - скорее адекватность подхода - не убьётся он через десяток таких процедур?
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    LiPo заряжать только зарядным устройством! Самоделки чреваты взрывом аккумулятора!
    Тут есть раздел о методах заряда NiMH аккумуляторов.
     
    zserg нравится это.
  5. zserg

    zserg Нерд

    Спасибо за предупреждение! Именно от подобных моментов хочется оградиться... А для NiMH/NiCd-аккумуляторов можно соорудить "зарядку-на-ходу"? То есть, я понимаю, что точно можно - во всех DECT-трубках обычные пальчиковые аккумуляторы, которые сама трубка заряжает. Вопрос в том, насколько сложно аналогичную схему приделать к своему устройству...
     
  6. Megakoteyka

    Megakoteyka Оракул Модератор

  7. mike_KH

    mike_KH Гик

    А что вам мешает сделать это все через мильти метр
     
  8. roggedhorse

    roggedhorse Гик

    Если GND Ардуино соединили с минусом батареи, то плюс батареи подаете на аналоговый вход, например, Analog in 1
    Командой analogRead(1) оцениваете напряжение в пределах от 0 до 1023 (0 = 0, 1023 = Vcc)
     
  9. roggedhorse

    roggedhorse Гик

    Ничего больше не нужно. На Ардуине есть АЦП.
     
  10. zserg

    zserg Нерд

    Единственное, что меня тут смущает - что сам Arduino от него же питается. Не будет он всегда 1023 выдавать?
     
  11. zserg

    zserg Нерд

    Это всё отдельные зарядки, как я понимаю. Т.е. вынули аккумуляторы из робота, зарядили, вставили обратно. А можно ли с одним комплектом аккумулаторов - сели, приехал на базу, получил питание от блока питания, подзарядил аккумуляторы, поехал дальше? Как в том же iRobot, DECT-трубках...

    Вы уж извините, что так много вопросов задаю :) Может у меня амбиций для новичка много, но как-то неинтересно диодами моргать да свистелками свистеть через контроллер. Хочется сразу что-то интересное и полезное сделать. И сразу же вылезает недостаток опыта-образования... Я, конечно, кандидат физ-мат наук, но больше мат, чем физ :)
     
  12. roggedhorse

    roggedhorse Гик

    В таком случае вам не будет трудно понять суть процессов. Понимание сути происходящего - ключ к управлению реальностью :)
     
  13. roggedhorse

    roggedhorse Гик

    Ардуино построена на базе МК AVR.
    У AVR есть Brown Out Detector (BOD). Честно говоря, не уверен, включен ли он в нашем случае. Но суть его в том, что при понижении уровня питающего напряжения до заданного предела приводится в действие встроенный механизм Reset. В такой ситуации МК прекращает работу, как вы понимаете.
    Если ваша батарея понизит напругу ниже заданного предела, МК остановится и ваш бот умрет.
    На борту UNO стоит "драйвер" NCP1117. Он обеспечивает стабильное питание 5.0В при условии, что внешнее питание не ниже 5.0В (поправьте меня кто-нибудь, если я не прав). Если у вас батарея выдает 6.5В или 9В, то беспокоиться не о чем - NCP понизит напругу до 5В. В таком случае, чтобы измерять напряжение батареи с нормальным уровнем выше Vcc Ардуины вам придется сделать простейший делитель на резисторах. Тут, кстати, учитывайте, что чем выше напряжение питания, тем больше падение на драйвере и тем больше выделяется тепла на схеме питания. Контролируйте этот момент.

    Если вам требуется питать Ардуино от батареи с напряжением ниже 5В, например, 3.6В, то вам потребуется так называемый DC-DC конвертер, который, преобразовывает, например, напряжение в диапазоне от 2.6В до 5В на входе в напряжение 4.5В на выходе (зависит от настроек). Например, Texas Instruments TPS61020. В этом случае вам не потребуется делать делитель на резисторах, поскольку напряжение батареи всегда будет ниже 5В, то есть в пределах 0 - 1023

    P.S. Прочтите даташит на микроконтроллер. Захватывающее чтение, я серьезно. Одно прочтение - на утро вы многое поймете нутром
     
  14. Megakoteyka

    Megakoteyka Оракул Модератор

    А что мешает сунуть схему заряда прямо в робота? Останется для зарядки только кабель подключать.
     
  15. roggedhorse

    roggedhorse Гик

    Зачем подключать, да ? :)
    А пускай бот сам втыкается мордочкой в зарядник или пихает штекер себе в одно отведенное для этих целей место.

    Кстати, по теме энергоснабжения: замечательное чтиво с картинками даже для тех, кто не понимает английского http://www.atmel.com/Images/doc8349.pdf
    Вкратце суть его такова: "In this demonstration we will show you how to extend the battery life of our application by multiple factors by modifying only the firmware"

    Ботам ведь тоже хочется жить долго
     
  16. Megakoteyka

    Megakoteyka Оракул Модератор

    Ну да, так и надо делать. Робопылесосы эту фичу давным давно освоили...

    http://we.easyelectronics.ru/AVR/avr-power-management-ili-kak-pravilno-spat.html
     
    roggedhorse нравится это.
  17. Unixon

    Unixon Оракул Модератор

    Если питание будет плавать, АЦП будет врать. Как то я по этим граблям весело прогулялся однажды...
     
  18. mike_KH

    mike_KH Гик

    Только дороговато такие пылесосы брать :)
     
  19. pyro

    pyro Гик

    Суть высказывания верно, но очень категорично. Не так страшен черт ...
    Имея за плечами многолетний опыт в использовании LiPo, позвольте мне поделиться моими знаниями в этом вопросе. И так начнем по порядку. Взрыв LiPo возможен, но для этого аккумулятор нужно нагреть, перезарядом или большим разрядным или зарядным током, и нарушить герметичность его конструкции. Литий щелочной метал и воспламеняется на воздухе особенно нагретый, это черевато возгоранием, и в случае лавинообразного нарастания, взрывом. Несколько лет назад видел видео, как большая, бензиновая модель самолета перерубила маленькую, с LiPo на борту, был красивый фейерверк...
    Но вернемся к эксплуатации LiPo, вот перечень вещей которые допускать нельзя:

    Не разряжать ниже 3,0В на банку - это смерть аккумулятору.

    Не заряжать выше 4,2в на банку - тоже смерть, но возможен фейерверк.

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

    Вы можете мне возразить, что это также применимо и для NiMH. аккумуляторов, я с вами соглашусь, все верно, но не так печально для них, чем в случае с LiPo. Посмотрим для примера на вот этот экземпляр. Его маркировка нам говорит:

    Turnigy nano-tech 1300mah 3S 25~50C Lipo Pack
    3S он состоит из 3-х банок соединенных паралельно
    25~50C разрядный ток не должен превышать 25*1300=32500 мА пстоянно или 65000 мА кратковременно.
    Заряжать нужно током не больше 1300 мА, меньше только приветствуется, если время вас не ограничивает.
    Внимание, эти цифры применимы только к данному аккумулятору, у вашего экземпляра внимательно изучите маркировку.
    Теперь о методе заряда LiPo. Заряд его проходит в два этапа. Сначала заряжают постоянным током, как и NiMH, при достижении напряжения значения 4,2 В, переходят на заряд постоянным напряжением, при этом аккумулятор получается заряжен на 90%. Алгоритм второго этпа такой, заряд прекращают, напряжение на аккумуляторе падает немного, заряд возобновляют пока напряжение не достигнет 4,2 В. дальше все повторяется, пока время между началом заряда и окончание не станет совсем малым.
    опираясь на свой опыт скажу, что эти два этапа приблизительно равны по времени, и при заряде током равным емкости время заряда составит от 80 до 90 мин, и если вам те 10% емкости не сильно важны, вторым этапом можно принебречь.
    Надеюсь эта информация кому то поможет, в освоении передовых технологий, в аккумуляторах.
    Может, что то не ясно написал, не пинайте сильно, писатель из меня плохой.
     
    Megakoteyka и roggedhorse нравится это.
  20. zserg

    zserg Нерд

    Огромное спасибо всем ответившим! Очень приятно встретить такое отношение к новичку, в других местах чаще просто снобистски фыркали. Без обучения никуда, это факт, но всегда приятно получить грамотный и понятный совет от "старших товарищей" в каком направлении копать. Ещё раз хочу всех поблагодарить за бесценную (для меня, как минимум) информацию!