roboforum.ru

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

Atmega8 - померить напряжение с 2S LiPo батареи

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение sky-walker » 29 сен 2012, 15:05

Все доброго времени суток.

Буквально недавно увлекся программированием АВРок. Питаю батарейкой LiPoly 2S (2 банки по ~3,7В, общее ~7,4) через преобразователь на 5В. Разряжать каждую банку можно максимум до 3В.

Из батареи идут 3 провода: два силовых и "балансирный". См. картинку:
sch.png
Схема LiPo батарейки
sch.png (2.45 КиБ) Просмотров: 2841


Как можно с помощью AtMega8 померить вольтаж на каждой банке? Одну банку я могу померить (см. вложения), а вот каждую что-то не получается...
Вложения
sch2.png
Как я измеряю вольтаж одной банки
sch2.png (2.39 КиБ) Просмотров: 2844
Аватара пользователя
sky-walker
 
Сообщения: 40
Зарегистрирован: 29 сен 2012, 14:41
прог. языки: C\C++, AutoIt, PHP

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение Romikgy » 29 сен 2012, 18:52

можешь лесенкой измерять , с начало нижний , потом удвоенный обе... и вычесть из суммы нижний
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение sky-walker » 29 сен 2012, 21:49

Лесенкой это так?
sch3.png
sch3.png (2.88 КиБ) Просмотров: 2815


При полной зарядке он выдает 4,2+4,2=8,4В, разве можно такую величину заводить на ногу меги?
Аватара пользователя
sky-walker
 
Сообщения: 40
Зарегистрирован: 29 сен 2012, 14:41
прог. языки: C\C++, AutoIt, PHP

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение legion » 29 сен 2012, 22:03

Нет, такую нельзя. И даже если завести, то это будет бессмысленно - АЦП измеряет от земли до Vref, который явно меньше, и на выходе просто будет макс. значение.

Полное напряжение можно измерить через резистивный делитель.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение sky-walker » 29 сен 2012, 22:40

А как это правильно реализовать? Диапазон общего напряжения может колебаться от 8,4В (макс) до ~6,2В. Какие резисторы брать?
Может, есть еще какое-нибудь решение данной задачи?

Я новичок в этом деле, поэтому многого не знаю, только учусь...
Аватара пользователя
sky-walker
 
Сообщения: 40
Зарегистрирован: 29 сен 2012, 14:41
прог. языки: C\C++, AutoIt, PHP

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение dccharacter » 29 сен 2012, 22:49

нижние резисторы - по 1 кОм
верхние - считаешь как резистивный делитель

Uвых = (Uвх * Rниж)/(Rниж + Rверх)

Uвых - напряжение опоры для АЦП
Uвх - максимально возможное значение напряжения на батарее
Вложения
Untitled.jpg
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение legion » 29 сен 2012, 23:18

Если в качестве опорного (Vref) напряжения использовать напряжение питания, то напругу с нижней батареи можно брать без делителя (R3 и R4), т.к. она уложится в диапазон измерения.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение dccharacter » 30 сен 2012, 00:32

legion писал(а):Если в качестве опорного (Vref) напряжения использовать напряжение питания, то напругу с нижней батареи можно брать без делителя (R3 и R4), т.к. она уложится в диапазон измерения.

И получим показания, плавающие вместе с напругой питания. Использование даже внутренних ВРЕФ-ов дает намного более высокую точность, чем реф по питанию.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение sky-walker » 30 сен 2012, 01:07

Спасибо за схему.

Попробовал посчитать для верхнего резистора сопротивление (на схеме во вложении - R1), получилось для макс. 8,4В и выходного 5В сопротивление 680Ом. Проверил в Протеусе - работает! (В реальности завтра буду - на ночь глядя тьфу-тьфу что-нибудь перепутаю и взорву) Нахожу напряжение второй банки так: (x/204,6)*1,68-(y/204.6), x - значение с ноги общего напряжения, y - значение с ноги первой банки. Вроде получается, если не прав - прошу поправить.

UPD:
dccharacter писал(а):И получим показания, плавающие вместе с напругой питания.

На мк питание (VCC и AREF) идет через преобразователь на 5В (кренка\LM). В этом случае значение тоже плавать будет? Я пока для простоты не использовал делитель для первой банки...

Всем спасибо за участие в решении проблемы!
Вложения
sch4.png
sch4.png (5.48 КиБ) Просмотров: 2755
Аватара пользователя
sky-walker
 
Сообщения: 40
Зарегистрирован: 29 сен 2012, 14:41
прог. языки: C\C++, AutoIt, PHP

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение dccharacter » 30 сен 2012, 01:16

Я бы сделал два резисторных делителя, в нижних плечах по килоому, в верхних 5,6кОм.
Внутреннюю опорку бы использовал...
Кста, сегодня на поле человек летал на скайволкере :-)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение sky-walker » 30 сен 2012, 12:06

Спасибо, обязательно попробую.

dccharacter писал(а):на поле человек летал на скайволкере

Это такая большая бандура из EPO под 2кг для FPV? Дома на шкафу стоит, летаем периодически :)
Аватара пользователя
sky-walker
 
Сообщения: 40
Зарегистрирован: 29 сен 2012, 14:41
прог. языки: C\C++, AutoIt, PHP

Re: Atmega8 - померить напряжение с 2S LiPo батареи

Сообщение dccharacter » 30 сен 2012, 19:55

sky-walker писал(а):Спасибо, обязательно попробую.

dccharacter писал(а):на поле человек летал на скайволкере

Это такая большая бандура из EPO под 2кг для FPV? Дома на шкафу стоит, летаем периодически :)

Ага. Сегодня он мне дал в очки посмотреть. И пока я смотрел, он посадил модель. У меня ноги ватные потом минут двадцать были. Я еще все отвернуть от земли пытался.

Не хватало только женского строгого голоса: "Terrain ahead! Terrain ahead! Pull up! Pull up!"
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей


Вернуться в Микроконтроллеры

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

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