цифровая электроника
вычислительная техника
встраиваемые системы

 

Ваттметр на Arduino своими руками

Автор: Mike(admin) от 16-12-2016, 10:45

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


Ваттметр на Arduino своими руками

Благодаря широкому распространению и разносторонней поддержке платы Arduino создание ваттметра на ее основе не составит особого труда. Принцип работы и подключение в данном случае схожи с примером создания амперметра на Arduino.


Здесь также в качестве датчика выступает шунтирующий резистор, через который протекает ток. С шунта выходят два дополнительных провода, подключаемые к двум каналам АЦП платы Arduino. Разница напряжений с этих двух линий пропорциональна проходящему через резистор электрическому току. Ток можно рассчитать по формуле I = (V2 – V1) / R. Поскольку мощность представляет собой произведение напряжения и тока, то P = V2 * I. Таким образом, благодаря простой формуле можно из амперметра сделать ваттметр и измерять потребляемую мощность.


Схема подключения и код (скетч для Arduino) представлены ниже.


Ваттметр на Arduino своими руками


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


int adc_value = 0;

int voltage_peak_value = 0;

float voltage_average_value = 0;

float dc_voltage_V0 = 0;

float ac_voltage_V0 = 0;

float dc_voltage_V1 = 0;

float ac_voltage_V1 = 0;

float dc_current_I0 = 0;

float ac_current_I0 = 0;

float dc_power = 0;

float ac_power = 0;

unsigned long resistance;

unsigned long sample_count = 0;

 

void setup()

{

  lcd.begin(16, 2);

  lcd.print("    Wattmeter    ");

  pinMode(13, OUTPUT);

}

 

void loop()

{

 

//=============================== НАПРЯЖЕНИЕ ========================================

 

  voltage_peak_value = 0;

  for(sample_count = 0; sample_count < 5000; sample_count ++)

  {

      adc_value = analogRead(A0);

      if(voltage_peak_value < adc_value)

          voltage_peak_value = adc_value;

      else;

      delayMicroseconds(10);

  }

 

  dc_voltage_V0 = voltage_peak_value * 0.00488;

  ac_voltage_V0 = dc_voltage_V0 / 1.414;

 

   

//================================ ТОК ========================================

 

  voltage_peak_value = 0;

  for(sample_count = 0; sample_count < 5000; sample_count ++)

  {

      adc_value = analogRead(A2);

      if(voltage_peak_value < adc_value)

          voltage_peak_value = adc_value;

      else;

      delayMicroseconds(10);

  }

 

  dc_voltage_V1 = voltage_peak_value * 0.00488;

  ac_voltage_V1 = dc_voltage_V1 / 1.414;

 

  dc_current_I0 = (dc_voltage_V1 - dc_voltage_V0) * 100;

  ac_current_I0 = (ac_voltage_V1 - ac_voltage_V0) * 100;

 

  //================================= МОЩНОСТЬ =========================================

 

  dc_power = dc_current_I0 * dc_voltage_V1;

  ac_power = ac_current_I0 * ac_voltage_V1; 

 

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print(dc_power);

  lcd.print(" mW"); 

 
 //=================================================================================

  delay(1000);   

}



© digitrode.ru


Теги: Arduino, ваттметр




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

Комментарии:

Оставить комментарий
Цитата
  • Валерий

  • 4 ноября 2017 14:20
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
А обязательно должна использоваться именно плата Arduino pro mini? Будет ли всё работать на Arduino Uno, например?
Цитата
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 28.08.2013
  • Статус: Пользователь offline
  • Комментариев: 15
  • Публикаций: 1639
^
Цитата: Валерий
А обязательно должна использоваться именно плата Arduino pro mini? Будет ли всё работать на Arduino Uno, например?


Не обязательно. Почти любая другая плата Arduino подойдет для данного проекта, главное чтобы напряжение на выводах соответствовало.
Цитата
  • Валерий

  • 20 ноября 2017 18:53
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
У Вас нет фотографии собранной схемы в более высоком разрешении? Хотелось бы её увидеть дабы лучше понять принцип подключения.

И если дисплей с припаянным I2C модулем, можно ли его подключать так, как показано у Вас на схеме?

напрямую, без использования макетной платы?