Request for Help with Creating a Galvanically Isolated Voltage Measurement Circuit with Arduino

Hi,
I would greatly appreciate it if anyone has any schematics or information related to a circuit that can measure a voltage range of 0-300V with a high frequency of up to 10kHz. It is important that the circuit is fully galvanically isolated from the Arduino. Does anyone have any ideas on how to create such a circuit? Also, the voltage divider should have a ratio of 50:1.

Thank you

You will need some sort of ADC, with sampling rate higher than 20 kHz. You need to specify the voltage measurement resolution to make a selection.

To galvanically isolate the measurement from the Arduino, one approach is to use a voltage to frequency converter. Which, incidentally, functions as an ADC.

The resulting pulse train can be transmitted via an optoisolator to the Arduino, and captured using the function pulseIn() for example.

Analog Devices, among others, has a selection of voltage to frequency ICs..

For galvanically isolation you have several options:

  • a transformer (down with voltage, e.g. your ratio 50:1) - but you need a rectifier to convert AC to DC for MCU input
  • an opto-coupler: but such one is more digital, as "low" and "high", not really an analog sensor for high voltages: ATT: LED is driven by high voltage - you have to limit the current for LED in coupler
  • a hall sensor, a current sensor based on magnetic flux (but might need to see a high current on the high voltage), a sensor which measures current (not voltage)!

Not really clear what do you want to do:

  • 10 KHz - Why? Is the AC you want to measure not just 50 Hz (EU) or 60 Hz (US)?
  • do you want to measure the voltage?
    very tricky to do as analog and to decouple high voltage from low MCU voltage - what is THE linear voltage sensor... do you need (there is nothing linear)?
  • do you want to measure the current (drained) on high voltage side (convert current into a voltage)?

BTW: a voltage range 0...300V with a ratio 50:1 does not make so much sense: a low voltage will be so low, that you cannot measure or you will get just noise from sensor itself. Consider your ratio 50:1 --> 300V / 50 = 6V AC (effective)! And after rectification (square-root 2): 6V * 1.41= 8.46V - still too large as an MCU input!.
So, assuming max. 3V3 for MCU, after rectification: for 300V you need a ratio as: 128.18:1

Unclear specifications, e.g. voltage range you want to measure, linearity (analog signal) or not, a voltage or a current?
Also: measuring an AC (not DC) but MCU needs DC (or an analog signal with GND reference)...?
And if source is DC - the transformer approach is obsolete!

If you want to have a digital signal, such as "high voltage is there or not" - an optocoupler will do the job. For measuring the analog voltage, is it 200 or 220V - and it is AC - a transformer could do (as long as the frequency remains 50 or 60 Hz).

If the high voltage varies also in frequency - so non-linear...
If you want to sample a 50 or 60 Hz with 10 KHz - up to you doing on the MCU (e.g. after transformer + rectifier and using ADC).

Could you elaborate more what do you want to do...? Thank you.

Hi, Thanks for your reply
@tjaekel
The purpose of this project is to measure the voltage of the Plasma Cutter during cutting in order to create a Torch Height Controller. It is known that the voltage is variable and has a high frequency. For instance, if the "Set Voltage" in the arduino is 120V and the Plasma Cutter Voltage is 121V, the uC should give a voltage at output for "High," and this signal is sent to a CNC Breakout Board to raise the Z axis, and vice versa.

The challenging part is to measure the voltage and be fully isolated to prevent interference from noise. In the attachment, there are some photos of a THC controller with Arduino, but I cannot understand how it measures the voltage. When I simulated this circuit in Proteus, the output, at the input of the optocoupler, showed a voltage variation of only 0.6 - 0.8V.
forget about the 50:1 divider
p.s : I found this THC controller while browsing

Hi,
for example, if I used a voltage to frequency converter. How is the output voltage, is it variable depending on the input voltage?

Thanks

The output voltage of the voltage to frequency converter IC is fixed, depending on which IC and how it is powered. You could assume 5V or 3.3V.

The frequency of the output pulses is proportional to the input (measured) voltage.

I understand: thank you.
Let me brainstorm:
The biggest concern is the safety: keep the high voltage away from the user (user interface, control unit).
Even a transformer can be a bad choice: if the distance between the primary and secondary coil is short - sparks can travel from one side to other (transformers do not withstand a high voltage, if not rated for a max. voltage difference).
So, you have "just the option" to decouple via light (or wireless electromagnetic signals, e.g. a magnetic field or even a RF signal, e.g. WiFi, BT, ...).

Let's assume, the "safety" comes by a distance of centimeters between this high voltage board and a low voltage UI device (MCU, GUI, buttons...). Let's have the user board as far away from this high voltage board (in many of centimeters, to make sure).

So, an optical link between both seems to be the best choice.
What about?

  • place a VCO (voltage controlled oscillator) on board and drive a LED (e.g. IR, or even visible)?
  • the voltage changes the LED frequency
  • you can position a photo-sensor, even with distance and measure this frequency - which is a 1:1 relation for the voltage on this board
  • even possible to put a tiny micro-controller on this high-voltage board: let it measure and generate pulses (a frequency) on an LED (e.g. IR).
  • you grab this signal via opto-coupler and measure the frequency, in order to know the voltage in this board
  • or: the tiny micro-controller on this board sends a WiFi, BT signal and you grab it as RF

A full galvanically isolated connection needs something not based on wires (e.g. optical) or with a device which has so much spacing (e.g. a transformer) that high voltages cannot "jump" over the "air gap" (many transformers do not sustain a high voltage, and if so: the distance between the coils is so large that the signal is so weak).

Put a pulsing LED on this board, the frequency is controlled by the voltage. Grab the optical signal (via a photo-receiver with free air distance, or an optical fiber, e.g. the one used for optical S/PDIF, called TOSLINK).
An MCU sitting on this "high voltage domain" can do the voltage measurement, convert into an LED frequency ... just do not touch it when in operation (but it needs still 3V3 from this high voltage domain, the voltages are just not decoupled, but an MCU can work fine there on this high voltage domain).

Just think about to split your system into a "high voltage domain" (never touch) and a "low voltage domain" (safe for humans), connected via a (digital) optical signal.
And convert any analog signal to a digital signal for transmission, e.g. the LED blink frequency is voltage (not any real analog interface like intensity of the LED).

And don't forget how to power the "high voltage" circuit. If it can be done from the DUT then everything can be implemented in this part and only the converted signal (UART, SPI?) has to be transmitted (optically) to the low voltage side.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.