26 April 2014

USB счетчик электроэнергии постоянного тока

Programming
Sandbox
В данной статье представляется разработка USB-счетчика электроэнергии постоянного тока.

image

На основе представленной схемы вольтметра и прошивки микроконтроллера PIC18F2550 была создана USB-программа, которая могла бы считать электроэнергию, для цепи с постоянным сопротивлением. Так как счетчики постоянной энергии редкость и дорого (20-30 тыс. руб. в России и 6-10 тыс. руб. в Китае и Индии) то решили сами сделать счетчик, который подходил бы для наших лабораторных исследований, который в итоге составил цену не дороже 400 руб., по компонентам. Делали счетчик для замеров и сравнения энергии рекуперации в электродвигателях разной конструкции, но одинаковой мощности, также он может быть применим, как измеритель получаемой энергии от ветрогенератора, солнечных батареек и других источников энергии постоянного тока. Написанная программа может считать не только квт*ч, но и вт*ч, вт*с и т.д…

Собранная схема включала делитель напряжения, который одновременно был расчетным сопротивлением (выделено красным)

image

Которое вводилось в USB-программу (выделено красным):

image

Выделено голубым значение множителя напряжения, его перед замерами можно получить по формуле указанной здесь: bit.ly/1oNddey. Либо подобрать по мультиметру, то есть замеряя мультиметром напряжение батарейки, а потом вводить такое значение множителя напряжения, чтобы USB-программа (с помощью нашего счетчика) показывала на этой же батарейке такое же напряжение как на мультиметре.

Величина сопротивления делителя напряжения может быть подобрана как для пропускания больших, так и малых токов. Делитель напряжения еще необходим если мы подаем напряжение больше 5 вольт, больше 5 вольт на микроконтроллер подавать нельзя поэтому нужен делитель напряжения.

Стоит заметить, что схема в Proteus отличается от схемы, которая выполнена в железе. VCC (красненький проводок USB) будет идти не на 1 ногу, а на 20 ногу PICа. Также в схеме для Proteus не нарисованы 8 и 19 нога, в железе 8 или 19 (по выбору) нужно отвести на землю.

image
image

Счетчик, можно улучшить если изменить прошивку микроконтроллера, чтобы микроконтроллер замерял значение тока (с помощью датчика тока) в цепи и сам подавал их в USB-программу, при этом отпадет в ручную вводить значение сопротивление цепи.

image

Чтобы USB-программа работала нужно чтобы был установлен Framework 4.0 или его поздние версии. Если включаем USB-программу на Windows 7 или 8, то нужно её включать, как от Администратора.

USB-программа может обрабатывать неограниченное количество подключаемых счетчиков, для этого нужно выбрать открыть программу и еще раз выбрать по списку вниз HID-совместимое устройство (выделено черным). Устройства будут соответствовать по списку вниз, по порядку включения в компьютер.

image

В USB-программе также можно поставить шумовой порог напряжения (выделено зеленым), который будет считать за 0 вольт все значения не превышающее выбранное для шумового порога в примере указано 0.05 В.

image
Замечено, что в Windows XP, иногда программа может не работать. Для этого нужно очистить журнал событий напротив DC energy meter, как его очистить, и где он находится написано здесь.

Алгоритм USB-программы для расчета энергии постоянного тока:

USB-программа получает измеренное напряжение от микроконтроллера, потом делит на вводимое сопротивление, получается ток. После, измеряемое напряжение умножается на вводимую величину умножителя напряжения, получается реальное напряжение, которое подается на счетчик до делителя. Это реальное напряжение перемножается с током и интегрируется по времени, получается значение энергии.

Ссылка на USB-программу:
yadi.sk/d/CMS6Up4ZJzDYf
Ссылка на исходники USB-программы си#:
github.com/neremin/USB_Voltmeter
Ссылка на симуляцию схемы в Proteus, и на прошивку контроллера PIC для кварца 20 Mhz:
yadi.sk/d/c76mzfURM9PqG
Ссылка на исходники прошивки (asm, c) и прошивка для кварца 4 Mhz:
yadi.sk/d/wA4p7RFjM9Qk2

Разработка USB-программы:
Николай Ерёмин
Ведение проекта:
Юлиан Барышников

Благодарности:

Moty Mizrachi за бескорыстное представление USB-вольтметра на своем сайте, а также советы по переписке.
Роману Веринскому и Виталию Павлову за бескорыстную помощь и советы по пайке и прошивании микроконтроллеров.
Виталию Азарову за бескорыстные советы по формулам и построении схемы для измерения энергии постоянного тока.
Urry за бескорыстную проверку схемы в железе и исправления прошивки на кварц 20 Mhz.
Александре Медяниковой за бескорыстную фотосъемку готовой схемы в железе.
Tags:Си#PICDC energy meterэлектроникажелезоразработкаenergyэнергияDC
Hubs: Programming
+19
26.3k 163
Comments 12
Popular right now
Product Owner: Разработка требований в Agile
December 12, 20209,000 ₽Школа системного анализа
Программирование на языке C (Си)
December 14, 202022,990 ₽Специалист.ру
Системный анализ и Разработка требований в ИТ-проектах
January 4, 202125,000 ₽Школа системного анализа