Step 1: How it works

Picture of How it works
a boven.jpg
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 4: The circuitry

Picture of The circuitry
1-40 of 138Next »
TomDunlap1 year ago
Just finished it and got it debugged. Really cool. Now I'm going to try to use it to build a Solar Forge and or a Solar Sand Sinter 3D Printer. Should be a snap. ;-)
geo bruce (author)  TomDunlap1 year ago
cool! :p
can you show us some video's or pictures?

Another development, I used a Makerbot Replicator to print a replacement for the foam core sensor holder. Here is the Sketchup pic of it. The two pieces glue together. The center top hole is for a fifth sensor to shut the system down if clouds block the sun so it doesn't try to point at the brightest cloud.
Pyramid 3.png
geo bruce (author)  TomDunlap1 year ago
nice upload your design to
geo bruce (author)  TomDunlap1 year ago
Sure, here is the link to the YouTube clip I made:
geo bruce (author)  TomDunlap1 year ago

It's cool to see your instructable finished by someone else :D
it means i've helped someone ^^ or someone liked my project! :D
It's really helpful to get me started toward my other goals.
Next I want to modify the code to operate some 12V drill motors with a MotorShield or the like if I can find one that will handle the 3-4A current.
NicolaP2 days ago

hi i'm sorry for my english but the 2 potentiometers what do? tolerance from? speed?

geo bruce (author)  NicolaPyesterday
tolerance: adjusts the threshold light difference before the solartracker moves

speed: is the delay between the updates

I have a question. Why is the drawing pin numbers different than the code.

I had it working once, now know matter how I switch the wires it acts like its running backwards. need help, Thanks

thank you!! for sharing your idea

Star3161 month ago

HI! I have a problem:( i did everything EXACTLY like yours but when i try it out it just moves a little bit then stop, moves a little bit then stops ETC

Any ideas :/

geo bruce (author)  Star3161 month ago
one of the potentiometers can adjust the speed the time/speed potentiometer
caco.romeroh2 months ago

thanks! I'm trying to build it, this is my first stage

Star3162 months ago

Hi! I have a problem:( I can't really put the 2 potentiometer right next to each other they are just too big any ideas?

geo bruce (author)  Star3162 months ago
solder wires to the contacts and put those in to the breadboard
mirage12072 months ago

Hello :) i made this very cool solar tracker, implement a big solar cell and load wit it my cellphones! really really great!!!! big thank you!!

now i have a little question: is it possible to take one other LDR to shut down the servos at night? if its too dark, my tracker moves very wired.. :( so i think its a good idea to shut down at night... what did you think? :)

geo bruce (author)  mirage12072 months ago
good idea but you don't need an extra LDR for that just take the average of the 4 ldr's and If the value drops below a certain minValueShutDown then don't move the servos anymore
and when it's above a certain maxValueShutdown then let it start again

can you post some of your results (photo's videos)

@geo bruce. cool, so no need for more
hardware and electronics... could you progamm this? im a really bad
programmer in arduino... :( mine is more the hardware :)

Hassanul_2 months ago

Are those continuous or 180 degree servos?

mahsgoob3 months ago
I want thank you for this project its very nice and i did one and its working proparly
juanjomf5 months ago

You can give me the code to do only with 2 LDR, which is what brought my arduino kit?

in my city and I find ldr. It should work similarly with 2 right?

You can spend as would be the code?

amatj7 months ago

Nice and useful project, thanks for share.

I've make the tracker but it doesn't works fine, may be you could help me. When I connect it, the horizontal servo starts to go from one side to another and the vertical servo doesn't work. I try to atract de tracker with a flashlight, but it don't react to light.

I just copied the code, but I don't know if it needs some adaptation.

Any help would be usefull... any idea.

Thanks in advance

gle keur1 year ago
hi geo

i just want some insight if i were to remove the potentiometer can you hard code a tolerance?
geo bruce (author)  gle keur7 months ago

sure you can!

owi028 months ago

wooow !! this is amazing ... i have just made solar tracker.. i was trying to program it ... it works fine ... but sometimes it moves randomly.. probably because of the tolerance....what tolerance did you used for this ?

thx! was really helpful!

danielebosco9 months ago
Hi Bruce, I am trying to have your project working, I am new whit this, I am using an ARDUINO atmega328 I connect al the components and load the code but I figured out that I bought a different motors stepper 360g and I believe need to change some value on code motors are, tks for help
as9510 months ago
could you please tell what is the material used in the white sheet and what are its dimensions ,ill be grateful if you could do that
as9510 months ago
could you please tell what exactly is the material used in the white sheet? and also what are the dimensions.. ill be really grateful if you could help
luksusowa10 months ago
This is a great script and is really helping with my project. I have a similar thing, except a drum (with a face) rotates to the brightest of three LDR/Sensors. I can’t seem to get the servo to respond to the LDRs though can anyone help – I’m pretty new at this:

if (ldrOneVal > ldrTwoVal)
servoR = ++servoR;
if (servoR > 180)
servoR = 149 + ldrOneLoc; }
else if (ldrOneVal < ldrTwoVal)
servoR= --servoR;
if (servoR < 0)
servoR = 149 + ldrTwoLoc; }
} myservo.write(servoR);

Can I just copy this three times and change the vars? Or do I have to do something else? Can anyone help?
Pute795210 months ago
lightdepending resistors valor?
aleza8410 months ago
Are the sheets in between each ldr necesary? I was planning to attach plain one into each corner of a solar pannel.

vilacikovski10 months ago
hi bruce. firstly, thank you for your design, it is really very useful to me. but im having some trouble. though my robot moves top or bottom successfully, when it comes to left or right movement, it cannot move without going top or bottom. im using sg90 servo, and arduino mega2560. Can you please help me ?
kasiya10 months ago
Is this board is ATMEGA 328 ??? or can we use any board
Pute795211 months ago
sketch arduino pleaseeeee
itnas1911 months ago
Thank you very much, Bruce from Madrid. I've made a model with your information and it works!!
Congratulations for enjoy making these thing and share with us.
itnas19 itnas1911 months ago
This is a vídeo about my tracker

1-40 of 138Next »