Полезная информация


avatar_xxoma

Ваттметр/велокомп на ардуино

Автор xxoma, 10 Апр. 2014 в 17:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

adast123

[user]xxoma[/user], чем измерял напряжение в своем ваттметре, и как измерял сопротивление?

Grendel

[user]adast123[/user], Отвечу за топикстартера, т.к. вопрос на поверхности :-).
Напряжение меряет микроконтроллер Arduino. Это написано в самом первом посте. МК это процессор с необходимым набором некоторых приборов и все в одном корпусе. В данном случае, мы все используем АЦП - аналого-цифровой преобразователь. Он 10 битный, т.е. представляет входной сигнал (вольты) в виде цифрового кода от 0 до 1023. Используя 2 формулы из 6 класса средней школы можно узнать измеренное напряжение. Вот вам статейка на эту тему для самообразования. Одно ограничение - наш МК очень боится переполюсовки и напряжения выше 5В на входе. Это лечится использованием делителя напряжения. Например так
Для подсчета мощности нужно еще и ток померить.
Не понятно о каком сопротивлении идет речь, но всегда оно написано на резисторе, для точности можно его перемерить мультиметром :-).

Grendel

Кстати, ни кто про круизконтроль не заморачивался ? Для моей конфиги не актуально, а у кого батарея посильнее, то интересно будет. Принцип не сложный.
Ручка газа выдает те же 0-5В. Можно через ШИМ без проблем генерировать такой сигнал.
Мониторим ручку и при нажатии кнопки КК, не реагируем 1-2 секунды на изменение вольтажа газа, но контролируем тормоза (лог 0 или 1). Сразу же генерируем такой же ШИМ сигнал на контакт газа.
Через 2 секунды удерживаем выходной сигнал на уровне измеренного до нажатия кнопки, но уже следим за изменением потенциала ручки и естественно тормозов.
При появлении/изменении любого из сигналов скидываем выход круизконтроля в ноль.
А можно вообще сразу управлять газом через Ардуино.

Кулибин

#165
Не планируете ток рекуперации учитывать?? То есть сколько обратно закачалось в батарею??
И какая точность датчика тока вашего?
Либо мне LA 50-P купить либо этот поставить что у вас стоит.
LA 50-P дорогой но очень точный.

Grendel

[user]18f46k20[/user], датчики на эффекте Холла быстро хватают гистерезис на работе с большими токами и начинает плыть ноль. Уже намучался с этой тенденцией. Хочу поменять ACS712T на более устойчивый ACS758.

Кулибин

Я заказал ACS756SCA-100B-PFF-T. посмотрим как себя поведёт. Хотя LA 25-P работал идеально со смещением, но не замерял обратный ток, я хочу рекуперацию тоже считать. Но я его не правильно подключал. Сейчас подсказали как его грамотно подключить и может после доработки будет всё супер, а точность его была до 0.03 А. Линейность идеальная. Только он должен питаться 2-х полярным питанием а я его однополярным питал со смещением резистором, скорее всего из-за этого обратные токи не учитывал. Когда убрал смещение у него начались нелинейные ошибки. 20А на 2-3 ампер плавал и врал а на 50 на 4 А.
В общем впервые я с такими делами сталкиваюсь, вот на токовых резюках и операционнике я как то собирал амперметр, показывал так себе +- 0.1А но в обе стороны работал.

Grendel

[user]xxoma[/user], кстати, походу надо вешать все кнопки и геркон через резисторы на один аналоговый вход. Так удобнее детектировать зажатие кнопки и срабатывание геркона.

xxoma

[user]Grendel[/user], а геркон на аналоговый вход зачем?)
Kellys Blog, Bafang 750W 48V bbs02, 48V 23Ah.

Ghozt

Есть проблема: спидометр при наборе скорости показывает погоду на Марсе. Когда же вел идет накатом - все нормально. Думал на наводки от провода, идущего в МК - перенес геркон на другую сторону колеса, проблема осталась. Пытался играться со значением period в void_speed, ставил 30, 50, 70, 100 - все без толку. При отсоединении геркона от платы при наборе скорости стабильно показывает 0. Т.е. проблема все же в герконе/наводках на провод. Есть у кого какие-нибудь мысли, как вылечить подобное?

xxoma

[user]Ghozt[/user], А фильтр ставили? Конденсатор керамический на вывод который идет к геркону?
Kellys Blog, Bafang 750W 48V bbs02, 48V 23Ah.

Ghozt

#172
Номинал какой?
UPD: поставил 0,047мкФ, помогло

xxoma

#173
Кому влом самому делать плату, паять смд и тд:





Готовый ватт метр без питания и датчика тока(как подключать схема выше) 25$. На схеме гасящий резистор ставить мощностью 2Вт, сопротивление зависит от того какое напряжение батареи. Если есть дисишка на 12В можно обойтись без резистора. і2с разведен на будущее  :-) Прошивку можно обновлять через UART(pl2303 например). Новые прошивки буду выкладывать в этой теме. Отпралю по Украине Новой почтой.
Kellys Blog, Bafang 750W 48V bbs02, 48V 23Ah.

clawham

Привет!
Разработчику вопрос - есть ли у Вашей атмеги лишнее место?
Вижу у Вас выведен уарт наружу. Может допишете небольшой кусочек кода для визуализации данных с моей бмс?

Нужно принимать по уарту на 9600 скорости посылку

I:-0.837,W:-32.8,



#1= 3.910 3.910 3.915 3.916 3.920 3.917 3.918 3.917 3.920 3.917  0000000000 DSG+ CHG+ T=21.5 3.910 3.922

#2= 3.921 3.920 3.922 3.915 3.918 3.912 3.916 3.916 3.917 3.910  0000000000 DSG+ CHG+ T=48.3 3.910 3.920



Первая строка вас не интересует а остальные - поячеечные напруги, потом 10 нулей это флаги балансировки ну и DSG+ CHG+ разрешение разряда и заряда... когда запрещено там минус.

Расшифровывается оно достаточно просто из строки

unsigned char str_a;
         int  str_b[10];
         int  str_b1[10];
         float str_b2=0;

a=sscanf(RS+cp, "#%1d= %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d %1d.%3d  DS", &b,
                &str_b[0], &str_b1[0], &str_b[1], &str_b1[1], &str_b[2], &str_b1[2], &str_b[3], &str_b1[3], &str_b[4], &str_b1[4],
                &str_b[5], &str_b1[5], &str_b[6], &str_b1[6], &str_b[7], &str_b1[7], &str_b[8], &str_b1[8], &str_b[9], &str_b1[9]);
if(a>=21)
        {
            for(a=0;a<10;a++)
            {
                z = str_b1[a];
                z = z / 1000.0;
                z = z + str_b[a];
                if((z>1)&&(z<5))
                {
                    if(z>tmp_StringMax)
                        tmp_StringMax = z;
                    if(tmp_StringMin>z)
                        tmp_StringMin = z;
                }
            }       


ну тут я мин и макс ищу но можно складывать в массив флоатов или интов(всеравно чисел больше 8000 нет) ну а дальше показать хотябы номер и напряжение самой минимальной ячейки вообще за поездку и на текущий момент, общую дельту по батарее, общую напругу батареи и процент заряда ну и так далее. Уже несколько человек попросили "допилить" а у меня ваших исходников нету. Вот теперь у Вас есть мои :) Эти строки кидаются в компорт ежесекундно. Вроде если не рисовать гистограммы то не много места займёт.
1)8FUN SWXK 250w24V@17A48V 13S4P LGD1, China kontr
3)MXUS 3000 @90A80V LiFePo 20Ah 25S, Nucular 12F
Telegram @clawham

xxoma

[user]clawham[/user], Привет! Думаю это можно прикрутить. А ток ваша бмс измеряет? Если бы и ток по uart передавала то можно  было бы обойтись без лишнего датчика тока. Запилил бы отдельную прошивку для работы с вашей бмс.
Kellys Blog, Bafang 750W 48V bbs02, 48V 23Ah.

batson

Самоходный аппарат из нержавейки: нержавеющий чоботар, инфинеон 12, MXUS 1000

xxoma

user]batson[/user], почему закрытые?) Я ж дал исходник основы, допишите и выложите свою, открытую  :pardon: Только вот многие допиливают под себя а выложили исходники только двое  :-)
Kellys Blog, Bafang 750W 48V bbs02, 48V 23Ah.

batson

это на совести тех кто не выложил  :kidding:
Самоходный аппарат из нержавейки: нержавеющий чоботар, инфинеон 12, MXUS 1000

clawham

Ну дык первая же платка ежесекундно и кидает строку

I:-0.837,W:-32.8,

собственно это ток. минус - радряд + - заряд. пока я особо этим не занимался но можно достичь нормальной точности. да и показания на больших токах сходятся..это у неё в околонулевой области проблемы.

Вот пример файла который просто лог всего что в помпорту делается

https://www.dropbox.com/s/f3da1x5idxilj5z/log_2015-04-02%2014-03-34.txt?dl=0
1)8FUN SWXK 250w24V@17A48V 13S4P LGD1, China kontr
3)MXUS 3000 @90A80V LiFePo 20Ah 25S, Nucular 12F
Telegram @clawham