Solar Tracking System

Build a Dual-Axis Solar Tracking System Using Arduino

In this project, we’ll create a DIY dual-axis solar tracking system that adjusts a solar panel's orientation in two directions for optimal sunlight capture. By using light-sensitive sensors and Arduino, the system dynamically tracks sunlight to maximize energy generation.



_______________________________________________________________________________

How the System Works
The dual-axis system uses four LDR sensors and four resistors in voltage divider circuits to measure light intensity from multiple directions. These readings are processed by the Arduino, which controls servo motors to adjust the panel's horizontal and vertical positions for optimal sunlight exposure.

___________________________________________________________________________________




___________________________________________________________________________________

Components Buying Link:-


___________________________________________________________________________________


3D Model File Link:- Google Drive


___________________________________________________________________________________



Circuit Diagram:-



_______________________________________________________


Arduino Program:-


#include <Servo.h> 

Servo horizontal; // Horizontal Servo Motor
int servohori = 180; 
int servohoriLimitHigh = 175;
int servohoriLimitLow = 5;

Servo vertical; // Vertical Servo Motor
int servovert = 45; 
int servovertLimitHigh = 100;
int servovertLimitLow = 1;

// LDR pin connections
int ldrlt = A0; // Bottom Left LDR
int ldrrt = A3; // Bottom Right LDR
int ldrld = A1; // Top Left LDR
int ldrrd = A2; // Top Right LDR

void setup() {
  horizontal.attach(2);
  vertical.attach(13);
  horizontal.write(180);
  vertical.write(45);
  delay(2500);
}

void loop() {
  int lt = analogRead(ldrlt); // Top left
  int rt = analogRead(ldrrt); // Top right
  int ld = analogRead(ldrld); // Bottom left
  int rd = analogRead(ldrrd); // Bottom right

  int dtime = 10; 
  int tol = 90; // Tolerance value for adjustment

  int avt = (lt + rt) / 2; // Average value of top sensors
  int avd = (ld + rd) / 2; // Average value of bottom sensors
  int avl = (lt + ld) / 2; // Average value of left sensors
  int avr = (rt + rd) / 2; // Average value of right sensors

  int dvert = avt - avd; // Difference between top and bottom
  int dhoriz = avl - avr; // Difference between left and right

  if (abs(dvert) > tol) { 
    if (avt > avd) {
      servovert = ++servovert;
      if (servovert > servovertLimitHigh) servovert = servovertLimitHigh;
    } else {
      servovert = --servovert;
      if (servovert < servovertLimitLow) servovert = servovertLimitLow;
    }
    vertical.write(servovert);
  }

  if (abs(dhoriz) > tol) { 
    if (avl > avr) {
      servohori = --servohori;
      if (servohori < servohoriLimitLow) servohori = servohoriLimitLow;
    } else {
      servohori = ++servohori;
      if (servohori > servohoriLimitHigh) servohori = servohoriLimitHigh;
    }
    horizontal.write(servohori);
  }

  delay(dtime);
}


___________________________________________________________________________________

Why Choose Dual-Axis?
Improved Tracking:

Captures sunlight from both vertical and horizontal directions, maximizing energy generation.
Scalability:

Can be adapted for larger panels or more sensors for higher precision.

___________________________________________________________________________________


Key Benefits
This system provides an excellent opportunity to explore renewable energy technologies while increasing the efficiency of solar panels. It’s an engaging and practical project for anyone interested in Arduino and sustainable energy solutions.

Comments

Popular posts from this blog

Arduino Code Car Parking System

Arduino Code