
Projemizin amacı, günün her saatinde güneş ışınlarından faydalanmaktır. Güneşin dik gelmediği durumlarda elektrik üretimi az olmaktadır. Bu sorunu çözmek için de güneş ışınlarının panele dik gelmesi gerekmektedir. Güneş ışınları panele dik gelirse güneşten faydalanma oranımız maksimum seviyeye çıkar. Bizim sistemimizde panelimiz güneş ışınlarının geldiği yöne doğru yönelmektedir.
Projemizde kullandığımız malzemeler şunlardır :
- 4 adet LDR
 - Arduino Uno R2
 - 4 adet 10k ohm’luk direnç
 - 2 adet servo motor
 - 1 adet Boost converter (dönüştürücü)
 - 1 adet güneş paneli (4.2V)
 - 1 adet powerbank
 
Yapım Aşaması:
İlk olarak sisteme ait kodlar arduino programı kullanılarak yazıldı. Sistemimizi şekildeki gibi breadboard üzerine kurduk.

Sistemin beardboard üzerinde çalıştığını test ettikten sonra platform yapıldı. Platform üzerine servo motor, LDR ve direnç montajı yapıldı. Platform üzerinde sistemin arduino ile çalışıp çalışmadığı kontrol edildi. Ayrıca şekilde servo motorların platform üzerinde nasıl yerleştiği görülmektedir.

4 adet LDR, 4 adet direnç ve güneş panelimiz mukavvadan yapmış olduğumuz tek plaka üzerine şekilde görüldüğü üzere yerleştirilmiştir.

Güneş panelini Boost dönüştürücü yardımıyla Powerbank’e bağladık. Powerbank’imizi de Arduino Uno’ya bağladık. Burada ki amacımız, güneş panelinde üretilen enerjiyi Powerbank’a depolayıp daha sonra bu enerjiyi Arduino’nun ihtiyaç duyduğu güç olarak kullandık. Servo Motorlar Powerbank’ten alınan güç sayesinde çalışarak platformun hareketini sağladı. Bu şekilde sistem, kendi içerisinde bir enerji dönüşümü sağlamış oldu.
Arduino da yazdığımız kodlar aşağıda belirtilmiştir:
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
 | 
#include <Servo.h> // include Servo libraryServo horizontal; // horizontal servoint servoh = 90; // stand horizontal servoServo vertical; // vertical servoint servov = 90; // stand vertical servo// LDR pin connections// name = analogpin;int ldrlt = 0; //LDR top left A0int ldrrt = 1; //LDR top rigt A1int ldrld = 2; //LDR down left A2int ldrrd = 3; //ldr down rigt A3void setup(){Serial.begin(9600);// servo connections// name.attacht(pin);horizontal.attach(9, 1000, 2000);vertical.attach(10, 1000, 2000);}void loop(){int lt = analogRead(ldrlt); // top leftint rt = analogRead(ldrrt); // top rightint ld = analogRead(ldrld); // down leftint rd = analogRead(ldrrd); // down rigtint dtime =10 ;//change moving speedint tol =10; // change tolerance between LDR`sint avt = (lt + rt) / 2; // average value topint avd = (ld + rd) / 2; // average value downint avl = (lt + ld) / 2; // average value leftint avr = (rt + rd) / 2; // average value rightint dvert = avt - avd; // check the diffirence of up and downint dhoriz = avl - avr;// check the diffirence og left and rigtif (-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);} | 
L
