打印
[Atmel]

DIY DC Amp Volt Watt Meter

[复制链接]
1113|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ddllxxrr 于 2015-3-7 21:20 编辑

In this article, I will use the current monitor based on the ZXCT series IC for measuring current voltage and watts.

Part list:
Arduino-compability board
High side current sense monitor ZXCT1010 (PDF)
0.1R 1W 1% shunt resistor
1K resistor
2.4K resistor
500R Trimmer Potentiometer
Nokia 5110 (optional)
Plastic enclosure

In my task needed measure the load current of not more than 2A, the range of 200 mA to 1.5 A. Load power supply voltage: 12 volts.

Voltage drop across the shunt with a maximum load current of 2A: Vsense = RS * ILOAD, where RS - resistance of the shunt, ILOAD- the load current. Vsense = 0.1 * 2 = 0.2V.

Heat loss in the shunt with a load of 2A amount: PD = I2R = 22 * 0.1 = 0.4 Watts.

IC output current: Iout(max) = Gt x Vsense(max), for ZXCT1010 value Gt is 0.01. Therefore Iout(max) = 0.01 * 0.2 = 0.002 A.

Calculate the resistance at maximum load current of 2A. RG = Vout / Iout = 5 V / 0.002 A = 2500 kOhm. The closest value of the resistor: 2.4K. For given value the output voltage of the IC is: Vout = RG * Iout = 2400 * 0.002 = 4.8 V.

If the resistance RG = 2.4K and the minimum current of load will be 200 mA, the voltage from the IC is: Vout = RG * (Gt * RS * ILOAD) = 2400 * (0.01 * 0.1 *0.2) = 0.48 V. Thus with a load current of 200 mA, the voltage supplied to the ADC is 0.48V, when the load current of 2 A, respectively, 4.8V.

To measure the voltage used voltage divider. To get the output voltage of 4V with 12V input, we use thecalculator voltage divider, divider values to be 1K and 500 Ohms.

Schematic:

The scheme is connected between power supply and the load of the High-side. For package SOT23-5, I used the adapters that are bought on ebay:

Arduino

I used the Arduino Nano v3 and display Nokia 5110:

The output "voltage" of the circuit connect to pin A0 Arduino board. The output "current" of the circuit connect to pin A1 Arduino board.

The assembled device:

#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"
#define VoltPin A0  // Voltage pin
#define CurrPin A1  // Current pin
float kVD = 5;  // Divider Ratio
float kI = 1;   // Current Ratio - value of Rg resistor
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
int VoltageValue;
int CurrentValue;
float voltage;
float current;
void setup()   {
  display.begin();
  display.setContrast(40);
  delay(1000);
  display.clearDisplay();     // clears the screen and buffer
  display.setTextSize(1);     // set text size
  display.setTextColor(BLACK);
  delay(1000);
}
void loop() {
  VoltageValue = analogRead(VoltPin);
  CurrentValue = analogRead(CurrPin);
  voltage = VoltageValue * (5.0 / 1023.0) * kVD;    // voltage calculation
  current = (CurrentValue * (5.0 / 1023.0)) / kI;   // current calculation
   
  display.clearDisplay();              // clears the screen and buffer
  display.setCursor(0,0);
   
  display.print("Voltage=");
  display.println(voltage);
  display.println();
   
  display.print("Current=");
  display.println(current);
  display.println();  
   
  display.print("Power=");
  display.println(current * voltage);  // power calculation
   
  display.display();
   
  delay(500);
}

arduino7.rar (786 Bytes)




相关帖子

沙发
佼佼~~| | 2015-3-8 10:55 | 只看该作者
ZHAN

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6949

帖子

66

粉丝