Arduino Solar Tracking Robot

This is a simple solar tracker which automatically orients itself towards the sun or any bright source of light like the sun .If you place solar panels on this robot it can increase their productivity by 90 to 95 %. At first creating a solar tracking robot may sound complicated but it quite quickly becomes clear. As the title suggests it runs on the arduino board .This is a fun to do and low cost project.

This instructable was inspired from geo bruces instructable solar tracking robot

This instructable explains how to create your own solar tracking robot, how to set up the robot and how to test the robot.

This instructable is a entry in the robot challenge in the age category of 13 - 18 (I am 14 years old).

Step 1: Parts & Tools

Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Parts:
~ 2 x Servo Motors - Local Electronics Store
~ 4 x LDR's - Local Electronics Store
~ 4 x 10k Resistors - Local Electronics Store
~ Arduino Uno - Sparkfun.com
~ 2 x 50k Variable Resistor - Local Electronics Store

Tools:
~ Soldering Iron - Sparkfun.com
~ Solder Wire - Sparkfun.com
~ Jumper Wires - Sparkfun.com
~ Protoboard - Local Electronics Store

All the parts will cost you less than 30$ (Excluding the arduino and all the tools)

Step 2: Build The Circuit

Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
The Circuit is pretty simple connect the four LDR's to analog pins 0,1,2 and 3 respectively via a 10k resistor.Connect the two servos to digital pins 9 and 10 respectively.Conect the two variable resistors to analog pins 4 and 5 .Take a Look at the pictures they really help.See the last picture for the circuit diagram (It might be the baddest that you have ever seen).

Step 3: Build The Sensor Assembly

Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
Arduino Solar Tracking Robot
To build the the sensor assembly take two rectangular pieces of cardboard, cut a long slit through the middle of the first cardboard piece.Cut a short slit through the middle of the second cardboard piece and then intersect both of them and fix them nicely using some tape. It should look like a 3D cross with 4 sections..We have to place our four LDR's in these four sections of the cross.See the pictures they really help.

Step 4: Set It Up

Arduino Solar Tracking Robot
Find a base (Nescafe bottle in my case) and stick your fist servo to it then to the rotor of the first servo connect the second servo.To the rotor of the second servo connect the sensor assembly that we made earlier.To test your robot take it out in the sun and it should automatically align itself towards the sun.If indoors it will align itself to the brightest source of light in the room. Take a look at the pictures they really help.

Step 5: The Code

Heres the code for your solar tracing robot:

#include // 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 rigt

if (-1*tol > dvert || dvert > tol) // check if the diffirence is in the tolerance else change vertical angle
{
if (avt > avd)
{
servov = ++servov;
if (servov > 180)
{
servov = 180;
}
}
else if (avt < avd)
{
servov= --servov;
if (servov < 0)
{
servov = 0;
}
}
vertical.write(servov);
}

if (-1*tol > dhoriz || dhoriz > tol) // check if the diffirence is in the tolerance else change horizontal angle
{
if (avl > avr)
{
servoh = --servoh;
if (servoh < 0)
{
servoh = 0;
}
}
else if (avl < avr)
{
servoh = ++servoh;
if (servoh > 180)
{
servoh = 180;
}
}
else if (avl = avr)
{
// nothing
}
horizontal.write(servoh);
}
delay(dtime);
}
Arduino Solar Tracking Robot
solar_tracking_robot.pde1 KB

Step 6: All Done!

Arduino Solar Tracking Robot
Hope this project inspires further experimentation. The Arduino board is incredibly versatile,cheap, and accessible to all hobbyists . This is just one of many simple projects which can be constructed using the arduino. Keep pondering!.Dont forget to follow mores comming up.For any queries contact me heres my E-mail ID r1398ohit@gmail.com
 
 

Tag cloud

make build easy simple arduino making homemade solar laser printed portable cheap mini building custom cardboard wooden create super lego turn paracord chocolate your paper light intel