top of page
Writer's pictureSanskruti Ashtikar

Solar Tracker System Using 8051 Microcontroller

Updated: 3 days ago

Introduction


A solar tracker system is designed to optimize the orientation of solar panels to ensure they receive maximum sunlight throughout the day. By adjusting the panel's position, a solar tracker can significantly increase the efficiency of solar energy collection. This project demonstrates how to build a solar tracker system using the 8051 microcontroller and Light Dependent Resistors (LDRs) as sensors.





Components Required


  • 8051 Microcontroller (e.g., AT89S52)

  • Light Dependent Resistors (LDRs) - 2

  • Servo Motors - 2 (for two-axis tracking)

  • Resistors (10kΩ)

  • Capacitors (33pF, 100μF)

  • Crystal Oscillator (11.0592 MHz)

  • Breadboard and Connecting Wires

  • Power Supply (5V for the 8051 and components)


Circuit Diagram


The LDRs are used to detect the intensity of sunlight. The 8051 microcontroller processes this data and controls the servo motors to adjust the solar panel's position for optimal sunlight exposure.


+5V ----- +5V
          |
          |
       LDR1
        +---+
        |   |
        |   |
        |   +---------- P1.0 (8051 ADC input)
        |   |
        GND
       LDR2
        +---+
        |   |
        |   |
        |   +---------- P1.1 (8051 ADC input)
        |   |
        GND
Servo Motors
    VCC to +5V
    GND to Ground
    Control Pin 1 to P2.0 (8051)
    Control Pin 2 to P2.1 (8051)




Pin Connections


  • LDRs:

  • LDR1 connected to P1.0 of the 8051 (ADC input)

  • LDR2 connected to P1.1 of the 8051 (ADC input)

  • Servo Motors:

  • VCC to +5V

  • GND to Ground

  • Control Pin of Servo 1 connected to P2.0 of the 8051

  • Control Pin of Servo 2 connected to P2.1 of the 8051


Software Implementation


The code is written in C using Keil uVision IDE. It involves reading the analog input from the LDRs, comparing the values to determine the direction of maximum sunlight, and adjusting the servo motors accordingly.


#include <reg51.h>
#define LDR1 P1_0 // LDR1 connected to P1.0
#define LDR2 P1_1 // LDR2 connected to P1.1
sbit SERVO1 = P2^0; // Servo motor 1 control pin
sbit SERVO2 = P2^1; // Servo motor 2 control pin
unsigned int ldr1_value;
unsigned int ldr2_value;
void delay(unsigned int time) {
    unsigned int i, j;
    for(i = 0; i < time; i++)
        for(j = 0; j < 1275; j++);
}
void pwm_servo(sbit SERVO, unsigned int angle) {
    unsigned int i;
    for (i = 0; i < 50; i++) {
        SERVO = 1;
        delay(angle); // ON time
        SERVO = 0;
        delay(200 - angle); // OFF time
    }
}
void main() {
    while(1) {
        ldr1_value = P1 & 0x01; // Read LDR1 value
        ldr2_value = P1 & 0x02; // Read LDR2 value
        
        if (ldr1_value > ldr2_value) {
            pwm_servo(SERVO1, 10); // Adjust servo 1 for optimal sunlight
        } else {
            pwm_servo(SERVO2, 10); // Adjust servo 2 for optimal sunlight
        }
        
        delay(1000); // Small delay before the next adjustment
    }
}




Explanation


  1. Initialization:

  2. LDR Readings: The values from LDR1 and LDR2 are read as digital inputs. (In a practical implementation, an ADC module would convert the analog signals to digital.)

  3. PWM for Servo Motors:

  4. PWM Function: The pwm_servo() function generates a PWM signal to control the servo motors. The angle of the servo is adjusted based on the PWM duty cycle.

  5. Main Loop:

  6. Reading LDR Values: The main loop reads the values from the two LDRs.

  7. Comparing LDR Values: If the value from LDR1 is greater than LDR2, the system adjusts the position of the first servo motor. If LDR2 is greater, it adjusts the second servo motor.

  8. Delay Function:

  9. The delay function introduces a small delay between adjustments to ensure stability and avoid constant movement.


Conclusion


This project demonstrates the use of the 8051 microcontroller to create a solar tracker system. By integrating LDRs for sunlight detection and servo motors for movement, the system can optimize the orientation of solar panels to maximize energy collection. This project is an excellent way to learn about sensor interfacing, PWM generation, and using microcontrollers for real-time control applications.


Want us to guide you through your project or make the project for you ?






Create Various Projects

Check out our Free Arduino Projects Playlist - Arduino Projects 

Check out our Free Raspberry Pi Projects Playlist - Raspberry Pi Projects 

Check out our Free TinkerCAD Projects Playlist - TinkerCAD Projects 

Check out our Free IoT Projects Playlist - IoT Projects 

Check out our Free Home Automation Projects Playlist - Home Automation Projects 

Check out our Free NodeMCu Projects Playlist - NodeMCu Projects 



5 views0 comments

Related Posts

See All

留言


bottom of page