Community
OpenEnergyMonitor

OpenEnergyMonitor Community

Difference between SCT013 100A and 30A on an Arduino

Tags: #<Tag:0x00007f1be2f81f38>

Hallo

Da ich meine Frage in Englisch nicht erklären kann probiere ich es einmal in Deutsch :slight_smile:
!!! English below !!!

Ich betreibe an einem Arduino MEGA zwei SCT013.
Einen SCT013-000 (100A) und einen SCT013-030 (30A).

Beide hängen an der Zuleitung zu meiner Ölheizung direkt auf der Phase.

Beide sind wie in “How to Build an Arduino Energy Monitor - Measuring Mains Current Only” beschrieben beschalten.

Betrieben wir der Mega mit 5V.
2 x 10k Ohm resistors (or any equal value resistor pair up to 470k Ohm)
1 x 10uF capacitor

Der SCT013-000 wird mit einem “Burden resistor 33 Ohms if supply voltage is 5V” betrieben und der SCT013-030 OHNE “Burden resistor”

Folgend noch die relevanten Teile des Sketches sowie eine Grafana-Grafik.

MEINE Fragen:

  1. Warum bringen die Zwei SCT013 unterschiedliche WERTE ???
  2. Das ist eine 18kW Ölbrenner … was ist das für ein Zahlenwert des Ergebnisses ???

Vielen Dank für eure hilfe im vor hinein.

[Begin Google Translate]
I run two SCT013 on an Arduino MEGA.
An SCT013-000 (100A) and an SCT013-030 (30A).

Both hang on the supply line to my oil heater directly on the phase.

Both are wired as described in “How to Build an Arduino Energy Monitor - Measuring Mains Current Only”.

Let’s run the Mega at 5V.
2 x 10k ohm resistors (or any equal value resistor pair up to 470k ohm)
1 x 10uF capacitor

The SCT013-000 is operated with a “Burden resistor 33 Ohms if supply voltage is 5V” and the SCT013-030 WITHOUT “Burden resistor”

Below are the relevant parts of the sketch and a Grafana graphic.

My questions:

 Why do the two SCT013 bring different VALUES ???
 This is an 18kW oil burner ... what is the numerical value of the result ???

Thank you for your help in advance.
[End Google Translate]

~MondieuX~

#include “EmonLib.h”

EnergyMonitor Emon01; // Instanz erstellen
EnergyMonitor Emon02;

const int EmonPin01 = 1; // Analog Pin 1
const int EmonPin02 = 2; // Analog Pin 2

Emon01.current(EmonPin01, 111.1 ); // 111,1 = 100A
Emon02.current(EmonPin02, 30 ); // 30 = 30A

Im Loop

jede Sekunden
Irms01 = Irms01 + Emon01.calcIrms(1480);
Irms02 = Irms02 + Emon02.calcIrms(1480);

nach 10 sekunden:
Irms01 = Irms01 / 10;
Irms02 = Irms02 / 10;

MQTTClient01.publish( “Pumpe/SCT013000”, dtostrf( Irms01, 7, 4, cLRMSb ) );
MQTTClient01.publish( “Pumpe/SCT013030”, dtostrf( Irms02, 7, 4, cLRMSb ) );

Grafik aus Grafana:

Das ist richtig. Ihre Kalibrierungskonstante für den SCT-013-000 ist jedoch falsch. Die Konstante ist der Strom, der am Arduino-Eingang 1,0 V ergibt. Mit diesem Stromwandler und Lastwiderstand benötigen Sie 60,6
Emon01.current(EmonPin01, 60.6);

Dies gilt auch für den SCT-013-030. Die Konstante ist der Strom, der am Arduino-Eingang 1,0 V ergibt. Sie wissen, dass dies 30 A ist, daher ist die Zahl, die Sie haben (30), korrekt.

111.1 wäre korrekt für einen Lastwiderstand von 18 Ω, dem in unserem emonTx V2 verwendeten Wert.


Your calibration constant for the SCT013-000 is wrong. The constant is the current that would give 1.0 V at the Arduino input. With this current transformer and burden resistor, you must use 60.6.

The same applies to the SCT-013-030. We know that the voltage is 1.0 V for a current of 30 A, therefore the constant 30 is correct.

111.1 was correct for our old emonTx V2 with a 18 Ω burden resistor.