Ac voltage curent monitor

Hi
recently i had one problem with a 3 phase induction motor that time to time didn't work properly and so i had to spend half the day to take some measurements when the problem going to appeared again

so i thought to build a pcb with an arduino pro mini and i2c oled screen + sd card r/w to measure the current and voltage of each Line in the motor (and save them to a sd card )

For the current i will use three Allegro ACS758 Current Sensors (i have used them before for some of my projects

s-l300.jpg

for the Voltage monitor the easiest way would be to use three Single Phase Voltage Sensor - AC Voltage Transformer Module for Arduino (ZMPT101B)

and for input connecting to each of them one line with the Natural line (these modules can work as they say up to 250v so in a 3 phase a connection between one line and natural will give 220v ac

what if i would like to take a voltage measure (380v) between the 3 phase lines?

are any better solutions or devices that i could use instead of the ZMPT101B ?

thanks in advance

ps: in my country we use 3phase 380v / single phase 220v Ac - 50hz

s-l300.jpg

Expect unexpected voltage and current readings when you turn the motor on.

Paul

yes i know that.. it is something i take in account even when i take measurements manually with my multi-meter .

As the motor works most of the time from 5 seconds minimum til 30 seconds maximum my goal is to take in account readings from the time after the first 1-2 seconds of motors start up

What do yo expect to learn? A three phase motor that does not start when mains is applied is either mechanically overloaded or defective. There is really nothing to learn from logging current at start which will be anywhere from seven to ten times the full load current, depending upon motor design.

The only safe way to sense current at 380/400 vac is with a current transformer.

what i am expecting to learn is to check if all lines of the motors draw the same current and if the draw the same voltage..

i recently i experienced a motor time to time (once every 50+) starting very slow and then running at normal speed (like if it was running from vfd)

so i had to be there all day to wait when it will make the same problem in order to measure what was the problem... to be sure that was from the motor or not.

after i managed to take readings (both current / voltage ) of each line when the problem occurred i find out that was not motors problem...
in one line was not drawing current and the voltage was the half of the nominal

two of the relays that controlled the motion of the motor had some defected contacts and needed to replace them.

So my goal is to make a device that i would connect to the motor lines to inspect and write readings... how many current are drawing and how many voltage so i can diagnose faster what is the problem...

I don't see why you couldn't use a voltage divider (R1=36k,R2=65k) to drop the 380V to <250V.
The current would be a little over 5mA through the voltage divider. At 380V, the power dissipation
would be about 2.2W so 3W resistors would work.

Do not use droppers as proposed ! You must be isolated from mains voltages !! Current and voltage transformers are needed . You will end up costing more than the motor and need to modify its wiring .

I too can’t see any benefit - I’d look at the motor condition, its load , winding insulation , resistance of the windings .
Also the starter , thermal trip etc , the power supply etc . Sounds like a simple overload .

You can quickly put a clamp on ammeter to check the loading on the motor. By the time you’ve built and tested something , the motor will have died .

Playing with this stuff you need to be suitably competent , think I’d advise against this project .

hammy:
Do not use droppers as proposed ! You must be isolated from mains voltages !! Current and voltage transformers are needed . You will end up costing more than the motor and need to modify its wiring .

I too can’t see any benefit - I’d look at the motor condition, its load , winding insulation , resistance of the windings .
Also the starter , thermal trip etc , the power supply etc . Sounds like a simple overload .

You can quickly put a clamp on ammeter to check the loading on the motor. By the time you’ve built and tested something , the motor will have died .

Playing with this stuff you need to be suitably competent , think I’d advise against this project .

thanks for your reply...
as i mentioned i have found the problem but had to spend lot of time there to wait to take the measurements that is why i want to make the device to monitor the voltage and current .

as i mention the problem was not from the motor (most of the time it is). The Contact relay that was driving the motor had one pair with damaged/burned contacts and so in that line couldnt deliver the right amount of current to the motor and that is why time to time was starting like that..

I find this site : Measure AC Voltage with Arduino - AC Voltmeter - SIMPLE PROJECTS

that has a simple instructions about building a simple ac voltage meter based in arduino

i tried it without the lcd screen

and used this code (i have changed the code from the site in order to take the reading in my serial monitor)

/*************************************************************************

   AC Voltmeter with Arduino.
   This is a free software with NO WARRANTY.
   USE AT YOUR OWN RISK!
   https://simple-circuit.com/

 ************************************************************************/

//#include <LiquidCrystal.h>    // include Arduino LCD library

// LCD module connections (RS, E, D4, D5, D6, D7)
//LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

void setup(void) {
  //  lcd.begin(16, 2);           // set up the LCD's number of columns and rows
  //  lcd.setCursor(0, 0);
  //  lcd.print("RMS Voltage:");
  Serial.begin(9600);// initialize serial monitor
  analogReference(INTERNAL);  // set ADC positive reference voltage to 1.1V (internal)
}

// get maximum reading value
uint16_t get_max() {
  uint16_t max_v = 0;
  for (uint8_t i = 0; i < 100; i++) {
    uint16_t r = analogRead(A0);  // read from analog channel 3 (A3)
    if (max_v < r) max_v = r;
    delayMicroseconds(200);
  }
  return max_v;
}

// main loop
void loop() {

  char buf[10];
  // get amplitude (maximum - or peak value)
  uint32_t v = get_max();
  // get actual voltage (ADC voltage reference = 1.1V)
  v = v * 1100 / 1023;
  // calculate the RMS value ( = peak/√2 )
  v /= sqrt(2);

  sprintf(buf, "%03u Volts", v);
  //  lcd.setCursor(0, 1);
  //  lcd.print(buf);
  Serial.println(buf);
  delay(100);

}

// end of code

My problem is that when i use my multi-meter (without connecting the arduino in the circuit) i can get a reading of 0.200V

when i connecting the arduino (ground) then my reading become zero

also in the serial monitor i am getting 0

what am i doing wrong ? i suppose something is wrong with the Ground connections

(i am using an arduino pro mini and it is powered on from serial usb cable in my pc)

Did the motor relay have any arc- suppression
circuit ?

I thought you were using the AC Transformer
module.

raschemmel:
Did the motor relay have any arc- suppression
circuit ?

as i can recall from my memory no it hadn't . It is an old control panel 30 years old +
is a lift / elevator control panel and drives a 7.5kw motor (so it has high torque start up)

raschemmel:
RC Networks, RC Circuit, RC filter - Resistor Capacitor Networks

I thought you were using the AC Transformer
module.

i have order the modules so i am waiting to come to check them meanwhile i am searching and for other solutions as the above one (with voltage divider)

Differential voltage measurement is tge preferred way to measure ac.

You can have two voltage dividers but they
are used for two analog inputs (one to each
side of the ac). Subtract one from the other.
Arduino GND does NOT go to either side of the AC.
It is only used for the voltage dividers.
Did you calculate the power dissipation
of the resistors ?

caslor:
for the Voltage monitor the easiest way would be to use three Single Phase Voltage Sensor - AC Voltage Transformer Module for Arduino (ZMPT101B)

and for input connecting to each of them one line with the Natural line (these modules can work as they say up to 250v so in a 3 phase a connection between one line and natural will give 220v ac

In a fault condition the neutral voltage could be very different, so the 250V rating isn't good enough for 3-phase measurements. 415V is the normal rating for 3-phase equipment, ie inter-phase maximum.

So until now i have made some breadboard prototypes for these cases (and worked)

Line to Neutral Voltage

Line to Line Voltage (just 2 lines only)

3 Lines to Neutral Voltage

My problem is how to connect the lines to Arduino in order to take readings as Line to Line Voltage (3 phases) without blow up my Arduino.

any thoughts ?

Ok i thought to make my connection like this in order to get the line to line voltage from the 3 phase line (adding a diode to negative side in 2 phases )

Should i test it next time i will be in a 3 phase line ? or probably will make a KaBOOM! in my Arduino and maybe some blowing fuse ?