To use the most amount of light from the sun for the solar plate system.. because it was my graduation project as a fixed solar panel and i won't to modify this modification to increase the effeciency but i couldn't because of the time and stresses
Simply it's a tracing system for the sun position.. it will follow the light from east to west ..buy using a servo motor controlled by Arduino and take a signal from a light sensor
cura for 3d printing slicing and 3D printer to print
RD for laser cutting to cut the wood
arduino for control programming
Firstly, I started to draw sketches of 6 sides of the design, so I started my design process by, by using the dimensions of the card board which i did in the previous step , I started with the base enclosure
In this sketch I was drawing by following the following methodology:
Drawing: using the following commands:
Line (L)
Rectangle (R)
Mirror
Circle
Modification: using the following commands:
fillet
Trim
Fully defining: using the following tools
Dimensions
Constraints
here i sketched the base part which the horizontal servo stand on it by 4 spacers
this the side part for the electronics enclosure and of course the T slots up and down
i sketched here the front side for the base i sketched a place for the LCD/ place for powering Arduino with the 2 sockets
circular socket for the adaptor r= 6
on /off switch 14*20
here i sketched the horizontal plate which the servo move to have a horizontal rotation
i sketched here the place which i can mount the horizontal servo
here i sketched the side bracket for the vertical servo motor
i sketched here the bracked which mounted under the plate carries the solar panel
here i sketched the plate carried the solar panel considering 2 slots for the 2 brackets under it and the small plate up to divide the 4 LDR sensors..its an important part which make each sensor detect one direction
by using joints and could make a good assembly for the all parts to make my project
and this the fusion file
https://drive.google.com/file/d/13xI0j9w9y8FnZBeqxFUJUgO7dOwVA1Vb/view?usp=share_link
and this is the DXf file as ai file
https://drive.google.com/drive/folders/1MRGXAejyRTWi-2PRSyE23wqRPQfGYXwr?usp=share_link
I started to build my circuit on Tinker CAD which is composed of
Brain:
Arduino UNO.
Input Components:
4 LDR Sensors
Action Components:
2 Servo Motors.
LCD
Power Management:
5v Adaptor is suitable for the 2 servos and the 4 LDR sensors
Connections:
The horizontal Servo goes to Pin 7.
The vertical Servo goes to Pin 8.
TR goes to Pin A0
TL goes to Pin A1
BR goes to Pin A2
BL goes to Pin A3
Common Negative (from the Breadboard) can go to any of the GND (Ground) pins.
Common Positive (from the Breadboard) can go to the 5V pin.
i have 3 components need power in my project
1- arduino needs 5 volt and from its 5V pin
2- servomotors need 5 volt
3- LDR sensors need 5 volt
I used a 5 volt adaptor and it was fine with servo motors and the LDR sensors
the servo motor works on 5 volts from the data sheet and the LDR sensors too
first, I started by defining the variables and including the libraries of the servos, then I started writing the code for the intensity of the lighting, and finally, I wrote the servo movement code according to the average of LDRs values as shown in the embedded code
the 2 servos stay at 45 degrees in the beginning and calculate the average of top/bottom /left /right LDRS
and if the difference between average top/left is more than the tolerance of the vertical servo motor then move one degree more until it will be equal the Limit high of the motor (160)
or if difference between average top/left is less than the tolerancethen move one degree back in the negative direction
and the same sequence with the horizontal servo motor
we will calculate the average of
#include <Servo.h> to call the library for the servos
#define TOLERANCE 10
#define STEP_DELAY 7
Servo servohori;
int servoh = 0;
int servohLimitHigh = 160;
int servohLimitLow = 20;
defining the variables
Servo servoverti;
int servov = 0;
int servovLimitHigh = 160;
int servovLimitLow = 20;
//Assigning LDRs
int ldrtopl = A0;
int ldrtopr = A3;
int ldrbotl = A1;
int ldrbotr = A2;
void setup ()
{
servohori.attach(8);
servohori.write(45);
servoverti.attach(7);
servoverti.write(45);
Serial.begin(9600);
delay(500);
}
void loop()
{
servoh = servohori.read();
servov = servoverti.read();
//capturing analog values of each LDR
int topl = analogRead(ldrtopl);
int topr = analogRead(ldrtopr);
int botl = analogRead(ldrbotl);
int botr = analogRead(ldrbotr);
calculating average
int avgtop = (topl + topr) / 2; //average of top LDRs
int avgbot = (botl + botr) / 2; //average of bottom LDRs
int avgleft = (topl + botl) / 2; //average of left LDRs
int avgright = (topr + botr) / 2; //average of right LDRs
Serial.println(avgtop);
comparing the tolernace of the servo by the average between top and botton
if (TOLERANCE < avgbot - avgtop)
{
servoverti.write(servov + 1);
if (servov > servovLimitHigh)
{
servov = servovLimitHigh;
}
delay(STEP_DELAY);
}
else if (TOLERANCE < avgtop - avgbot)
{
servoverti.write(servov - 1);
if (servov < servovLimitLow)
{
servov = servovLimitLow;
}
delay(STEP_DELAY);
}
else
{
servoverti.write(servov);
}
if (avgleft - avgright > TOLERANCE)
{
servohori.write(servoh + 1);
if (servoh > servohLimitHigh)
{
servoh = servohLimitHigh;
}
delay(STEP_DELAY);
}
else if (avgright - avgleft > TOLERANCE)
{
servohori.write(servoh - 1);
if (servoh < servohLimitLow)
{
servoh = servohLimitLow;
}
delay(STEP_DELAY);
}
else
{
servohori.write(servoh);
}
delay(STEP_DELAY);
}
With t slot I put the bolt and nut to fix the side part of the electronics enclosure part
Here i put the base plate to build all components on it by using the slots ( T slot/ x slots
Here i used the driller to open 2 holes for fixing the Arduino on the base plate
Mounting the front side with t slots also on the base
the opposit bracket for the vertical servo motor should move also the same rotation so i put bolt M3 with self locking nut to avoid disassembly and allow rotation
I used nuts for the M3 spacers to mount it on the top plate of the electronics enclosure part
and M3 bolt to fix the horizontal servo
i used blot M3 to fix the virtical servo motor with the bracket
in the final step i checked every thing goes well the sevrvo motors moving horizontal and vertical accordoing to the average of the LDR light sensing
Here i used the driller to open a hole for wires to make the rotational movement simply without touching that amount of wires
actually i wanted this solar system to power at least the Arduino but unfortunately Esraa ( instructor ) has explained to me ( the power comes from the panel is too small .. i need at least 10 panels to get 10 watt ( 5 v /2A)
i used just led to detect if there is apower comes from the solar panel or not
when this bracked moves up and down by the force of the other bracket of servo motor . the bolt rotate also and get disassembled always
i asked Amany ( instructor ) she suggested to me to use self locking nut better than normal nut it alow the bolt to rotate and nut stay fixed and just rotate with the bolt
i fabricated 2 times on the laser cutting machine because in the first time the dimensions of each part wasn't fit to assembly
it would be that all dimensions must be carefully checked and made sure that they fit together by simulating their assembly on Fusion360 and also taking into account the wires and electronics passage holes before cutting them on the laser cutting machine.
i will put more panels to power the arduino and charge battery to use it for more applications like mobile or fan
LCD to shows the intensity of the light along the day