roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 03:15

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 15:35 
Не в сети

Зарегистрирован: 09 апр 2014, 07:56
Сообщения: 86
Пытаюсь замерить напряжение аккумулятора с помощью Atmega168 на внутреннем резонаторе 8Mhz с использованием делителя на резисторах.

Код:
Код:
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 10000.0;
float R2 = 1000.0;
int value = 0;

void setup() {
     analogReference(INTERNAL);// опираемся на 1.1 вольт
}

--------------------------------------------------------
void getBatteryStatus(){
     value = analogRead(analogInput);
     vout = (value * 1.1) / 1023.0;
     vin = vout / (R2/(R1+R2));
     Serial.println(vin);
}


Но почему-то точность хромает очень сильно. В то время когда мой китайский мультиметр DT-830B показывает 12.3 вольта, то МК вычисляет 12.10. Интересно, что если я меряю напряжение за конвертером на котором установлено к примеру 8.48, то показания довольно точные, почти один в один. Объясните пожалуйста природу этих отклонений. Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 16:28 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Чего тут объяснять? У мультиметра разрешение около 20 бит, у авр - 10 бит. Итог: 5/1024 = 0,00488 v. Чтоб мерить 12 вольт, нужен делитель не менее /3. Итог: 0,00488 * 3 = 0,0146 вольт. Это минимальное разрешение ацп. Теперь возьмем гуляние данных 1 разряд (это елси все очень хорошо сделано). Итог: 0,0146 * 2 = 0.03 вольта.

Добавлено спустя 8 минут 5 секунд:
gppsoft писал(а):
vout = (value * 1.1) / 1023.0;

Почему делим на 1023 ????
Завязывай с флоат...

Да, я рассчитывал с Vref =5v, у тебя 1.1 т.е. все еще хуже


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 17:25 
Не в сети

Зарегистрирован: 09 апр 2014, 07:56
Сообщения: 86
Dmitry__ писал(а):
Почему делим на 1023 ????
Завязывай с флоат...

А на что делить? Это же максимальное значение с "аналоговой ноги".

P.S: Что делать? Как быть? :) Когда вчера с этими делителями-ххх разбирался... Сжег одну Raspberry Pi. Фатально. Чертовы провода :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 17:52 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
для успокоения души добавьте 1 и делите спокойно на 1024. компилятор наверно сам преобразует это в операцию сдвига вправо.

Измерять лучше на ножке МК и опорное напр тоже.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 17:57 
Не в сети
Аватара пользователя

Зарегистрирован: 20 янв 2014, 22:44
Сообщения: 431
Откуда: 21RU
прог. языки: Assembler, Basic, Arduino IDE, PHP и др.
ФИО: Андрей С
gppsoft писал(а):
Dmitry__ писал(а):
Почему делим на 1023 ????
Завязывай с флоат...

А на что делить? Это же максимальное значение с "аналоговой ноги".

P.S: Что делать? Как быть? :) Когда вчера с этими делителями-ххх разбирался... Сжег одну Raspberry Pi. Фатально. Чертовы провода :)

1023 максимальное, но считаем с нуля, поэтому делим на 1024. И прочитай про Vref, у Ардуинки есть AREF, на нее нужно подать образцовое напряжение, как можно выше к максимальному диапазону изм. напряжения.

_________________
3D Expo 2014 Moskow 23-25.10.2014


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 17:59 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
gppsoft писал(а):
А на что делить? Это же максимальное значение с "аналоговой ноги".

A минимальное "0" будем учитывать, или цифры начинаются с "1". Ну, если у тебя, например, 10-ая система счисления, ты будешь делить на 9 или таки на 10? Так и тут: 2^10 = 1024

gppsoft писал(а):
P.S: Что делать? Как быть?

Причеши код, зачем вставлять формулы в расчеты? Компилятор может быть не на столько умным чтоб преобразовать этот блудняк в одно умножение.
Все что тебе надо - получить "value = analogRead(analogInput);" и умножить на константу. И весь флоат идет лесом, получается элементарная математика с фиксир. точкой. Константу брать умноженную на круглое значение (10, 100, 1000), чтоб не потерять соотв. десятые, сотые, тысячные доли.
Дерзай :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:11 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dmitry__ писал(а):
A минимальное "0" будем учитывать, или цифры начинаются с "1".

а 1/1024 сильно от 0 отличается в данном случае? :shock:

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:16 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Извени, ты бредишь :)
(значение +1) /1024 не равно: значение/1023


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:22 
Не в сети
Аватара пользователя

Зарегистрирован: 20 янв 2014, 22:44
Сообщения: 431
Откуда: 21RU
прог. языки: Assembler, Basic, Arduino IDE, PHP и др.
ФИО: Андрей С
Во флоате все равны!

_________________
3D Expo 2014 Moskow 23-25.10.2014


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:23 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dmitry__ писал(а):
Извени, ты бредишь :)
(значение +1) /1024 не равно: значение/1023
я и не писал что равно.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:27 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
avr123.nm.ru писал(а):
я и не писал что равно.

1024 - константа разрядной сетки 2-го кода, его нельзя менять на другие числа.
Да, 1/1024 не сильно отличается от нуля, а в верхнем диапазоне значений будет набегать ошибка. Все, проехали, 2^10 и никаких гвоздей :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:28 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Я и предлагал делить на 1024.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 18:34 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Ну, ты и предлагал +1 к значению ацп, какбэ круто :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 20:58 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
а так же надо измерить омметром используемые резисторы, и вписать в программу реальные сопротивления, потому что они будут чуток не паспортные, ты ведь не суперточные 0.1% резисторы используешь?
так же надо выяснить какое там реально напряжение, ибо 1.1V это в идеале, а в реале у всех чуток разное.

вот там есть про точность измерений http://hacking.majenko.co.uk/making-acc ... on-arduino

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерить напряжение аккумулятора
СообщениеДобавлено: 22 апр 2014, 22:28 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Myp писал(а):
вот там есть про точность измерений

гыг, вон это откуда пошло /1023 :D
Пипец.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO