2 Eksen Arduino Shild Güneş Paneli

2 Eksen Arduino Shild Güneş Paneli

Mesajgönderen spina bifida » Pzt Kas 30, 2015 5:29 am

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

Videosu:
https://www.youtube.com/watch?v=1K_LSgkT6h4
Resim

Resim

Resim

ISIS çizimi
Resim

Arduino Shild ARES çizimi
Resim

Resim

Fritzing çizimi:
Resim

Arduino kodlarımız:
Kod: Tümünü seç
    #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);     
    }


İhtiyaç duyulması halinde konuya ait tüm dosyaları orjinal konu ekinden indirebilirsiniz. Üyelik gerektirir.
spina bifida
 
Mesajlar: 10
Kayıt: Pzt Kas 30, 2015 5:15 am

Dön Elektronik Konuları

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir

cron