Millivolts measurement output from Ampere clamp transducer.

Hallo to everybody.

I am trying to measure millivolts from Ampere clamp transducer output.

The clamp is Mashtech MS3300 which measures both DC and AC currents and outputs millivolts DC.

This clamp outputs 1mV Dc for 1A up to 1000mV.
The clamp works fine when connected to multimeter .


When i am trying to read it's output with arduino I get zero readings.

What I am doing is connecting Clamp's black cable to arduino;s ground and red cable to A0 .
I use the vary basic analogueread sketch but the only I get is 0.

Please any suggestions?

Hi, and welcome to the forum.

Are you trying to measure AC or DC. and how many amps.

If DC.
The Arduino, unlike a DMM, can only measure positive voltages.
No reading could mean that DC current in the clamp is going the wrong direction.

If <5Amp.
No reading either. One A/D step with default Aref is ~5mV.
Switch to 1.1volt Aref in void setup(), and you might be able to measure in 1Amp steps.

If AC.
Nothing happens, unless you lift the Arduino input mid-voltage with a voltage divider, add an input cap,
and use code that can read AC.

Thank you for response.

The current I measure is AC.

The Analogue reference is set to INTERVAL 1.1.

The clamp outputs 1 - 1000 mV

So what i have to read with arduino is mV.

I apologise for not undertanding the above part:

"unless you lift the Arduino input mid-voltage with a voltage divider, add an input cap,
and use code that can read AC"

When using your DMM, do you have to set your DMM to DC-volt or AC-volt to measure AC current.

It seems that the clamp outputs a DC volt according to the specs.
Then a simple voltmeter sketch with 1.1volt Aref should work.
Post your code (inside code tags).

To measure AC current i set DMM to DC volt because the output of clamp is DC.

This is the minimum code, I use without conversion to millivolts. Just reading the raw input.

const int analogInPin = A0; 

int sensorValue = 0;       

void setup() {


void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);
  // print the results to the serial monitor:

That should work with currents above 1Amp (~one A/D value per Amp).
How big is the current you're trying to measure.

I measure above 2A. Testing with anther Dmm same time. I thought it may was something wrong with the connection. I can't think something else...