Automated Light Tracking Solar Panel
One major advantage with the use of renewable energy is that as it is renewable, it is sustainable and so will never run out. Renewable energy facilities generally require less maintenance than traditional generators. Their fuel being derived from natural and available resources reduces the costs of operation. Even more importantly, renewable energy produces little or no waste products such as carbon dioxide or other chemical pollutants, so has minimal impact on the environment.
Solar Panels
Solar panels are devices that convert light into electricity. They are called "solar" panels because most of the time, the most powerful source of light available is the Sun, called Sol by astronomers. Some scientists call them photovoltaics which means, basically, "light-electricity." A solar panel is a collection of solar cells. Lots of small solar cells spread over a large area can work together to provide enough power to be useful. The more light that hits a cell, the more electricity it produces, so spacecrafts are usually designed with solar panels that can always be pointed at the Sun even as the rest of the body of the spacecraft moves around, much as a tank turret can be aimed independently of where the tank is going.
Advantages of Sun Tracking Solar Panel
- Efficiency. The main draw of solar panels that follow the sun is that they are significantly more efficient than fixed solar panels.
- Space Savings.
- Energy Cost Reduction. ...
- Environmental Concerns.
Types of Trackers
The Dual Axis Solar Tracker
This solar tracker control system is designed to take light measurements from the East and West (left and right) and from North and South(up and down) sides of the solar panel and determine which way to move the panel to point it directly at the source of the light. Two servos are used to actuate the panel tracker; these are available in a broad range of sizes and can be scaled according to the panel size.
The goal was to increase the awareness of the importance of renewable energy as well as technology in our present and future. The project was designed and implemented by grades 8 and 9 students.
Required Hardware
- Photocell x 4
- Servo x 2
- Arduino NANO
- Arduino NANO Sensors shield
- Power supply(9V)
Photocell
A Photocell is basically a resistor that changes its resistive value (in ohms) depending on how much light is shining onto the squiggly face. They are of very low cost, easy to get in many sizes and specifications, but are very inaccurate.
How it works
- The light intensity is gathered and saved into variables
- The average of the top photocells and bottom photocells are calculated and compared.
- The y axis servo (up and down) will then move accordingly to the side of the highest average.
- The average of the left photocells and right photocells are calculated and compared.
- The x axis servo (left and right) will then move accordingly to the side of the highest average.
Schematic and connection
The Code
#include <Servo.h> // include Servo library
Servo horizontal; // horizontal servo
int servoh = 90; // 90; // stand horizontal servo
int servohLimitHigh = 180; // Horizontal servo maximum rotation
int servohLimitLow = 65; // Horizontal servo minimum rotation
Servo vertical; // vertical servo
int servov = 90; // 90; // stand vertical servo
int servovLimitHigh = 120; // Vertical servo maximum rotation
int servovLimitLow = 15; // Vertical servo minimum rotation
/* LDR pin connections */
int ldrlt = 2; //LDR top left - BOTTOM LEFT
int ldrrt = 3; //LDR top rigt - BOTTOM RIGHT
int ldrld = 0; //LDR down left - TOP LEFT
int ldrrd = 1; //ldr down rigt - TOP RIGHT
void setup()
{
horizontal.attach(9); //horizonttal servo attached to digital pin 9
vertical.attach(10); //Vertical servo attached to digital pin 10
horizontal.write(180); // inisiate the position of horizontal servo
vertical.write(45); // inisiate the position of vertical servo
delay(3000); // wait for 3 seconds
}
void loop()
{
int lt = analogRead(ldrlt); // read the value of the top left LDR
int rt = analogRead(ldrrt); // read the value of the top right LDR
int ld = analogRead(ldrld); // read the value of the down left LDR
int rd = analogRead(ldrrd); // read the value of the down rigt LDR
int tol = 50; // tolerance
int avt = (lt + rt) / 2; // average value top
int avd = (ld + rd) / 2; // average value down
int avl = (lt + ld) / 2; // average value left
int avr = (rt + rd) / 2; // average value right
int dvert = avt - avd; // check the diffirence of up and down
int dhoriz = avl - avr;// check the diffirence og left and rigt
if (-1*tol > dvert || dvert > tol) // check if the difference is in the tolerance else change vertical angle
{
if (avt > avd)// if top average is more than the down average
{
servov = ++servov; // increment the value of vertical servo in order to rotate Up
if (servov > servovLimitHigh) // if the servo reached its maximum rotation value
{
servov = servovLimitHigh; // keep its value to the maximum
}
}
else if (avt < avd) // if top average is less than the down average
{
servov= --servov; // decrement the value of vertical servo in order to rotate down
if (servov < servovLimitLow) // if the servo reached its minimum rotation value
{
servov = servovLimitLow; // keep its value to the minimum
}
}
vertical.write(servov); //rotate the servo to the new postion
}
if (-1*tol > dhoriz || dhoriz > tol) // check if the difference is in the tolerance else change horizontal angle
{
if (avl > avr) // if left average is more than the right average
{
servoh = --servoh; // decrement the value of horizontal servo in order to rotate Left
if (servoh < servohLimitLow) // if the servo reached its maximum rotation value
{
{
servoh = servohLimitLow;// keep its value to the minimum
}
}
else if (avl < avr)
{
servoh = ++servoh; // increment the value of horizontal servo in order to rotate Right
if (servoh > servohLimitHigh) // if the servo reached its minimum rotation value
{
{
servoh = servohLimitHigh;// keep its value to the maximum
}
}
horizontal.write(servoh); //rotate the servo to the new postion
}
delay(10); // wait for 10 milliseconds
}
The Implementation
With the support of robotics family team, students from grade 8 designed and implemented the body of the the solar panel and and followed the schematics and connections diagram to complete the project wiring. The program was written by grade 9 students.