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

27 19.533

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

Projeyi Satın Al

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);
}

 

 

Bunlar da İlgini Çekebilir
Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

27 Yorum
  1. Abdullah

    Sistemi kurduk çalışıyor. Sistemin kaynağı yabancı bir site. Yalnız 2 sitede de direnç değerleri yanlış verilmiş. 10k değil de 1k değerli dirençler kullanılmalı. Aksi takdirde proje çalışmıyor.

    1. Ebubekir

      Doğru bilgi, sistem 1K direnç ile çalışmakta. Bunun haricinde başka bir sorun ile karşılaşmadım.

  2. hüseyin

    Merhaba,bu iki servo motorun birbibrine mekaniksel bağlantısı nasıl oluyor?

  3. harun

    ellerinize sağlık on numara olmuş

  4. burak

    potansiyemetre kullanmasak bir mahsuru olur mu

  5. burak

    potansiyometri kullanılmasa bi mahsuru olur mu

  6. Ali Yusuf

    Ürünün detaylı fotoğraflarıne nerden ulaşabilirim

  7. Engin Birkan

    ldr ışık sensörünü nasıl bağladınız

    1. Sezgin GÜL

      bir bacağını direk 5v girişine takın. diğer bacağını ise hem sinyal pinine hem de direnç üzerinden gnd ye takın. Yukarıda devre şemasında bağlantı şekli mevcuttur.

  8. MCcC

    BURADA KULLANILMAKTA OLAN ARDUINO HANGİ ÇEŞİTİDİR. BELİRTİLMEMİŞ

    1. Sezgin GÜL

      modeli fark etmez. Uno kullanabilirsiniz.

      1. MCcC

        eyvallah kardeş

  9. emre

    sezgin bey benimde bu sistemden yapmam gerekiyor bana yardımcı olurmusunuz ?

    1. ertugrul sayar

      Buyur ne konuda yardım istiyorsun

  10. ertugrul sayman

    Sensörü ve motorları nasıl bağladınız(mekanik olarak) bilgi verirseniz sevinirim

  11. yılmaz İNAL

    sezgin bey burda potansiyometre kullanma amaçımız ney? potansiyometreyi kullanmasak olurmu? tşk

    1. Sezgin GÜL

      A4 e takılan sistemin yenilenme hızını ayarlıyor . A5 deki de referans alınacak ışık şiddeti değerini ayarlamayı sağlıyor.

  12. Koray

    merhaba kolay gelsin. Bende bu sistemin aynısını kurdum horizontal düzlemde hareket eden motor çalışıyor fakat vertical düzlemde çalışması gereken motor titriyor sadece A2 pinine bağlı ldryi elimle kapattığım zaman çalışıyor. Sorun ne olabilir acaba yada başınıza gelen bu tarzda bi problemi nasıl çözdünüz yardımcı olurmusunuz ?

    1. Sezgin GÜL

      Titreme, gerilim veya akımın yetersizliğinden kaynaklanır

  13. onur

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

  14. emre

    Potansiyometreleri nerede kullanıyoruz bilgi verebilir misiniz ?

  15. emre

    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 ?

  16. Yakup

    Bana bu tasarım hakkında bilgi verirmisiniz.

  17. meho

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

  18. Ergün

    LDR yerine fotovoltaik pilde kullanılabilirdi.

    1. Sezgin GÜL

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

      1. Kadir

        Kardeş halen yapıyomusunuz