Solar Cell Efficiency Sensor

From Makerpedia

by Lily Shure


Project Overview

Using a photodiode to measure the efficiency of a solar cell by comparing the input power from a light source to the output power of the cell.

Tools and Materials

  • 1.5 W Solar Panel 137x81
  • 100 ohm resistor
  • Variable resistor box
  • Digital multimeter
  • 10 k ohm resistor
  • 1 k ohm resistor
  • OSRAM BPX65 Photodiode
  • 1 M ohm resistors (x2)
  • 47 nF capacitor
  • LF 411 Operational Amplifier (x2)
  • Powered Breadboard
  • Arduino Uno
  • Sparkfun ADM 1602K NSW FB S/Z LCD Screen
  • 10k Potentiometer
  • Wires (as many as necessary)


Step-by-Step Instructions

Measure the output impedance of the solar cell. Attach a 100 ohm shunt resistor and a variable resistor in series with the solar panel. Measure the voltage drop across the solar panel and across the 100 0hm shunt resistor while varying the value of the variable resistor from 10 0hm to 1 M ohm in a 1,2,5,10 pattern. At each resistance value, use the voltage drop across the shunt resistor to calculate the current from V=IR. Calculate the output power using P=IV, using the current across the shunt resistor and the voltage drop across the solar panel. Make a PV plot (power vs voltage across the solar cell), and find the point at which power is maximized. The variable resistance associated with this maximum power point is the output impedance of the solar cell, and the load resistance that should be used for maximum power measurements. Keep in mind that the output impedance of the solar cell changes as light conditions change, so you will need to redo this step if you change the conditions of the solar cell.

Calculate the output power of the solar cell using an Arduino Uno. Input the voltage across the solar cell into an analog pin of the Arduino (A0), and input the voltage across the 100 ohm shunt resistor into another analog pin (A1). Use a non-inverting amplifier to increase the signal from the 100 ohm resistor by a factor of 10. See Solar Cell Serial Monitor Code for an explanation of how to turn these digital inputs into voltage values between 0 V and +5 V, and how to use these two voltage values to calculate the output power of the solar cell. Use the serial monitor function of the Arduino to monitor the live power output measurements and update every 1 second.

Input a voltage from the photodiode that is proportional to light intensity. Build the transimpedance amplifier circuit shown below using an LF 411 operational amplifier. The photodiode's current increases as the light intensity on its sensor increases, and the amplifier circuit turns this current into a voltage according to the equation Vout = - Rf * Ip, where Rf is the feedback resistance and Ip is the current across the photodiode. I used two 1 M ohm resistors in parallel for a total Rf value of 500 M ohms. Because the short circuit current of the photodiode in reverse bias is 10 micro amps, this means that the transimpedance amplifier will have a maximum voltage output of +5V, which is the maximum input to the Arduino Uno. I used a 47 nF capacitor in parallel with the two resistors to lower signal fluctuations. I then plugged Vout into an Arduino analog pin (A2), and I used the Solar Cell Serial Monitor Code to turn this digital signal into a voltage value between 0V and +5V that is proportional to the intensity of light on the photodiode.

Calculate input power from the output of the transimpedance amplifier. The transimpedance amplifier inputs some signal Vout to the analog pin of the Arduino. See the equation below for the calibration between the output voltage and the irradiance (power per unit area) on the photodiode. This calibration uses the resistance of the transimpedance amplifier, as well as the area of the photodiode's sensor and the spectral sensitivity of the photodiode, which can both be found in the data sheet. For this calibration, I assumed that the wavelength of the overhead light was centered around 500-600 nm. I used the Arduino to calculate irradiance using the output voltage of the transimpedance amplifier, and then I used the irradiance value to calculate the input power on the solar cell by multiplying it by the solar cell's surface area.

Use an LCD screen to display the efficiency results. The LCD has 16 pins. I connected the ground pin to ground and the Vdd pin to +5V on the breadboard. I connected the V0 pin to the 10k potentiometer on the breadboard. This pin controls the contrast, and adjusting the potentiometer adjusts the brightness of the screen. Then I connected the register select pin to pin 12 of the Arduino and the enable pin to pin 11 of the Arduino. R/W selects between reading from or writing to the LCD, so I connected it to +5V to tell the LCD to write the output from the Arduino. LED + and LED - control the backlight of the LCD. I connected them to +5V and ground respectively. D4, D5, D6, and D7 are the 4-bit data bus lines. I connected them to Arduino pins 2, 3, 4, and 5 respectively. Use the Solar Cell LCD Code to measure the solar cell's efficiency and display the result on the LCD screen. The results will update every second for a current reading.