Arduino Solar Tracker
What is does:
It searches for the brightest light source like the sun.


Step 1: How it works

Arduino Solar Tracker
Arduino Solar Tracker
Arduino Solar Tracker
Arduino Solar Tracker
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

    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker
    Show All 8 Items
    Just hot glue it together!!!

    Step 4: The circuitry

    Arduino Solar Tracker
    Arduino Solar Tracker
    Arduino Solar Tracker

    Step 5: The Code

    you can download the code down this page

    /* this code is written by geobruce
    for more info check my site http://xprobe.net
    */
    #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 Tracker
    solar_tracker__english_.pde1 KB
     
     

    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