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 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 A0 int ldrrt = 1 ; //LDR top rigt A1 int ldrld = 2 ; //LDR down left A2 int ldrrd = 3 ; //ldr down rigt A3 void 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 left int rt = analogRead (ldrrt); // top right int ld = analogRead (ldrld); // down left int rd = analogRead (ldrrd); // down rigt int dtime =10 ; //change moving speed int tol = 10 ; // change tolerance between LDR`s 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); } |
L