# Trouble understanding shunt resistance for short-circuit current measurement

Discussion in 'General Electronics Discussion' started by Neverthelessified, Nov 9, 2016.

1. ### Neverthelessified

10
0
Nov 9, 2016
Hi all,

I'm trying to measure and log the short-circuit current I_sc of a single solar cell (0.5V-6A) with an Arduino and am having trouble with the setup of the circuit. I'm a beginner with electronics, please take this into account.

Basically this is where I am at:
-I understood that the best way to measure current is to measure voltage drop over a shunt resistance, which is a very small resistance, getting close enough to a short-circuit but still imposing some resistance over which we can measure a voltage drop. This voltage drop, with Ohm's law, gives us I_sc.
-In order to be able to read this small voltage drop, an amplifier must be used. One possibility seems to be the INA219 module. This comes with an internal shunt resistance of 0.1 Ohm. I thought this would make the job easier because I wouldn't need to add a shunt resistance myself. However, I was told that this resistance is way too high for my application. Is this because my voltage is so low to the voltage drop would be too significant? Should I mount an external (smaller) shunt resistance and if yes how?
-In order for the cell not to burn down due to being shorted for a prolonged time, a MOSFET transistor can be used to short the circuit only during the time necessary for the measurement.

My doubts, on top of the bold question within the above paragraph:
- Is this a correct (and the most simple) way to measure short-circuit current with an Arduino?
- Don't the internal resistances of the MOSFET and the solar cell influence the measurements of the short-circuit current?
- If I do need to change the shunt resistance of the module, how can I calculate how large (or how small) this shunt resistance should be?

I'm quite confused here... Simple terms would greatly help me because as said, I have very limited experience with electronics (and probably don't even fully understand the concepts which I described above yet).

Thanks a lot!

2. ### Colin Mitchell

1,417
313
Aug 31, 2014
You really need more than one cell to do what you are trying to do.

3. ### (*steve*)¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥdModerator

25,449
2,809
Jan 21, 2010

Measuring the short circuit current of a solar cell requires the voltage across it be far less than the open circuit voltage.

For a single cell the open circuit voltage well bea little less than the bandgap voltage. Let's say it's 0.55V.

To measure the Isc you need to ensure the voltage falls waaay below this, to perhaps 0.05V. And less is better.

Your arduino measures voltages with 10 bit precision between 0 and 5V. That's gives about 5mV resolution. If you add some noise to this, your best resolution is likely to be no better than 10mV, and that is on a good day with a following breeze (and yeah, I realize that you can improve this with ovrsampling)

So direct measurement of the voltage across a current shunt is not viable as your resolution week be very poor.

One solution is to have multiple cells in series. This is what Colin was saying. However, this won't be much good either unless you have many cells, and that's no good if you're trying to characterize a single cell or to compare cells.

Another option is to change the voltage reference for the arduino ADC. You can change this by changing the voltage on the AREF pin. However reducing this to a really low value (say 0.1V) is going to have noise implications even if you could reduce it to lower than the minimum value of 1.1V

Another option is to amplify the voltage from the sense resistor. If you amplify it by a factor of 100, the voltage range will now change from 0 to 50mV to 0 to 5V, nicely matching the arduino's typical input range. However, this requires you set up an op amp which may be beyond your current comfort zone.

Another option is to use a chip designed especially to measure current. These have a very low voltage overhead, sending the magnetic field produced by the current rather than a voltage drop through a resistor. More importantly they are also very easily obtainable on eBay (and cheap) on boards designed to be used with devices like your arduino. This also means you should be able to find software freely available to read the current leaving little more for you to do than to wire it up correctly. The device you want is called an ACS712. Beware that they are available in several current ranges and you should get one which is no less than the highest current you expect to measure, but not too much higher either.

You can probably tell that I would recommend the last option.

Last edited: Nov 10, 2016
Arouse1973 and Neverthelessified like this.
4. ### (*steve*)¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥdModerator

25,449
2,809
Jan 21, 2010
In addition to this, you need to Google how to make accurate voltage measurements on the arduino. If you don't operate the arduino from a very stable and accurate 5V source (typical sources are no better than 5% accurate) then you need to know how to deal with this or your readings will also be no better than 5% accurate.

Neverthelessified likes this.
5. ### Neverthelessified

10
0
Nov 9, 2016

- Cells in series: Indeed, I cannot use this method because I need to compare cells.
- AREF: Indeed, I was thinking of using the internal resistance of 1.1V, and calibrate it in advance, which gives me better resolution. I needed this anyway in order to measure the open-circuit voltage. I don't know if this resolution would suffice to measure the voltage drop across the shunt resistance.
-ACS712: I had also considered to use the hall-effect based current sensor. However, I would need to get the 20Amp version (since my Isc is expected to be around 6A, which is above the 5A limit of the smaller version). I'm afraid this would also give me a bad resolution. I have been told that the ACS would give me ~450 A/D values spread over 22 Amps, which gives me only ~22 values per Amp. I tried to retrace this information but could only find the following information about sensitivity: 100mV/A (datasheet) .

I would definitely prefer the last option, but it is the bad resolution which drove me to the shunt resistance method. However, from what I understand, I would need to figure out how to use an amplifier in that case. correct, right? Thanks a lot!

6. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
The Hall-effect sensor is probably your simplest current-measuring solution, but you need to explicitly define what you are trying to DO. Take a look at the Allegro ACS723 for a sensor more closely matching your anticipated current range. The most precise current measuring techniques use a four-wire Kelvin measurement. The so-called "shunt" or current measuring resistor has two heavy-gauge wires to carry the current to a precision low-resistance element and two small-gauge wires to measure the voltage drop across the resistance element. Depending on current rating, these devices have fairly low current-to-voltage sensitivities on the order of a few millivolts per ampere. Below is an image of a typical Kelvin current measurement using a precision measuring resistor:

The two inner terminals with the red and black test leads are precisely located at two points on the low-resistance "shunt" bar to allow measurement of the voltage drop across this element when current is present in the two blue test leads. Note the blue leads do not appear to be "heavy" enough to handle the maximum possible current the device is capable of supporting, but the measurement will nevertheless be accurate regardless of the resistance presented in series with the load by the blue test leads because very little of that measured current will be "burdened" by the high input impedance of the digital voltmeter.

The Arduino ADC is very limited in accuracy and resolution, but these are relative terms. You need to determine what accuracy and resolution you require before deciding an Arduino is the solution. For example, it is moderately easy to interface the digital ports of an Arduino to an external ADC that does meet your requirements, but you first have to define those requirements.

Calculating the resistance of the current-measuring shunt depends on how much of a burden this device will place on your solar cell. For example, if the solar cell can produce 5 A of current with 0.5 V output, then its internal resistance is R = V / I = 0.5 / 5 = 0.1 ohm or 100 mΩ. A shunt with a resistance of 0.01 or 0.001 ohms might be appropriate, and this will provide a "full scale" output of V = I x R = 50 mV (for 0.01 ohms) or 5 mV (for 0.001 ohms). Clearly some amplification is necessary to match this low range of voltage output to the chosen ADC input range.

Another problem might be how you choose to "short circuit" the solar cell array output. MOSFETs with low on-resistance are a possibility. A heavy-duty motor contactor is another. All depends on how much resistance you can tolerate in the "short circuit" path. Mercury-wetted relays might even be a possibility. In any case, you need to carefully measure the solar cell output voltage when it is "shorted" to determine if the "short" is good enough for your purposes (which you haven't told us).

Perhaps you are trying to compare the performance of a lot of solar cells. Have you considered how stable and uniform the solar cell illumination is? An integrating sphere and a radiometer are typically used for the most accurate measurements, but you may get by with a cloudless sky at high-noon, again depending on accuracy and resolution requirements... and the weather of course.

We can help you better if you describe what you are trying to DO.

Neverthelessified likes this.
7. ### duke37

5,364
769
Jan 9, 2011
Lead resistance should be taken into account.
Various load resistors could be used to extrapolate to zero resistance.
A mosfet, though good will have appeciable resistance.

8. ### Neverthelessified

10
0
Nov 9, 2016
Thanks a lot for these very helpful replies. Indeed I didn't explain well enough what my goal is, sorry for that.

First of all, the whole setup must be very portable, because it will be brought to the field under real sunlight. Sunny days will be chosen, ideally in a desert or some place with very limited clouds. The idea is to compare 4 groups of cells, all 4 measurements being taken (almost) simultaneously and repeated on a regular basis (say, every 1 minute) during the whole day. The cells will have been characterized in advance (Fill Factor determined) in order to deduce the Max Power Point (MPP) from the Isc and Voc, which can then be numerically integrated into an daily energy output which will be the comparative parameter between the 4 groups. This will be repeated aver various days with different individuals per cell group, in order to account for variability of the cells within each group. In order to perform this numerical integration, the data must be logged, which is why I thought of using an Arduino, which is easy to use with a SD module.

So I need quite a good resolution, but it will still be used for comparative purposes. All groups will suffer the same irradiation and other conditions.

I've been thinking again about the resolution issue that I had. And the fact that I can't use the 1.1V internal reference if I use the Hall Sensor (its output is way above 1.1V). So this is how I thought I could deal with this:

- Use a relay to short the circuit. The circuit is only composed of the Hall Sensor (say, ACS712 20Amp, but I will be looking for one of 12Amp which would give me better resolution), and the solar cell in series. The reference voltage will be 5V. For this, the voltage output of the Hall Sensor can be amplified (probably best with a non-inverting amplifier) by a factor of around 1.5 in order to get a maximum voltage output of around 4.5V. When the circuit is opened by the relay, the voltage of the cell can be directly measured, and must also be amplified (probably best with a differential amplifier) from around 0.5V to around 4.5V. This wouldn't give me a very good resolution for the current, but might be acceptable.

Does this sound reasonable? Is there an important aspect that I'm missing?

9. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
Your approach seems very doable. But to obtain consistent results from day-to-day among a group of test cells you also need long-term accuracy, even when doing comparative measurements. Don't forget to record a date and time stamp along with data to identify specific solar cells in your SD module. I have never tried to use an SD module with Arduino and didn't realize it was easy to do so. Maybe a visit to one of the few remaining Radio Shack stores in my area is in order!

One problem I see is providing power to last for several days in an outdoor (perhaps remote) environment. Not a problem if you take along a motor-generator set (to the annoyance of everyone within ten miles of your site) but a PITA if you need to operate from batteries. What will be the logistics of that? Have you ever conducted a field operation in a remote location? Plan, plan,plan. You will still forget something. It's a character-building experience.

The most important aspect might be the series resistance presented by the Hall-Effect sensor, Another consideration is it's poor accuracy (typically ±2%) compared to a precision shunt resistor using a 4-wire Kelvin measurement, which can easily yield 0.01% accuracy after calibration and temperature compensation.

You haven't said how much maximum series resistance the solar cell current-sensing circuit may impose (burden) on the current measurement. Obviously lower is better. It is not difficult to make a high-current shunt with 0.001 Ω of resistance from Manganan wire, which has a very low temperature coefficient of resistance. You use two small OFHC (oxygen free high conductivity) copper bars or rods with slits to clamp onto a specific length of Manganan wire. You would fasten the copper to an insulating substrate such as Lexan (polycarbonate) plastic. Add two terminals to the ends of the copper for the current leads, and two more terminals located close to the Manganan wire entry into the copper for the Kelvin voltage measurement. Or ask to have a shunt custom made by this company.

You would also need a precision differential instrumentation amplifier (an off-the-shelf item) to convert the voltage across the current-measuring resistor to a voltage suitable for digitization by the Arduino ADC. If you need, say, 1 mΩ resistance then that will produce 12 mV of output with 12 A current. A gain of 500 in the instrumentation amplifier will provide a 6 V signal for the ADC at this current. You would, of course, make the gain adjustable for whatever full-scale voltage your ADC requires, or 5 V for the Arduino ADC.

You can, with some expense and design effort, incorporate an op-amp to provide a "virtual ground" at your short-circuited solar cell return lead. You would need a power op-amp capable of providing the 12 A or so of current and an appropriate feedback resistor. The solar cell return lead goes to the inverting input of the op-amp, an appropriate feedback resistor connects between inverting input and op-amp output, and the non-inverting input goes to measurement common. Any current supplied by the solar cell tries to drive the inverting input above ground, but the op-amp output provides an equal and opposite current to the inverting input to make the differential voltage between the inverting and non-inverting op-amp inputs essentially zero, thus establishing a virtual ground at the inverting input. A one ohm feedback resistor will yield 12 V output with 12 A input current and dissipate 144 watts, but you are free to use whatever value suits your purpose. It will be difficult (and expensive) to find a power op-amp capable of providing 144 watts of power, so this example is not very realistic, especially for field operation.

Smaller is better (less power dissipation and heating) at the sacrifice of output voltage, but you can make that up with another op-amp. A value of 0.1 Ω gives an output of 1.2 V and dissipates only 14.4 watts. Similarly, 0.01 Ω will provide 120 mV at 12 A and dissipate only 1.4 watts. Note that whatever value feedback resistor is employed, it has no effect on the resistance "seen" by the solar cell return lead. It serves only to scale the op-amp output voltage. You could of course use a commercial shunt as the feedback resistor, which is advisable since these are available calibrated and temperature compensated. Power op-amps with 15 A capability are available from this company, or you can add a "booster" stage to a conventional op-amp.

Unless you need the "virtual ground" provided by the op-amp solution, I would go with a temperature-compensated low-resistance current-measuring resistance and a 4-wire Kelvin measurement using a differential instrumentation amplifier.

You still haven't specified accuracy requirements or how you plan to temperature compensate your current measurements.

Neverthelessified likes this.
10. ### Neverthelessified

10
0
Nov 9, 2016
Thank you for your valuable input.
Indeed, powering the system is a logistical issue, but the Arduino itself and a SD module, without LCD, will not use lots of power and a couple of large batteries in parallel, charged overnight, can be used for that.

I just found the ACS711 which offers a 12 Amp version and an internal resistance of 1.2 mOhm, which seems stable enough and might not even need any temperature compensation. The environment(say, a box) containing the current sensor could be ventilated in order to keep the temperature from rising significantly.
If temperature compensation is really necessary, I guess I could measure (and log) the ambient temperature around the current sensor, but then I have to admit that I wouldn't really know what equation to compensate with.

I think thus, that the resistance which comes with the current sensor could be accurate enough for the measurements, and I wouldn't need to custom make a shunt resistance. The current must be quite close to Isc, but since the series resistance the solar cell current-sensing circuit will impose on the current measurement will be very similar for all measurements, comparison is possible even if the measured current was actually smaller than Isc, because it would be the case for all measurements.

Now my biggest challenge will be to get to understand the different types of amplifiers and wire them correctly!

11. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
The resistance of 1,2 mΩ for the Allegro ACS711 has NO effect on its current measurement. It is only a consideration in limiting the true short-circuit current of the solar cell being tested. What accuracy do you require for the short-circuit current measurements?

The Allegro measures, with a linear bi-polar Hall-Effect sensor, the magnetic field produced by passing current through a copper conductor inside the Allegro package. The fact that this copper conductor presents an ohmic resistance of 1.2 mΩ is a simple consequence of the geometry of the conductor and its alloy composition. It has NOTHING to do with the measurement of actual current.

Ideally, if you truly want to measure the solar cell short-circuit current, the solar cell needs to drive a zero-resistance load, or in other words a true short-circuit. This is impossible without superconductors connecting the leads of the solar cell to a "virtual ground" as previously described. And it probably isn't necessary for comparative measurements of candidate solar cells, but you decide whether that is true or not. You have to decide how much resistance is "short-circuit" enough. The series resistance of your "short circuit" should certainly be as small as practical, but what, exactly, is that "small" value to be? Do some calculations on wire resistance and relay or contactor contact resistance or MOSFET on resistance... whatever device you choose to implement a momentary "short circuit". Compare these value with the resistance the Allegro current sensor adds to the complete circuit. Then you can decide if 1.2 mΩ plus the wire and "switch" resistance is "close enough" to being a true "short circuit" of the solar cell output for your purposes.

I don't think the ACS711 is a good choice. It "features" an over-current latch that will turn the device off when its rated current is reached. To reset it, and restore normal operation, requires that power be removed from the ACS711. Not a good plan for unattended data acquisition, but certainly you could configure the Arduino program to "automagically" perform the reset if the over-current "fault" condition occurs.

The ACS723 that I recommended is available in 0 to 10, ±10, 0 to 20, and ±20 ampere versions and has better temperature compensation. ALL of the Allegro devices are capable of conducting at least five times full-scale rated current without damage, although the output will saturate and no longer be representative of the input current when that occurs. It is also not necessary to accurately match the anticipated maximum solar cell short-circuit current to the rated Allegro full-scale current. Leaving some "headroom" in the Allegro full-scale rating will only slightly decrease the accuracy and resolution of your measurements.

The Allegro devices are NOT precision current measuring sensors. Their main purpose is to allow monitoring of currents while providing galvanic isolation between the current being measured and the instrumentation performing the monitoring function. Since your solar cells are already "galvanically isolated" devices, the Allegro is not necessary and will complicate obtaining accurate current measurements compared to 4-wire Kelvin measurements using a calibrated, temperature-compensated shunt and a differential-input instrumentation amplifier.

However, you have still not specified any accuracy or resolution requirements for your data logging, other than stating the 10-bit ADC in the Arduino will provide sufficient resolution. So perhaps the Allegro will be good enough.

What does "will not use lots of power" mean? How much power will the Arduino require while running during the day? What ampere-hour capacity battery will that require? What do you consider to be "large batteries" and why wire them in parallel? Since you are testing solar cells, why not dedicate a commercial solar cell panel charging a battery to power the Arduino? Do you intend for the Arduino to operate (for whatever reason) at night? Why would you do this? There is no data to collect at night.

That's a challenge all right. The entire endeavor is a challenge, but that's what makes life interesting.

Neverthelessified likes this.
12. ### Colin Mitchell

1,417
313
Aug 31, 2014
Why do you want to measure the short-circuit current?
You don't buy solar cells for their short-circuit current capability.

13. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
He is probably using the open-circuit voltage versus short-circuit current as a criterion for comparing solar cell efficiency among four test solar cells. And its a good excuse to bivouac in the desert.

14. ### duke37

5,364
769
Jan 9, 2011
I went to get a slow puncture fixed yesterday and the mechanic said that he repaired valve televisions.

He showed me a device for measuring current without connection in automobile circuits. This would work on AC or DC. It was very sensitive to orientation presumably due to the earth's magnetic field. Not good for accuracy in a portable device.
A zero circuit would need to be used every time the detector is moved.

15. ### (*steve*)¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥdModerator

25,449
2,809
Jan 21, 2010
I have a clamp on dc ammeter that has exactly the same feature on the low current ranges. And, as a coincidence, it has valves!

Arouse1973 likes this.
16. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
Oh, yeah, no one has mentioned how you establish the "zero current" output state of the Allegro current sensor. The bipolar sensor nominally places zero current at one half the sensor supply voltage. The unipoloar version places zero current at one tenth the sensor supply voltage. Since neither of these is an actual zero voltage level, the ADC should measure and record the open-circuit (zero current) output of the Allegro prior to each recorded measurement of the "short circuit" current. This is necessary to establish the zero current reference, a finite ADC number that is not numerically zero. A minor programming detail. Of course it is a good idea to check the "zero current" output no matter what current sensing method is used. It is also a good idea to perform a full-scale calibration prior to each measurement, using a precision constant-current source. So that's three measurements per data point: zero, full-scale, and actual data measurement. That's just good metrology practice.

Neverthelessified likes this.
17. ### (*steve*)¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥdModerator

25,449
2,809
Jan 21, 2010
Another option for the bipolar device is to connect it inside an H bridge. You take as your current measurement the difference between the forward and reverse reading. This gives you one extra bit of resolution and cancels out the zero point out any drift in it. It's not suitable for rapidly changing current, but that is unlikely to be the case here.

In addition to this, you can use low voltage, low Rds(on) mosfets because the voltage across the H bridge should remain at almost 0V. In contrast to most H bridge switching, you actually want all the mosfets on while switching.

In this case the open circuit voltage of the current source is very low. For a higher voltage application you could shunt the H bridge with one or more diodes so the midgets don't get destroyed if power is removed and the mosfets turn off. Yet another way is to apply power backwards so the body diodes are forward biased. The H bridge then effectively shorts out pairs of body diodes.

If you use mosfets with an Rds(on) of around 10mOhms, the total resistance will be around 30mOhms, leading to a 150mV voltage drop at 5A.

In this application, 150mV is probably too much -- I'd want to keep it to 50mV or less.

Remember that the resistance of cables, connectors, and even solder joints will affect how close you are to achieving a theoretical short circuit.

The resistance problem could be eliminated, but at the cost of requiring a power supply capable of the same current as your cell, and a very high current op amp -- however at this point you can use a simple sense resistor.

Neverthelessified likes this.
18. ### hevans1944Hop - AC8NS

4,547
2,122
Jun 21, 2012
A good experimental procedure is what it is. A poor experimental procedure, performed for the sake of expediency or lower cost, isn't worth the paper the final report is printed on.

Probably the point of interest in comparing the "efficiency" of solar cells is the maximum power point of a particular cell, Pmax. The figure below plots solar cell current against solar cell voltage with the maximum power point indicated. This curve cannot be obtained with just two measurements of open-circuit voltage and short-circuit current, nor is it easy to determine by inspection where the maximum power point occurs.

The second set of curves, shown below, plots the V-I characteristic curve for three different levels of illumination and also the power produced (dashed lines). Clearly the maximum power peak not only increases with increasing illumination, but the cell voltage where maximum power occurs also increases (slightly). A constant-voltage power supply capable of sinking the solar cell current is typically used to obtain the V-I characteristic curve, while differentiation of the the VI product will yield the maximum power point when the first derivative of the power curve is zero.

It seems reasonable to me that when comparing solar cells under identical uniform lighting conditions, temperature and known "fill factors" you would judge the cell with the greatest peak power output to be superior to cells with lesser output. And it may be possible to forego obtaining the complete V-I characteristic curve to do obtain a valid comparison if the cells are sufficiently similar, but I think that would be bad science. especially if there are substantial differences among the cell constructions. There is a short discussion found here, from which I copied the two graphs above.

The curves shown above apply only to a particular cell. To obtain a valid comparison among a group of cells, each cell in the group would need to have a V-I curve obtained and the maximum power point for that cell determined from the V-I data. Using an arbitrary fraction of the open-circuit cell voltage to "compute" the maximum power point is, IMHO, not a valid way to compute the maximum power point. Your mileage (or kilometers) may differ. And a two-point measurement of short-circuit current and open-circuit voltage may be "good enough" for sales advertising purposes.

IEC Standard 61215 is commonly used to test and evaluate solar cell performance. It covers a lot more than just a maximum power point determination, although that is important. Quoting from IEC 61215:

Getting the Pmax measurement correct would seem to be of paramount importance.

Neverthelessified and (*steve*) like this.
19. ### TedA

156
16
Sep 26, 2011
You said The idea is to compare 4 groups of cells, all 4 measurements being taken (almost) simultaneously and repeated on a regular basis (say, every 1 minute) during the whole day.

Am I correct in thinking you intend to take four sets of measurements each time?

This sounds like a lot of measurements. You will want to take these automatically, including switching among the different cells or groups.

So either you need four measurement circuits, or else switch one measurement circuit among the four batteries. ( Or possibly some combination of these approaches.)

It's not clear to me what you mean by a "group" of cells. Are you not measuring each cell individually? Does a group consist of more than one cell connected together? In series? In parallel? In either case you have a "battery".

As already pointed out, you may want to locate the maximum power point for each measurement and log that. Not hard to do with your controller.

For most cell types, it is not critical to provide a really low resistance "short" to get an accurate short circuit current measurement. The current is nearly constant from zero volts up to a large % of the open circuit voltage. See the curves in the above post by Hop. Obviously, you should confirm that the cells you are working with have similar E / I curves, but I think you will find that they do. This means that the wire resistance, resistance of solder joints, switch resistance and shunt resistance need not be extremely low. I expect that a standard 10A 50mV ( 0.005 ohm )shunt will be satisfactory.

Again, assuming that the cells have typical E/I curves, the short circuit current is little more than the normal operating current. There should be no problem with cells "burning down" while shorted.

This application does not call for a Hall effect measurement module. Use a simple shunt resistor and stable amplifier to scale the current to the voltage needed by your ADC input.

If you are logging four different cells or batteries, four power FETs can multiplex the current to a single current shunt. The FETs can also be used to control the load to locate the maximum power point, or even to take enough data points for a complete E/I curve.

Use an analog multiplexer IC to select one of the batteries for the voltage measurements. One of the SN74HCxx multiplexers can do this well. If you have decided to go beyond the open circuit voltage, short circuit current measurements, you might want to make this a differential measurement, with both positive and negative connections multiplexed.

It appears to me that the solar array itself should be able to power your measurement system. While not being measured, the juice from each cell could be used to keep your accumulator charged.

Be sure your data logging system saves the data in a flash card, or something, that will retain it when the computer crashes, the power cord is unplugged, etc!

Very likely you will want to log the ambient temperature each measurement cycle. It also might be good to include a reference measurement made using a standard cell. Possibly might snap and save a photo of the sky, as well. Use a wide angle lens so you can see the huge bird perched on your array during the measurement.

Ted

hevans1944 and Neverthelessified like this.
20. ### Neverthelessified

10
0
Nov 9, 2016
Dear all,

Thanks a lot for the very valuable tips. I've been researching based on your advice.

Indeed, I need to measure the MPP. However, the MPP can be obtained with MPP = FF * Voc * Isc. In other words, if the FF is determined, the MPP can be calculated by onls measuring the Voc and Isc. The FF will be determined during a characterization phase, as a function of both temperature and irradiance.

Also, I should clarify that all cells are actually the same (except the manufacturing variations). The 4 groups are different tracking/concentration strategies. This makes it much easier to compare the results, and I should have mentioned this valuable information. Indeed, 4 measurements must be taken (almost) simultaneously.

Based on your advice, I decided to go for a shunt resistor instead of the current sensor module. I was thinking of using 4 relays with transistors, with the common of the relays all connected to one shunt resistor, each of the relays in normally open mode and closing the circuit of one of the 4 cells when the inductance is energized. I was thinking of measuring Voc of all 4 cells while the circuits are open, with the Vcc (+5V) voltage reference of the Arduino. The voltage drop of the shunt could be measured with respect to the internal voltage reference of 1.1V. But even then, the voltage drop should be amplified. Indeed, I now have this power resistor of 0.001 Ohm, and with 6A this would only give me a 6mV voltrage drop, equivalent to 5 ADC values (Arduino is 10-bit, 1024 divided over 1.1V in the case of the internal voltage). But actually, I may be able to simply use the Vcc (+5V) voltage reference as well for the shunt resistor; I would just need to amplify a little more (opinion needed on this?).

As was suggested various times in this thread, I opted for a 4-wire Kelvin measurement. As the datasheet of the resistor shows, there is both a current and a voltage connection, making it easy to wire in such an arrangement.

I think that this should work. Any objections? Thank you!