Stepper Motor + Arduino + Solar Tracker (EV)

This instructable is the translation of another that was originally written in Spanish, so I beg your pardon if I have many grammatical errors, if so off I'd love to suggest me to edit it. I just do it because I like to share my projects.

It is a solar tracker, but not before mentioning my inspiration were devices by geo bruce and aplavins, except in my case use stepper motors, which can reduce the price of motors and increase capacity for freight or moving ;).

We all know that the trackers have the advantage of increasing the efficiency of capturing solar energy, as the Earth continues its noble movement, the project reflects the importance of this phenomenon and try to design a simple tracking system that can facilitate the installation. I hope I can be as explicit as possible and try to eliminate all doubts.

Step 1: Materials

  • Aluminum plate
  • Aluminum bar
  • Angle aluminum
  • stainless steel cylinder 316
  • stainless steel plate Nylon 6.6
  • bar screw 1/2 "x 21/2"
  • drywall screw 1 "
  • long screw 7/16 "x 21/2"
  • nut 7/16 "
  • lock washer 7/16 "
  • bearing R10RS UCF
  • oarlock 3/4 "
  • pulleys
  • timing belts
  • worm-gear system
  • LDRs
  • limit switches
  • connectors
  • Resistors (10K, 1K, 100Ω, 800Ω)
  • stepper motors
  • ULN2803
  • L298N
  • LM324N
  • BPW34 photodiode
  • Schottky diodes
  • transistor BC547C
  • Capacitor (220pF, 1nf)
  • Arduino UNO R3
  • wire
  • wood
  • paint
  • Truack safe w / outer 5/8 "

    Step 2: Structure design

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    The proposed design consists of a system with biaxial rotation with a cylindrical base, which allows to track the sun in an efficient, in addition to being compact as possible to avoid a large space area.

    In principle, I will simulate the prototype, it is a way that I have taken to prevent the fewest errors (although often it slip :)), try to use other materials if they deem fit, provided that enable run movements chords.

    Step 3: Solar Panel

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    To fasten the solar panel will be used a base formed by L profiles, better known in the market as angle, which rest the photovoltaic module. This base will be supported by a pair of square bars to the ends of this, so that the weight can be balanced throughout the system and in turn this will be subject to an axis to perform the azimuthal movement. It is important to note again that the entire assembly described will be very light to avoid the use of motors with large dimensions, since it would increase the cost and complexity of the system.

    The pair of bearings facilitate it operation, which it will support on top of the cylinder. For this a couple of bearings that will remain fixed to the base is employed. Using the bearings can lay the ball bearings and the shaft to rotate and rest at a time.

    Step 4: Azimuthal movement

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    To seat the bearings, a few pieces of stainless steel having the same outer diameter having the cylindrical base, in this way are used, the bearings can rest on small surfaces, it is important to note the cuts made in the base, some will allow crossing the axis, while others are only to reduce the weight of the device (also I did it for aesthetic ;)).

    With these elements we can achieve the azimuthal rotation, just need to have a circular transmission mechanism, either through a system of gears or pulleys with belt. For simplicity and softness, it is necessary to use the second system, ie, we can hold the shaft holding the base of the solar panel in the middle, by a driving pulley. To prevent slippage cause a toothed belt pulley and a belt with the same feature is used.

    Step 5: Zenithal movement

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    The next step is to run the other movement (zenith), this in turn shows no big deal and can be performed with different mechanical elements. It was decided to use a transmission mechanism circulated through a system of worm-gear at the bottom of the structure. This set is used when you want to transmit large efforts and increase transmission power. Usually works in intersecting axes to 90?.

    There are many difficulties when a gear system is used, but the most common problem is when you work with variation between their centers of operation, so it must be assembled precisely to ensure a smooth operation.

    The system worm pinion allow rotating the device, thanks to the mount to polymer disk, ie, the axis of the crown is coupled as male, whereas polymer disk fit as female (hopefully to appraise in :( images) Since the diameter of the disc is similar to the inner diameter of the cylinder and this is very large, the polymer disc should be reduced so that it can seat a bearing with a smaller diameter.

    Actually the UCF oarlock subject the disk by a set screw, while the cylinder is held by the latter by set screws. Basically, using these two systems we can provide the required movements in the project.

    Step 6: Prototype

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    Finally one can notice the device assembly, in the first figure I put a transparent material so that they can be seen the assembly of the mechanical components, as for the second figure, is a prototype simulation.

    So they can appreciate views of the prototype, I leave the video below:

    [Play Video]

    Step 7: Operation

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)

    LDRs help to determine where there are more light during the day, these were placed in the corners of the panel, grouped in such a way that can be seen in the previous figure, that is, a pair at the top and a pair at the bottom. For greater accuracy as to the brightness measuring, photoresists should be cover to avoid picking around the diffuse solar radiation, in other words, the propagation of light (electromagnetic waves) that are scattered and reflected in the atmosphere.

    Grouping the sensors allow to determine and execute both movements, for example, groups of LDR called left and right, are compared and if a higher or lower range determined to sensitivity difference then be executed a corresponding movement, of equally to the groups of top and bottom sensors, only these will determine the movement of the other axis.

    I also determined the average radiation between the four sensors, for what ?, so the idea is that at the end of the day, when solar projection is zero, the panel base rotate in the opposite direction, in dawn, hoping the next day, the sun comes out again.

    OPTIONAL

    I also make use of a photodiode, it is the BPW34, also deals in control, if you wish, you can skip this sensor, since the main application which I used it was for to measure the solar spectrum and record amounts of radiation solar which was subjected to the photovoltaic module. Remember to modify the code if you do not use it.

    Step 8: Electronic design

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Show All 12 Items

    In this step I show the circuits that were used to develop the prototype, don't forget to check the datasheets of drivers, that to determine whether they are able to move the engines that will occupy.

    Step 9: Code

    Stepper Motor + Arduino + Solar Tracker (EV)

    I leave the control code, I hope I have not missed anything, because the editor turned my whole haha XD.

    //Stepper Motor Solar Tracker by hectorhhg

    #include //Integrating library for dealing Stepper.h stepper motors

    #include //Integrating design math.h library for basic mathematical operations

    //Declaring Constants

    #define motorStephor 200 //steps for horizontal motor

    #define motorStepver 200 //steps for vertical motor

    //Digital pins

    #define motor1hor 6

    #define motor2hor 7

    #define motor1ver 8

    #define motor2ver 9

    //Variables

    int prom; //Average of four LDR

    int pyr; //BPW34 photodiode

    int h=60; //Steps executed by the horizontal motor

    int v=5; //Steps executed by the vertical motor

    int ltsensor; //Value of the top left LDR

    int rtsensor; //Value of the top right LDR

    int rdsensor; //Value of the bottom right LDR

    int ldsensor; //Value of the bottom left LDR

    int sen=50; //Sensibility

    int dil; //Average set of LDR left

    int dit; //Average set of LDR top

    int dir; //Average set of LDR right

    int did; //Average set of LDR bottom

    int diff; //Difference between LDR above the bottom

    int diff2; //Difference between LDR left to right

    int pup; //upper switch

    int pdown; //lower switch

    Stepper horStep (motorStephor, motor1hor, motor2hor);

    Stepper Stepper verStep (motorStepver, motor1ver, motor2ver);

    //Program initialization

    void setup ()

    {

    horStep.setSpeed (30); //RPM horizontal motor

    verStep.setSpeed (10); //RPM vertical motor

    //Serial Port

    Serial.begin(9600);

    //Pins configuration

    pinMode (pyr, INPUT);

    pinMode(ltsensor, INPUT);

    pinMode(rtsensor, INPUT);

    pinMode(ldsensor, INPUT);

    pinMode(rdsensor, INPUT);

    pinMode(pup, INPUT);

    pinMode(pdown, INPUT);

    }

    void loop ()

    {

    do

    while ( (pyr==0)&&(pup==HIGH)&&(prom

    if (-1*sen > diff || diff > sen) //If the measured difference between the set of sensors is greater or less than the sensitivity value

    {

    if(dit < did) //If the mean value of the above sensors is smaller than the bottom sensors

    {

    if (pdown==HIGH)

    {

    verStep.step (0); //Stop vertical motor

    delay (10);

    }

    else

    if (pdown==LOW)

    {

    verStep.step (v); //Turn motor up

    delay (50);

    }

    }

    else if(dit > did) //If the average value of bottom sensors is smaller than the above sensors

    {

    if (pup==HIGH)

    {

    verStep.step (0); //Stop vertical motor

    delay (10);

    }

    else if (pup==LOW)

    {

    verStep.step (-v); //Turn motor down

    delay (50);

    }

    }

    else //any other case

    {

    verStep.step (0); //Stop vertical motor

    delay (10);

    }

    }

    delay (10);

    pyr = analogRead (0); //Sensor readings again for possible change

    ltsensor = analogRead(1)*1.022;

    rtsensor = analogRead(2)*1.007;

    ldsensor = analogRead(3);

    rdsensor= analogRead(4)*1.013;

    dil = (ltsensor + ldsensor)/2; //Average sensors left

    dir = (rtsensor + rdsensor)/2; //Average sensors right

    diff2 = (dil - dir); //Difference between the level of radiation

    delay (50);

    if (-1*sen > diff2 || diff2 > sen) //If the measured difference between the set of sensors is greater or less than the sensitivity value

    {

    if(dil < dir) //If the average of the left sensor is smaller than the right sensor

    {

    horStep.step (h); //Turn motor right

    delay (10);

    }

    else

    if(dil > dir) //If the average of the left sensor is larger than the right sensor

    {

    horStep.step (-h); //Turn motor left

    delay (10);

    }

    else //any other case

    {

    horStep.step (0); //Stop horizontal motor

    delay (10);

    }

    }

    delay(10);

    }

    // "mov function"

    void mov ()

    {

    if (pup==HIGH)

    {

    verStep.step (72); //Turn 72 steps up (are the steps to change position once hide the sun)

    delay (50);

    }

    else if (pdown==HIGH)

    {

    verStep.step (-72); //Turn 72 steps down

    delay (50);

    }

    delay (10);

    }

    Step 10: Process and assembly of mechanical parts

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Show All 23 Items

    Well, it was time to pass the ideas to reality;). Needless to emphasize the coupling of the mechanical elements (I hope you have understood in the simulation), just show them some of the machining processes you use to create the pieces. And I can assure you that working with stainless steel is hard :(, but the finish is great, besides being a material that supports the extreme weather.

    I share you the design files that I used for the prototype, these are in Spanish but you will have no problem interpreting, all dimensions are in milimeters..

    Stepper Motor + Arduino + Solar Tracker (EV)
    solar tracker.pdf1 MB

    Step 11: Final tests!

    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Stepper Motor + Arduino + Solar Tracker (EV)
    Show All 10 Items

    Finally, when the mechanical part is finished, it is time to place each of the sensors and electronics. At the moment I do not have a solar panel :(, but I used a foam plate :) finally paint, looks great, What do you think? XD. I suggest that the resistors having the configuration of pull ups for LDR and switches, place them as close to these, I realized that it generated erroneous data when put to a longer distance.

    What is the function of limit switches?, prevent the panel moves down and can collide with the base of the prototype, is why a piece of washer was placed concentric to the axis and while it rotates, reaches the point where pressing switches are subject to the bearing, so that is the displacement limit of the solar panel.

    Keep all electronic components in a case, keep doing magic those with 3D printers or laser cutters and avoid using a box of chocolate like me :( haha.

    To close with a flourish, I leave a video where he did some tests follower :). See you soon!

    [Play Video]

  •  
     

    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