Arduino as a V-A multimeter

I was also thinking of using a sinple amplifier circuit to amplify the volatge across the shunt resistor so I can use a smaller shunt and still maintain a high level of granularity in my measurement. Any thoughts?

Depends if your shunt is high-side or in the ground-return. A high gain opamp circuit will work in the latter case, but then ground isn't quite at ground because of the voltage drop across the shunt. There are modules that can do voltage and high-side current sensing/amplification yielding outputs in the 0--5V range.

I was wondering if an amplifier would work with a high side shunt or not. I don't know of anything that would work on the high side but have not had a chance to look yet.

High side shunt, you could set up a differential amplifier and feed that output to the arduino.
Make sure the voltages on the shunt are within the range of your opamp +/-supply or use voltage divider to get them down.
Or measure both sides separately and just do the math.

Hey,

Well, i don't know what is the range of current and voltage you're looking for measurement. There is a simple way out though-

Go for an I2C measurement IC. I have worked on Texas instruments INA219 before with arduino fio. It works perfectly well, though for voltage till 26V and current 4Amps. Best part is, you need to make only 4 connections(Data, clock, Vcc and ground. I2c code is also simple to work out.
Here's a good tutorial to start with I2c
http://naneau.nl/2009/01/18/arduino-and-an-i2c-temperature-sensor/

Good luck.

AWESOME that is exactly what I am looking for, I just put some of those INA219 chips on order to play around with. Will need to work out the code. Although I know the basics of C++ haven't done much with Arduino code yet. Will need to figure out the bus code and what not, should be fun.

I am working on a load simulator for solar panel testing. The load simulator circuit is pretty straightforward and has been discussed in literature:

http://www.springerlink.com/content/778809q969528p42/

The hard part is measuring 0-100V on the Arduino accurately for the panel voltage and current (I am using a current shunt). I was thinking of using a simple voltage divider circuit, however I am afraid I will not get good accuracy. Connecting the voltage divider to a digital Arduino pin (0-5V) means that I would need a tolerance of about 0.05V on the digital pin to achieve single volt accuracy. Is this feasible on the Arduino?

Edit: The end goal here is to simultaneously measure current and voltage during a load sweep and write the values to a memory card. This would be a portable handheld device

Arduino accuracy is 0.0048V/bit with a 0 to 5V input into an Analog pin (not digital).
So 100/20 = 5V = a reading of 1023
Thus 1 bit = 0.0048 * 20 = 0.098V.

However, if your arduino is a handheld device, that means your ground is not really ground - and if you connect across the shunt with arduin ground on 1 side side and the Analog input on the other, you should be seeing much less voltage.
For example, this 10mOhm shunt available at dipmicro.com. You would have to put 500A thru it to see a 5V across it (5V/0.01ohm = 500).
How many amps are you expecting?

My mistake - that would be an analog pin.

I'd like to test panels that generate anywhere from 0.1A to 6A, and eventually panels around 10A.

I have two working PCBs for the PSU. Now I'm trying to make LCDs which will display the voltage and the current. I'm going to use Arduino for measurment and voltage deviders. My question is, could I use only one Arduino board to measure voltage and current from both PCBs (because of the common ground, which I should use for the Arduino board)?

Morpheus,
This thread has been all over the place, so I can't say.
If you are only measuring Voltages between Gnd & a positive level, then I would think you would want the Grounds of both boards connected together also to the arduino ground.
If you are measuring voltage across a shunt resistor like a floating multimeter, then you may not want to be connected to ground at all.

CrossRoads:
Morpheus,
This thread has been all over the place, so I can't say.
If you are only measuring Voltages between Gnd & a positive level, then I would think you would want the Grounds of both boards connected together also to the arduino ground.
If you are measuring voltage across a shunt resistor like a floating multimeter, then you may not want to be connected to ground at all.

I want to measure voltage and current, so I'll use a shunt resistor. But how I can measure like a floating multimeter, without connect the ground to the Arduino?

When you use a multimeter, do you connect anything but the 2 leads?
Use the Arduino the same way.
Gnd to the lower voltage, and Analog in to the higher voltage.
DO NOT SWAP - Ground must always be lower, or you will damage the analog pin.

Hello everyone,
I'm a completely newbie about Ardunio but I find this discussion really interesting...

I'm working in a lab on a study about the corrosion of pipes and I want to build a data logger with Arduino.
Why? Because it's cheaper, smaller, more flexible (and more fun to do) than the data logger I'm using.

My measurement are just made with an electrode (reference electrode) every x second (i.e. every 5 seconds or 1 minute or whatever i set) then logged in a csv file. The measurement are mV.

The csv is really simple: Elapsed time - mV from Electr. 1 - mV from Electr. 2 - .... - mV from Electr. X.

something like this:

Uploaded with ImageShack.us

Is it possible to do??? And how?? (like for example, to change the frequency of data logging).
Thanks :slight_smile:

What's the range of your signals?
Arduiono straight up has 10 bit ADC with 1 LSB limit of 5V/1024 or 1.1V/1024 if using the internal reference.
If you'l need better precision, then adding an external ADC will be needed.
A standard Uno type Arduino has 6 channels of analog going into a MUX for reading one at a time.

A 1284 based board has 2 more inputs, into the same mux.
A board like my "Bobuino" is 1284 based, also has and SD card for logging, and a Real Time Clock for recording the time of the samples with 1 second accuracy.
And you can add an ADCshield if you need more precision.

Writing the code to check for a minute passing, taking the 6-8 whatevever samples, and storing to the SD card would not be that difficult.

The range is more or less from -2 mV to +2 mV...

You're going to need to amplify it then to use it with Arduino, gain of 1000 and some offset too, end up with 2V with no input, +/-2V from there.

I have no idea how to do and assemble the whole thing...

Here's what you're after.
One input will be your signal, the other input will provide the DC offset.

You can do the equation in excel, makes it easy to adjust the resistors & play some, see what results you will get with standard resistor values.

http://masteringelectronicsdesign.com/how-to-derive-the-summing-amplifier-transfer-function/

Thank you for your patience but I really don't understand anything about electronics... :blush:

I really need a step by step tutorial... Please...