PDA

Orijinalini görmek için tıklayınız : 43. 2 Eksen Güneş Paneli



bolubeyi
12.Eylül.2015, 17:38
Bu dersimizde güneş panelinden mümkün olabilen maksimum seviyede enerji alabilmek için güneş panelini otomatik olarak güneşe yönlendiren platform yapmayı öğreneceğiz. Güneş konumunu değiştirdikçe platformumuz güneşin konumunu takip edecektir. Paltformun üzerine bir güneş pili yerleştirilmiştir. Güneş pili de bir bataryayı şarz etmektedir. Bu şekilde gündüzleri bataryamızı maksimum seviyede şarz edip, geceleri bataryamızdan enerji alabiliriz.

Güneşin pozisyonunu tespit edebilmek için sistemde 4 adet ldr (foto direnç) kullanmıştır. Bunlardan ikisi yatay kontrol, diğer ikisi dikey kontrol içindir. Her bir ldrye devre şemasında görüldüğü şekilde birer tane 10klık direnç seri bağlanmıştır. Bu bağlantı sayesinde arduinonun analog A0, A1, A2 ve A3 girişlerine güneşin pozisyonuna göre yaklaşık 0 volt ile yaklaşık 5 volt arasında birbirinden farklı gerilimler düşer. Hangi ldr daha fazla ışık alıyorsa o ldrye ait analog girişte diğer analog girişlere nazaran daha fazla gerilim düşümü olacaktır. Arduino programımız sayesinde analog girişlere düşen gerilimler değerlendirilerek servolara sağa ya da sola dönmeleri için sinyal yollanır. A0 ve A1 girişlerindeki gerilimler yatay kontrolü, A2 ve A3 girişlerindeki gerilimler ise dikey kontrolü sağlayacaktır. Servoların harekete geçmesiyle ldrlerin üzerine düşen ışık şiddetleri eşitlendiğinde ldrlerin üzerine düşen dolayısıyla A0 ve A1 (yatay kontrol) pinleri ile A2 ve A3 (dikey kontrol) pinlerine düşen gerilimler birbirine eşit olacaktır. Yani A0 gerilimi = A1 gerilimi ve A2 gerilimi = A3 gerilimi olana kadar servolar hareket edecek ve platformun güneşe göre uygun pozisyon alması sağlanacaktır.

Malzeme listesi:
Arduino uno
Pan tilt servo motor montaj kiti
Bakırlı pertinaks
Baskı devre malzemeleri
4 adet 10 k direnç
4 adet ldr
2 adet servo
Güneş pili
Batarya
Bilgisayar
Bağlantı iletkenleri
El ve güç aletleri
Muhtelif vida ve civatalar
1K_LSgkT6h4

https://temrinlerim.org/images/arduino69.jpg

https://temrinlerim.org/images/arduino70.jpg

https://temrinlerim.org/images/arduino71.jpg

ISIS çizimi
ISIS çizimini konu ekinden indirebilirsiniz.
https://temrinlerim.org/images/arduino68.PNG

Arduino Shild ARES çizimi
Ares dosyasını konu ekinden indirebilirsiniz.
https://temrinlerim.org/images/solar_ares.PNG

https://temrinlerim.org/images/solar2.PNG

Fritzing çizimi:
Fritzing dosyasını orjinal konu ekinden indirebilirsiniz.
https://temrinlerim.org/images/arduino72.png

Arduino kodlarımız:
Arduino kodlarına ait dosyayı orjinalkonu ekinden indirebilirsiniz.

#include <Servo.h>

Servo yatay;
int pos = 90; // Başlama pozisyonu
int sens1 = A0; // LRD 1 pin
int sens2 = A1; //LDR 2 pin
int tolerance = 2;

Servo dikey;
int pos2 = 90; // Başlama pozisyonu
int sens3 = A2; // LRD 3 pin
int sens4 = A3; //LDR 4 pin
int tolerance2 = 2;
void setup()
{
yatay.attach(9); // Dijital 9 pini yatay servoya bağlanacak
dikey.attach(10); // Dijital 10 pini dikey servoya bağlanacak
pinMode(sens1, INPUT);
pinMode(sens2, INPUT);
pinMode(sens3, INPUT);
pinMode(sens4, INPUT);
yatay.write(pos);
dikey.write(pos2);
delay(2000); // a 2 seconds delay while we position the solar panel
}

void loop()
{
int val1 = analogRead(sens1); // sensor 1 oku
int val2 = analogRead(sens2); // sensor 2 oku
int val3 = analogRead(sens3); // sensor 3 oku
int val4 = analogRead(sens4); // sensor 4 oku
if((abs(val1 - val2) <= tolerance) || (abs(val2 - val1) <= tolerance)) {

} else {
if(val1 > val2)
{
pos = --pos;
}
if(val1 < val2)
{
pos = ++pos;
}
}

if(pos > 180) { pos = 180; }
if(pos < 0) { pos = 0; }

yatay.write(pos);
delay(60);



if((abs(val3 - val4) <= tolerance2) || (abs(val4 - val3) <= tolerance2)) {

} else {
if(val3 > val4)
{
pos2 = --pos2;
}
if(val3 < val4)
{
pos2 = ++pos2;
}
}

if(pos2 > 180) { pos2 = 180; }
if(pos2 < 0) { pos2 = 0; }

dikey.write(pos2);
delay(60);
}

Orjinal konu ve gerekmesi halinde konu ekleri (Üyelik gerektirir.) için tıklayınız. (https://temrinlerim.org/index.php?topic=226.0)