How to convert solar cell short circuit current to Voltage. Because i need to display it to a 10bit micro controller. The voltage must within 0-5V. I'm using a 3V 50mA (max output) solar cell.

Solar cell produce current when short circuit and produce voltage when open circuit.

i have tried so many methods but fail.

I tried transimpedance amplifier. but fail since it can only work for current that is in microAmp. i get negative value. for example 20mA gives me -2V. but if i go more than 25mA the value turns positive. Im tried using LTC1050, Tl081, LM741. i use 100ohm as rf. Inverting input. the non inverting is grounded and he solar cell + is to te -ve input and + to ground.

I tried using transistor but fail again. i used BC108, BC557, BC547, BC327, BC337, 2n5551.

I tried using hall sensor ACS712 which can sense up to 5A with sensitivity of 190mA. but fail because the Vo for 0 current is equal to Vs/2, which is 2.5V. the max value that i get didn't even reach 2.6 V. Which is too small.

I spend the last 2 months trying to think of a solution. So much time spend, energy and wacking my brains off but always meet a dead end with every method i tried.

Please, Please help me. I'm running out of time here. I have less than a day to figure this thing out or else i'm doom. Your help is really appreciated.


Hi, sorry about the stupid comment. I'm new to proteus and circuit design. So as a newbie, i tend to ask weird question.

Anyway, i tried simulate your circuit from 0-55mA(my solar cell max current) and it works.

Trans Op Amp

But im wondering,

1) Will it works on Solar cell? 2) Will the result still the same using single supply? (a few voltage drop would be fine since its a simulation) 3) can i use voltage divider to reduce the V? cause i tried and the output is "nan". 4)I look up the data sheet of the ic and its a dual op amp. How do i connect it?

5) can you teach me how to do the calculation? 6) can you please provide a circuit with (0-55mA) range that does not exceed 5V because my Microcontroller can only take 5v. eg. 55mA-4.93 V. And Thank you so much for your effort to help me. Really Appreciate it.


1 Answer 1


The transimpedance amplifier does invert the voltage, but if you bias the circuit you could get it to output positive values. I don't know what your current (mA) range is, but this can be calculated so that for all input values in mA can be converted to a positive voltage on the output.

Example circuit:

enter image description here

In this circuit you bias the positive input with a voltage. To ensure that the input current dynamic range maps to the output voltage dynamic range you have to select correct feedback resistor and voltage to the positive input.


Here is a simulation of a circuit using LTSpice that I did. Here a sine wave with 40 mA peak-to-peak is mapped to about 0 to 4.8 V:

enter image description here

  • \$\begingroup\$ my range is 0 to 55mA. ok, i will try \$\endgroup\$
    – John Doe
    Dec 7, 2013 at 19:18
  • \$\begingroup\$ based on the simulation i made i did get positive value but the increment is very small. \$\endgroup\$
    – John Doe
    Dec 7, 2013 at 19:53
  • \$\begingroup\$ @JohnDoe: I updated my answer. Please remember to upvote/accept answer when/if this helped you =) \$\endgroup\$ Dec 7, 2013 at 22:34
  • \$\begingroup\$ i simulate your circuit and for 1mA the output produce is nan. and after i increase the current to 20mA, it produces -ve value. i think this is because of im using a DC source supply since my solar cell produce dc current. why are you using AC supply current? \$\endgroup\$
    – John Doe
    Dec 8, 2013 at 5:49
  • \$\begingroup\$ And can you please increase the range up to 55mA. that is the max output of my solar cell. \$\endgroup\$
    – John Doe
    Dec 8, 2013 at 5:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.