DIY Arduino Solar Tracker

Hello Nerds

Previous week i saw an amazing instrcutable of Geo Bruce's nice and simple solar tracker.

So,i thought to make my own and here is the output.

It is inspired from Geo Bruce's Work.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Items Required

Some items will be required which are easily available in electronic stores.

The items are as follows:-

1. 10k Resistor 1/4W X 4 Piece

2.10k Potentiometer X 2 Piece

3.4 Light Dependent Resistor

5.An Arduino Board

6.Cardboard(2 Rectangular Strips)

7.Some Jumper Wires


9.2 Hobby Servos (9g)

Step 2: Solar Tracker Module

To make this you have to cut two strips of cardboard.

Then Cut Small Length from the middle of the strips so that the two pieces of strips can intersect each other perfectly.(as shown in the images)

Glue them properly and fix 4 leds into each quadrant(each corner).

Voila! You made the solar tracker .

Step 3: The Circuit

The Top left LDR Goes to A0 Analog Pin.

The Down Left LDR Goes To A1 Analog Pin.

The Top Right LDR Goes To A2 Analog Pin.

The Down Right LDR Goes To A3 Analog Pin.

One of the two pins of all the LDR's Go Through The 10k Resistor to the Ground.

And the other pins are connected to positive pins in the breadboard.

Same with the two servos.The X-Axis servo's signal pin goes to Digital Pin 9 and the signal pin of Y-Axis Servo Goes to Signal Pin 10 of the arduino board.The positive wires of the servos are connected to the positive pins of the breadboard and the ground pins to the ground pins of the breadboard.

The two potentiometer's Ground and positive are connected with each other and also connected to the positive and ground pins in the breadboard.The variable supply pins of one pot goes to A4 pin and the other variable supply of the other pot goes to A5 pin of arduino board.

The 5V Pin of arduino provides power to the breadboard and the ground of the breadboard gets connected to the ground pin of the arduino.

Hence,the circuit completes!

now get ready for the coding!

Step 4: CODE

Just Paste this code given in this instructables.

The solar tracker should work!

If your solar tracker is malfunctioning , please check if there's any faulty or lose connections in the ldr's wires which goes into the breadboard and check the breadboard too.


Step 5:

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    14 Discussions


    Great work, thank for sharing. Please, How can i do to increase the sensibility of LDRs and the speed of servo?


    Great work, thank for sharing. Please, How can i do to increase the sensibility of LDRs and the speed of servo?


    3 years ago

    mine servos do not move at all, can you give me some ideas>


    i dont know hahah, sometimes when i pt the ldr`s in one way, the solar tracker follow the sun just on the x axis, sometimes when i chage the ldr`s just follow on y axis, and sometimes dont follow, the solar tracker tries to escape from the light...

    I am amost 100% that is the order that i put the ldr`s, but i cant make it work..

    Sorry fot my english, i am brazillan.



    Just make some changes in the code and it will work.

    I had also encountered the same problem .I fixed it by altering the horizontal and vertical axis part of the code.

    Also check the wiring of LDR's.


    4 years ago on Introduction

    Not tracking properly!How I do it to change the sensitivity within the code.I'm debugging dtime and tol two parameters, and sensitive but I don't like your vedio can quickly follow the moving light, what reason be?

    1 reply

    Reply 4 years ago on Introduction

    The code is alright.Worked for me.

    My first error came when the connections of LDR were not properly done.Check the connections of LDR to Ardunio and see if its not loose or something.

    If its working byt not tracking properly , try editing the code i.e Changing the horizontal and vertical values.