Introduction: DIY Arduino Solar Tracker (To Reduce Global Warming)

Hello everyone, in this tutorial I will be showing you guys how to make a solar tracker using the arduino microcontroller. In today's world we suffer from a number of concerning issues. One of them is climate change and global warming. The need for cleaner and greener sources of energy is more than ever now. One such green source of fuel is solar energy. Although it is widely being used in various sectors across the globe, one of it's downsides is it's low efficiency. There are many causes as to why they are so inefficient, one of them being that do not get the maximum intensity of light that the sun has to offer throughout the daytime. This is because the sun moves as the day passes and it shines at different angles to the solar panel throughout the day. If we figure out a way to make the panel always face the brightest light the sun has to offer , we can at least make the most of what these solar cells have to offer. I try to solve this problem today with a small scale model. My solution is simple and very basic to say the least, what I have tried to do is that I tried to move the solar panel along with the motion of the sun. This ensures that the rays striking the panel are more or less perpendicular to it's surface of the panel. This provides maximum output from our current technology. You also might think "why not just rotate it using a timer! " . Well we can't do that everywhere because the duration of day varies widely across the globe and so does the weather and climate. Days in winter are shorter than that in summer, this causes the timer to not perform quite well. However the single axis solar tracker design allows for these shortcomings to be overcome. You might also think....."why not a 2 axis solar tracker then?". A 2 axis solar tracker is cool for a school project but it is not practically possible for solar farms the size of football fields.1 axis is a much more viable and practical solution for such an application.

This project will take less than 1 hour to build and you can have your own solar tracker ready to use. Also the code is provided at the end of the instructable for you to download . However I still will be explaining how the code and the overall project works. I also have entered this project into the Robot contest on instructables, if you like it please vote :).

Without any further ado , let's make it.


What you will be needing for this project is listed below, If you have them available at hand it's cool. But if you don't have them with you I will be giving a link for each of them. :

1.Arduino UNO R3 : (India, International)

2.Micro servo 9g : (flipkart,


4.Jumper wires and breadboard:(Flipkart, Amazon)


Step 1: Setting Up:

Now that we have all the hardware and software required to make our own wonderful solar tracking robot, let's assemble the setup. In the above picture I have provided the complete schematic for the setup of the apparatus.

=>Setting up the LDRs :

First of all, we need to understand how our light source is going to go about it's course throughout the day. The sun usually goes from the east to the west ,so we need to arrange the LDRs in a single line with adequate spacing between them. For a more effective solar tracker I would suggest that you place the LDRs with some angle between them. For instance I have used 3 LDRs so I would have to arrange them so that the 180 degree angle between them is divided in 3 equal sections , this will help me in getting a more accurate sense of the direction of the light source.

How the LDR functions is that it is basically a resistor whose body has semiconductor material within it. Therefore,when light falls on it extra electrons are released by the semiconductor which effectively results in a drop of it's resistance.

We will be mapping the voltage at the junction if the LDR and resistor to see the rise and fall of voltage at that point. If the voltage falls, it means that the intensity of light has reduced at that particular resistor. So, we will counteract this by moving away from that position to the position where the intensity of light is higher (voltage of whose junction is higher) .

=>Setting up the servo motor:

Basically the servo motor is a motor that you can assign an angle to. Now when setting up the servo you need to keep a factor in mind , you need to align the servo horn such that the 90 degree position corresponds to it being parallel to the plane it is being kept on.

=>Wiring it up:

Wire the setup as per the schematic diagram provided above.

Step 2: Writing the Code:

Plug the arduino into the computer using the USB cable and open the arduino IDE .

>Open the code provided in this instructable .

>Go to the Tools menu and select the board you are using i.e. UNO

>Select the Port to which your arduino is connected.

>Upload the program onto the arduino board.

NOTE: You must remember that I have calibrated the readings to conditions inside my room. Yours might be different than mine . So don't panic and open the serial monitor which is displayed at the top right corner of the IDE screen . You will be shown multiple values scrolling on the screen take a set of 3 consecutive values and calibrate the readings according to it.

Step 3: Testing It Out

Now with all the efforts that you have put into this little project of ours. It's time to test it out.

Go ahead and show everyone what you made and enjoy.

If you have any doubts/suggestions regarding this project , feel free to connect with me on My website

Robots Contest

Participated in the
Robots Contest