Automated Light Tracking Solar Panel
Robotics Family 2018-2019

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.

No alt text provided for this image
No alt text provided for this image

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

No alt text provided for this image

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.

No alt text provided for this image

Required Hardware

  • Photocell x 4
  • Servo x 2
  • Arduino NANO
  • Arduino NANO Sensors shield
  • Power supply(9V)

Photocell

No alt text provided for this image

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

  1. The light intensity is gathered and saved into variables
  2. The average of the top photocells and bottom photocells are calculated and compared.
  3. The y axis servo (up and down) will then move accordingly to the side of the highest average.
  4. The average of the left photocells and right photocells are calculated and compared.
  5. The x axis servo (left and right) will then move accordingly to the side of the highest average.
No alt text provided for this image

Schematic and connection

No alt text provided for this image
No alt text provided for this image

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
}
No alt text provided for this image
No alt text provided for this image

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.

The Presentation

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image


To view or add a comment, sign in

More articles by Zahi Wehbe

  • RVIS and the Massachusetts Institute of Technology (MIT) Host a successful MISTI program

    RVIS and the Massachusetts Institute of Technology (MIT) Host a successful MISTI program

    Final Picture of participants with the MIT Instructors Riffa Views International School (RVIS) and The American…

    1 Comment
  • Riffa Views International School and The American University of Bahrain Partner with the Massachusetts Institute of Technology (MIT)

    Riffa Views International School and The American University of Bahrain Partner with the Massachusetts Institute of Technology (MIT)

    Riffa Views International School (RVIS) and the American University of Bahrain (AUBH) announced their partnership with…

    1 Comment
  • Internet of Things-IoT Blynk+NodeMCU ESP8266

    Internet of Things-IoT Blynk+NodeMCU ESP8266

    How it works An IoT system consists of sensors/devices which “talk” to the cloud through some kind of connectivity…

  • Facial Recognition System

    Facial Recognition System

    Choosing the right biometric security solution has become a major decision for businesses, across industries. Yet, with…

  • Automated Greenhouse System

    Automated Greenhouse System

    One of the best things about owning a greenhouse is that you can use it for a variety of things. You can grow fresh…

    2 Comments
  • Bionic Prosthetic hand

    Bionic Prosthetic hand

    Bionic prosthetic hands are rapidly evolving. An in-depth knowledge of this field of medicine is currently only…

    2 Comments
  • Alex the humanoid robot

    Alex the humanoid robot

    Alex the humanoid robot is a STEAM Project designed and implemented by grade 10 students. It is the second generation…

    4 Comments
  • E.R.A.S.E.R

    E.R.A.S.E.R

    Eco-friendly Radio-controlled Autonomous Solar Equipped Rover - by Robotics Family 2018. Robotics Family's pride! Third…

    1 Comment
  • RoboCodingClub - Grades 4 to 7 Club

    RoboCodingClub - Grades 4 to 7 Club

    The future is already here! RoboCodingClub is a Coding and Robotics club intended to prepare our students for future…

  • MR. ROBOT 1.0

    MR. ROBOT 1.0

    Robotics Family's first ever Robot. A project implemented by grade 12 Computer Science AP students in 2017.

Insights from the community

Others also viewed

Explore topics