Summary of Arduino Solar Tracker
This project is a solar tracker that locates the brightest light source, typically the sun, using four Light Dependent Resistors (LDRs) arranged with separating sheets. It compares the light intensity on each LDR to determine the light's direction and adjusts two servos horizontally and vertically, orienting the sensor stick towards the brightest point. The system uses an Arduino to read sensor values and control the servos accordingly.
Parts used in the Arduino Solar Tracker:
- 2 x servos
- 4 x Light Dependent Resistors (LDRs)
- 4 x 10K resistors
- 1 x Arduino
- 2 x 10K potentiometers
What is does:
It searches for the brightest light source like the sun.
Step 1: How it works
How it works:
I’d made a sensor of 4 LDRs with sheets between them
The withe stips are the LDRs
When the stick on top is righted to the sun or the brightest point
the four LDRs get the same amount of light on them.
Example1 when the light is left on top:
right-top, right-down, left-down are in the shadow
and left-top get the most light
Example2 when the light is on top
left and right down are in the shadow and top is in the light
Step 2: Parts List
- 2 x servo’s
- 4 x lightdepending resistors (ldr)
- 4 x resistors 10K
- 1 x Arduino
- 2 x potentiometers 10k (value doesn’t matter)
Step 3: The set-up
Just hot glue it together!!!
Step 4: The circuitry
Step 5: The Code
you can download the code down this page
#include <Servo.h> // include Servo library
Servo horizontal; // horizontal servo
int servoh = 90; // stand horizontal servo
Servo vertical; // vertical servo
int servov = 90; // stand vertical servo
// LDR pin connections
// name = analogpin;
int ldrlt = 0; //LDR top left
int ldrrt = 1; //LDR top rigt
int ldrld = 2; //LDR down left
int ldrrd = 3; //ldr down rigt
void setup()
{
Serial.begin(9600);
// servo connections
// name.attacht(pin);
horizontal.attach(9);
vertical.attach(10);
}
void loop()
{
int lt = analogRead(ldrlt); // top left
int rt = analogRead(ldrrt); // top right
int ld = analogRead(ldrld); // down left
int rd = analogRead(ldrrd); // down rigt
int dtime = analogRead(4)/20; // read potentiometers
int tol = analogRead(5)/4;
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 rig
- 2 x servo’s
- 1 x Arduino
For more detail: Arduino Solar Tracker
