avatar_KolobOkUS

E-metr. Вариант глубокой доработки ваттметра Turnigy Watt Meter 130A

Автор KolobOkUS, 28 Нояб. 2016 в 01:09

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

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

KolobOkUS

          Купленный мной ваттметр TURNIGY PRECISION WATT METER AND POWER ANALYZER 130A

не понравился мне  вот чем:
1. Мельтешение в нижнем левом углу нескольких показаний. Важнейшее для меня - израсходованная энергия аккумулятора. Чтобы ее увидеть, нужно достаточно длительно смотреть на индикатор, пока не появится (мелькнет) нужный параметр.
2. Низкая контрастность и яркость дисплея.
3. Не сохраняет накопленные показания энергии при отключении питания.
4. Не работает корректно с OLED-дисплеем типа WEH001602A Winstar
Ну и еще по мелочи... Например, нет показания температуры двигателя  :-)
     Вот и решил доработать имеющийся ваттметр для собственного удобства и удовольствия  :-D
Поскольку мой китайский приборчик  имел залитый компаундом чип микроконтроллера, а делать новую плату самому не хотелось, решил купить дешевую платку с  ATmega328 микроконтроллером и вложить ее между платами дисплея и измерителя.


В плате измерителя думаю использовать имеющийся на ней стабилизатор питания и шунт.
    Больше года проект доработки находился в состоянии работающего макета. Не было возможности довести его до ума.  :-(

Сейчас приступаю к сборке в единое устройство.  В доработанном  ваттметре будет новый микроконтроллер и одна кнопка управления, которую намерен расположить сбоку, рядом с разъемом внешнего питания.

Что он может

При включении сообщает свое имя (это, как вы понимаете - главное  :-) )


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



Слева вверху текущее напряжение батареи (0...90.0В) (можно сделать и 99.9) Точность 0.1В.
Под ним - израсходованная энергия батареи (до 99.9Ah). Справа- текущий ток батареи и потребляемая мощность.
Мигающая звездочка означает превышение хотя бы одним  из контролируемых параметров
максимальной (минимальной) величины, заданной в настройках.
Если на отображаемом экране не видно, какой параметр вышел за пределы - можно переключить экран. (вот хорошая мысль появилась - сделать этот процесс автоматическим)
Немигающая звездочка означает, что программно разрешен звуковой сигнал аварии (выхода контролируемых параметров за заданные пределы)

Второй экран:

Слева вверху - текущее напряжение батареи.
Под ним - таймер поездки, часы:минуты (две точки мигают с секундным периодом) Таймер поездки работает, пока есть потребление энергии, игнорирует небольшие перерывы (на светофор))
Дальше пошла псевдографика  :-)   
    Е - оставшееся в аккумуляторе энергия (автоматический  сброс при полной зарядке, возможность ручного сброса).
Если оба "бачка" полные - 100% заряда. Когда 50% - верхний "бачок" - пустой, нижний - полный.
Это удобно, чтобы не пропустить точку возврата  :-)       Всего 16 делений индикатора  "топлива в баке"
Правее расположен значок температуры двигателя t и ее графическая интерпретация. Если оба "бочонка" полны - это максимально допустимая температура двигателя (задается программно пользователем из соответствующего меню). При ее превышении вместо верхнего "бочонка" мигает восклицательный знак, звучит противный звуковой сигнал и, если включен другой экран, на котором нет индикации температуры, появляется мигающая звездочка. При 0°С псевдографика отсутствует
Дальше - и так ясно  ;-)

Третий экран:

Слева вверху температура двигателя (вставьте датчик LM35  в мотор). Максимально показываемая температура +125°С
Под ней -  текущий заряд батареи в процентах от максимума (масштабирование автоматическое после однократной ручной установки параметра Emax  в меню установок (см. дальше)).
Правее следует псевдографика: текущие напряжение U и мощность P.  Соответствие значений их  максимальному заполнению настраивается в меню установок. Псевдографика позволяет оценочно контролировать  параметры, когда не требуются точные цифры, или когда обстановка на дороге не позволяет отвлекаться.
В правой части экрана отображается  токбатареи и под ним таймер поездки с двумя мигающими  точками (1 сек).
Точки перестают мигать, когда останавливается таймер поездки (длительное стояние без потери энергии).
Таймер продолжает работу с новым запуском мотора.

Четвертый экран:

Сплошная псевдографика, на любителя (один из них - я)  :-)

"Топливо в баке", напряжение, мощность, температура и таймер поездки с мигающими точками.

Параметры E-meter:

● Максимальное напряжение  - 90В
● Максимальный ток -  60А
● Максимальная температура +125°С
● Максимальное время поездки 10 часов (можно сделать хоть 100)
● Максимальная мощность 5,4кВт
● Максимальная поддерживаемая программой емкость аккумулятора 99А/ч
● Калибровка датчика тока, напряжения, температуры.
● Установка максимальной  емкости аккумулятора, порогов срабатывания аварийных программных датчиков минимального,
    максимального напряжений (установка максимального напряжения для правильной работы  псевдографики),         
    максимально допустимой мощности, максимально допустимой температуры мотора.
● Корректная работа с дисплеем  OLED типа WEH001602A Winstar (режим 4р.) и  HD44780 - совместимыми LCD дисплеями
● Сохранение  значений затраченной в поездке энергии и таймера поездки при отключении E-metr
● Сохранение настроек
● Сохранение  выбранного экрана. При повторном включении E-metr отобразит тот рабочий экран, что был до его выключения
● Возможность сброса звукового сигнала при продолжении действия вызвавшего его события.
● Возможность ручного сброса таймера поездки и показаний энергии в аккумуляторе без отключения ваттметра
● Эффективная цифровая фильтрация сигналов, стабильные показания
● Программно эмулированное повышение разрядности АЦП до 11
● Высокая яркость дисплея (при применении OLED)
● Управление одной кнопкой
● Защита от сбоев и "зависаний" сторожевым таймером
● Язык программирования - Си

Возможны платные услуги по рассылке зашитых плат Pro Mini atmega328

На сегодня пока все. Позже опишу экраны настроек.
Кстати, код - бесплатный! На Си.

[b-b]Исходник, прошивка, симуляция в Proteus. Написано в CVAVR v2.05.0[/b-b]
E_metr v1.3.rar  - новая версия моей сборки (в этой версии не используется внешний VREF=3V. В качестве опоры используется AVCC=5V. Результат порадовал).
Работа по совершенствованию алгоритмов будет продолжена, присоединяйтесь, уважаемые. Прошу не пинать сильно за несовершенство кода, не ставил это целью. Памяти и быстродействия камня вполне хватает и на большее безобразие.

Вопросы, уважаемые!
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

Genadi

У меня есть похожий ваттметр с паленным контролером (индикатор целый). То есть, я могу, например, приобрести данную платку с контролером зацепить к ней мой исправный индикатор, прошить как надо контролер и всё будет работать? Если так, то можете расписать поподробней как это делать? Либо, может уже у вас приобрести уже прошитую и доработанную платку (примерная цена какая)?

spb-e

Очень интересно  :wow: А шунт выносной или так  внутри и оставляете? 
Помогу со сборкой, ремонтом батарейки и прочего...
9II-I82-78-78

KolobOkUS

Цитата: Genadi от 28 Нояб. 2016 в 10:15
я могу, например, приобрести данную платку с контролером зацепить к ней мой исправный индикатор, прошить как надо контролер и всё будет работать? Если так, то можете расписать поподробней как это делать? Либо, может уже у вас приобрести уже прошитую и доработанную платку (примерная цена какая)?
Уважаемый, Вы можете использовать Ваши потроха (ну не собственные же!:) для их реинкарнации, путем установки этой хитрой платки.
Нужно только быть уверенным, что на Вашей плате ваттметра исправен стабилизатор напряжения питания контроллера (+5В), или даже +3В, если у Вас такой, а дисплей на основе контроллера HD44780 (других найти трудно:)
Можете сами прошить, можете заказать у меня, если Вас затруднит сей процесс. Код выложу в ближайшее время.
Есть и симуляция в Протеусе.
Что и как подключать, где размещать - выложу немного позже, после личной проработки этого вопроса, с предоставлением в открытый доступ принципиальной схемы подключения, и фоток самого процесса.
Цена вопроса по отправке жаждущим готовых (прошитых) плат будет определяться известной стоимостью самой платки (около 150 р.), стоимостью доставки (пока не знаю сколько Почта России захочет) и стоимости прошивки (200 р.)
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

spb-e

Очень хочется хороший ваттметр , но с выносным шунтом.
Игрался с Турнигой выносил шунт, но проблема в том что на сигнальных проводах "набегает" погрешность. 
Помогу со сборкой, ремонтом батарейки и прочего...
9II-I82-78-78

KolobOkUS

Цитата: spb-e от 28 Нояб. 2016 в 10:23
А шунт выносной или так  внутри и оставляете?
Шунт родной, внутри так и остается. У меня ваттметр не на руль вынесен, а расположен над контроллером, на наклонной части рамы, что не делает проблем с проводами.

Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

KolobOkUS

Цитата: spb-e от 28 Нояб. 2016 в 11:54
Очень хочется хороший ваттметр , но с выносным шунтом.
Вопрос понятен, но заниматься им не предполагаю. Нет интереса.
Поскольку проект открытый, Вы можете обратится за помощью к местным завсегдатаям, и решить этот личный вопрос, если самому решить не удастся. Вся необходимая информация будет совершенно открыто выложена в этой теме.
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

Genadi

Цитата: KolobOkUS от 28 Нояб. 2016 в 11:49
Нужно только быть уверенным, что на Вашей плате ваттметра исправен стабилизатор напряжения питания контроллера (+5В), или даже +3В, если у Вас такой, а дисплей на основе контроллера HD44780 (других найти трудно:)
Стабилизатор тоже паленый, скорее всего, но то не проблема. Вот вид дисплея со стороны контролера. Тут тока какие-то две плямбы:
Спойлер
ЦитироватьМожете сами прошить, можете заказать у меня, если Вас затруднит сей процесс. Код выложу в ближайшее время.
Есть и симуляция в Протеусе.
Что и как подключать, где размещать - выложу немного позже, после личной проработки этого вопроса, с предоставлением в открытый доступ принципиальной схемы подключения, и фоток самого процесса.
Хорошо, подождём. Спасибо.

acyd

В идеале надо придти к такому - имея сдохщую турнигу/gt починить/прокачать, заменив плату, кому надо экран, кому надо сделать внешний шунт, кнопку, выход на термодатчик. Еще неплохо- выход на вибро моторчик от сотового. Для диагностики перегрева завести в грипсу, как завещал Чупа.
[user]KolobOkUS[/user],  респект!

KolobOkUS

Цитата: Genadi от 28 Нояб. 2016 в 13:28
Вот вид дисплея со стороны контролера. Тут тока какие-то две плямбы:
Похоже у Вас контроллер ST7066U - клон HD44780
Надеюсь, работать будет. Но! Вся проблема в применении 4р режима обмена. Не все клоны в нем работают корректно. Точнее, если использованная библиотека нормально работает в этом режиме с HD44780, то не факт, что все будет пучком с его клонами. Я использовал CVAVR v2.05 и библиотеку alcd.h Поспрашивайте имеющих опыт применения Вашего индикатора с этой библиотекой. Кстати, в просторах интернета у товарищей китайцев нашел противоречивые сведения о Вашем контроллере.
Ваш дисплей
его даташит: контроллер SPLC780D
Тоже Ваш, контроллер ST7066U
Насколько я понимаю, SPLC780D работать с моей программой не будет.
Но!  Все не так плохо! Так как код открытый, Вы сможете использовать нужную Вам библиотеку, в порядке творческого изыскания.  :-)



SPLC780D
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

Genadi

Цитата: KolobOkUS от 28 Нояб. 2016 в 19:05
Но!  Все не так плохо! Так как код открытый, Вы сможете использовать нужную Вам библиотеку, в порядке творческого изыскания.  :-)
Понял, спасибо!  :wow:
Я думаю что проще купить у китайцев нужный индикатор, а всё остальное у Вас.  :-)
Буду следить, тема интересная.

KolobOkUS

Радостная новость для любителей покупок на Ebay.  Только что проверил работу программы с дисплеем YB1602A
Он имеет контроллер SPLC780C и прекрасно работает, как и HD44780 или WS0010 (OLED). Так что заблуждался я на счет SPLC780D. Похоже это прямой клон HD44780. То-то у них последние цифры совпадают
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

KolobOkUS

#12
Продолжу описание E-metr/

Имеется два служебных режима

1. Установка предельных значений и управление сигнализацией
2. Калибровка по току, напряжению, температуре.

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


На дисплее мигает Emax (емкость батареи), остальные  символы светятся непрерывно.
В течении 5 секунд нужно предпринять одно из действий:
                        - выбрать коротким нажатием (0,04-0,4 сек.) требующий корректировке параметр
                        - перейти к корректировке выбранного параметра длинным нажатием (0,6-2,0 сек. )
                        - ничего не предпринимать, если корректировка не требуется (через 5 сек. вас выбросит из меню корректировки и перебросит в рабочий экран).
                                             
                                           Установка параметра: ( на примере Emax)


Emax  необходим  для правильного масштабирования псевдографики по емкости батареи  и для аварийного предупреждения о ее разряде.
                                             Курсор горит под старшим разрядом корректируемой цифры
                                                    - длинное нажатие вызывает переход к коррекции выбранного разряда (выбранный разряд начинает мигать).
                                                             - Коррекция цифры   происходит   короткими нажатиями от  текущего значения с возрастанием на единицу при каждом нажатии  по циклу
                                                                 -  Для перехода к следующему разряду требуется длинное нажатие.
                                                         После завершения  корректировки Emax ждете 5 сек. и вас выбрасывает
на  предыдущий уровень  :-)
На дисплее мигает Umin (минимально допустимое напряжение батареи), остальные  символы светятся непрерывно.


У вас есть 5 сек. для принятия решения (одно из трех):
                        - выбрать коротким нажатием (0,04-0,4 сек.) требующий корректировке параметр
                        - перейти к корректировке выбранного параметра длинным нажатием (0,6-2,0 сек. )
                        - ничего не предпринимать, если корректировка не требуется (через 5 сек. вас выбросит из меню корректировки и перебросит в рабочее окно).   
   
                                                 Установка параметра:   (Umin)


Umin  необходим для правильного масштабирования псевдографики по напряжению батареи и для аварийного предупреждения о разряде батареи.

                                              И так, пока не установите все требуемые вам параметры    :run: :-D     

Umax необходим для правильного масштабирования псевдографики по напряжению батареи.


Pmax необходим для правильного масштабирования псевдографики по  мощности  и для аварийного предупреждения о перегрузке.


Tmax необходим для правильного масштабирования псевдографики по  температуре  и для аварийного предупреждения о перегреве.


SOUND  О, это совсем просто! Вы можете включить этот противный звук, чтобы он доставал вас каждый раз, когда что-то не так пойдет...  :kidding:
Отключить его можно будет из рабочего стола экрана длинным нажатием кнопки (также и включить обратно, если захочется  :laugh:)

Если ваши мучения по установке аварийных параметров завершены, подождите 5 секунд и вас выбросит в меню установок.


А еще через 5 сек. (если вы не передумали что-то еще поправить)  - произойдет загрузка установленных параметров в энергонезависимую память


И вы окажетесь в одном из рабочих экранов ( в том, в котором находились последний раз перед выключением E-metr, то есть в вашем любимом!  :exactly:


На сегодня все.
В следующий раз расскажу о калибровке E-metr
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

KolobOkUS

Выложил обещанный исходник,  готовую прошивку и вообще проект в CVAVR. А так же симуляцию в Proteus. Смотрите в первом сообщении.    Скачать
       Однако, думаю, придется доработать алгоритм коррекции . В нем есть некоторые минусы, связанные с возможностью наломать дров при невнимательной корректировке, когда результатом станут чудовищные значения или их полное отсутствие  :ah: Тем не менее, все работает и по этому я выложил этот вариант кода. Будем считать его начальным, версия 1.0  ;-)
В этом варианте предполагается использование внешнего ИОН 3В и усилителя сигнала токового шунта (60А тока соответствует сигналу  3В). Также, используется 3В диапазон для сигнала температуры и напряжения. Поскольку LM35 имеет чувствительность 10мВ/С, то придется несколько подкорректировать диапазон температуры под 1,25В (Tmax=125°C). Но это можно сделать программно, из меню коррекции.   
       Просто проект долгое время лежал без движения, в виде макета. Отсюда и "макетные" параметры и некоторая забывчивость о реалиях...  :ah:
Хотел вначале полностью изменить алгоритм коррекции, однако, помня о своем обещании в скором времени выложить код, и не зная, как скоро я смогу перелопатить его заново - решил выложить как есть.  А тем временем, займусь его доработкой и "упаковкой" устройства в корпус.
Приветствуются замечания и советы с предложениями.   :wow:
Есть кое что, о чем я забыл, открывая тему. Это необходимость использовать усилитель сигнала шунта. Понадобится низковольтный  Rail-to-Rai ОУ с малыми  шумом и смещением.
Конкретный тип укажу позже. Ну и схему окончательно отлажу и выложу.

А сейчас я опишу существующий алгоритм коррекции

     Коррекция UIT  - (напряжение, ток, температура).


     Для того, чтобы попасть в меню коррекции UIT необходимо длинное нажатие кнопки во время демонстрации приветствия при включении U-metr

     Жмем кнопку

     Короткие нажатия меняют позицию курсора

     Длинное нажатие переводит в режим коррекции выбранной цифры

     При этом она начинает мигать, а курсор гаснет.
Логика работы:
При вхождении в меню коррекции E-metr запоминает текущие значения UIT и отображает их на дисплее в виде "куклы" для коррекции. Зная истинные значения этих параметров, (измерив их прибором), вы "вписываете" их в "куклу", тем самым корректируя прежние показания. Когда коррекция "куклы" по  необходимым параметрам будет вами завершена, E-metr перед выходом в рабочий экран запишет в энергонезависимую память вычисленные дополнительные  коэффициенты коррекции и после перехода в режим измерения применит их.  Важным условием является знание истинного значения каждого из подлежащих   коррекции параметра на момент входа в меню коррекции. Поэтому, чтобы не напутать, лучше корректировать их по одному. Откорректировал один параметр, вышел, зашел в меню коррекции снова и откорректировал следующий. Выход из меню коррекции автоматический через 5 секунд отсутствия нажатий кнопки.
   И так, вам нужно откорректировать показания температуры. Опускаете датчик в кипяток и входите в меню коррекции. Допустим, U-metr показывает 094°C.  Короткими нажатиями подводите курсор к корректируемой цифре и длинным нажатием переходите в режим ее коррекции. Курсор исчезает, а выбранная цифра начинает мигать. Короткими нажатиями корректируете ее значение. 0 меняете на 1 (при попытке в старшем разряде температуры  ввести 2 и больше, число будет скидываться в 0). Потом длинным нажатием переходите к следующему разряду (9). Он начинает мигать и коротким нажатием меняете его на 0. Еще длинное нажатие и переходите на младший разряд (мигает). Короткими нажатиями устанавливаете его в 0. После этого просто ждете 5 секунд и появляется сообщение:

А потом вы видите рабочий экран с откорректированным значением температуры

Вот как то так... /:-)
Есть идея, как изменить алгоритм коррекции, чтобы меньше дергаться и ругаться. Но это позже.
А пока, принимаю ваши предложения.
Если кто посоветует выкинуть ЭТО в ведро - предложите сами лучший вариант.

Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

Genadi

Цитата: KolobOkUS от 02 Дек. 2016 в 02:06
Если кто посоветует выкинуть ЭТО в ведро - предложите сами лучший вариант.
По этому делу вопросов нет. Вроде, всё нормально и понятно.
У меня возможно тупой вопрос, ну или пожелание - возможно ли ввести ещё и спидометр (и всё что связано с пробегом)? Был бы, вообще, полноценный аппарат.  :-)

KolobOkUS

#15
Genadi, конечно возможно! Но это не входит в мои нынешние планы. Может попозже... А поскольку проект открытый, может и кто-то другой дописать код. Меню коррекции дополнить параметром V  или D или L для настройки под свое колесо.
И тогда сразу можно подумать, в каком экране вставить параметр скорости и на какое место. Или создать еще один экран, пятый. С каким наполнением. Предлагайте пока варианты удобной компоновки параметров на экранах
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч

Genadi

Цитата: KolobOkUS от 02 Дек. 2016 в 18:44
Предлагайте пока варианты удобной компоновки параметров на экранах
Ну, для меня  удобно вот такой вариант:
Верхний левый экран - напряжение батареи.
Верхний правый экран - скорость (км\ч).
Нижний левый экран - ток (либо мощность) батареи (можно меняющиеся автоматически экраны через пару секунд)
Нижний правый экран - расход (а.ч) батареи + пробег суточный.
Но это , конечно, на будущее. В данном варианте, пока замечаний нет, ну ещё поизучаю завтра.

KolobOkUS

Я понял, но экранами я называю не место на экране, а сами экраны: первый, второй, третий и т.д. На счет вашего варианта одного из них я согласен, интересно.
Stels 720, Q-128F, LiFePO4 36V 10A/H, KU123, 35км/ч