Reading voltage from solar cell

I would like to read the voltage from a single solar cell using the ReadAnalogVolage sketch.
The Cell puts out a maximum DC voltage of about 2.5 and a current around 100mA in direct

Should I have a resistor on the analog input pin to protect the Arduino Uno board?
I am just measuring the Open Circuit Voltage for now.


The Uno will happily measure voltages between 0 & 5V without any external resistors.

however a solar cell is like a battery - the open circuit voltage tells you very little.
Remember power = voltage * current and if current=0 power = 0.

Thanks John

I do understand about having no load. I am in the learning process with Arduino and
writing code. I like to do some simple experiments like reading single and multiple cells,
current reading, Logging, using current and voltage sensor boards. Then moving up to
solar panels.


You may find my pages here interesting - and hopefully useful

Even though it is not necessary I would add the resistor as transient protection. It will not noticeably affect the reading. Something no larger than 10K would work great.

1 Like

I have read the same suggestion some place as well. I am new to this and trying
to learn best practices early on.

While I wait for my 3V solar cells to arrive I think I will grab a second 10K pot and
wire the circuit up to a second analog pin, add to the sample code, and read two
at once. I think the Arduino experimenters bug has bitten me!

1 Like

That bug is mighty powerful! Have fun, that is the most important thing. Thanks for the update.

So not a single solar cell. Most solar cells output about 0.45volt to 0.65volt.
2.5volt open circuit could mean a 2volt solar panel (four cells in series).

Open circuit voltage does not change a lot with light level, but cell current does.
Therefore it's best to use cell voltage for a day/night sensor,
and cell current (loaded cell) to measure light levels.

Yes I keep making that mistake. I call them Cells but your right they are actually mini panels
like the ones you might find on top of solar garden lights. They are made up a collection of
Solar cells to get various voltages and currents.


Sunlight can be measured by putting a low value resistor across that 2volt panel (almost shorting it), and switching the Arduino (assuming Uno) to 1.1volt Aref in setup().
Try something like 10-100 ohm.

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