BAĞLAN

Güneşi Takip Eden Robot Yapımı (Arduino Solar Tracker)

  • Görüntüleme 5567
  • Bugünkü uygulamamızda arduino ile güneşi takip eden robot yapacağız.Bunun için ldr sensörleri kullanmak en doğru karar olacaktır.Ldr ışık sensörleri ışığın yoğunluğuyla direnç değiştiren sensörlerdir.Bizim yapmamız gereken güneşli ortamdaki direnç değeri ve gölgedeki direnç değerlerine göre algoritmayı oluşturmak olacaktır.Dönüşleri sağlamak için de servo motor kullanacağız.Hepsi bu kadar.Yapım aşamalarına geçebiliriz.

    Malzemeler:

    1. Arduino
    2. 2 Adet servo motor
    3. 4 Adet LDR sensör
    4. 4 Adet 10k direnç
    5. 2 Adet 10k potansiyometre

    Elektronik Devre Şeması:

     

    Ldr sensörlerin konumlarını aşağıdaki gibi yapabilirsiniz.

    Güneş Takip Kod

    #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 = A0; //LDR top left
    int ldrrt = A1; //LDR top rigt
    int ldrld = A2; //LDR down left
    int ldrrd = A3; //ldr down rigt
     
    void setup()
    {
    Serial.begin(9600);
    // servo connections
    // name.attacht(pin);
    horizontal.attach(9);
    vertical.attach(10);
    }
     
    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 = analogRead(A4)/20; // read potentiometers
    int tol = analogRead(A5)/4;
     
    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)
    {
    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)
    {
    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);
    }
    

     

     

    PAYLAŞ

    Sezgin GÜL

    Makine Mühendisi, Maker, Robotik Sistemler Uzmanı

    7 Yorum "Güneşi Takip Eden Robot Yapımı (Arduino Solar Tracker)"

    1. onur
      16 Ocak 2017

      Merhaba elibize saglik, ancak proje resimlerini daha ayrintili ve fazla verebilirseniz mutlu oluruz. Kolay gelsin

      Cevapla
    2. emre
      9 Aralık 2016

      Potansiyometreleri nerede kullanıyoruz bilgi verebilir misiniz ?

      Cevapla
    3. emre
      23 Ekim 2016

      tasarım harika 6 tane fotovoltaik hücre monte etmek istiyorum üstüne LDR leri nasıl monte etmem gerekiyor. ikinci 6 hücreyi döndürebilecek güçte servo motor önerebilirmisiniz ?

      Cevapla
    4. Yakup
      13 Ekim 2016

      Bana bu tasarım hakkında bilgi verirmisiniz.

      Cevapla
    5. meho
      18 Nisan 2016

      siz bi harikasınız , helal olsun , mukemmel . çok saolun

      Cevapla
    6. 5 Şubat 2016

      LDR yerine fotovoltaik pilde kullanılabilirdi.

      Cevapla
      • Sezgin GÜL
        5 Şubat 2016

        fotovoltaik pil zaten güneş paneli oluyor. Ldr ışığın şiddetini aldığı için kullanılıyor.

        Cevapla

    Bir yorum yaz

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Projeler Devamı

    Bizi Takip Et

    izmir escort- izmir escort- izmir escort- izmir escort- izmir escort