☀️ Arduino Güneş Takip ve Enerji Üretim Sistemi Projesi (2026 Rehberi)
Arduino ile Güneşi Takip Eden Akıllı Güneş Paneli Tasarımı
Güneş enerjisi günümüzde en hızlı büyüyen yenilenebilir enerji kaynaklarından biridir. Ancak sabit konumda duran güneş panelleri gün boyunca yalnızca belirli saatlerde maksimum verimle çalışabilir. Güneş doğudan doğar, gün boyunca hareket eder ve batıdan batar. Panel sabit kaldığında güneş ışınları gün içerisinde farklı açılarla panele çarpar ve bu durum enerji üretimini önemli ölçüde azaltır.
Bu sorunun çözümü Güneş Takip Sistemi (Solar Tracking System) kullanmaktır.
Bu projede Arduino tabanlı, çift LDR sensörü kullanarak güneşin yönünü algılayan ve servo motor yardımıyla paneli otomatik döndüren akıllı bir sistem geliştireceğiz.
Bu proje;
- Robotik Kodlama Atölyeleri
- STEM Laboratuvarları
- TÜBİTAK 2204
- TEKNOFEST
- Maker Atölyeleri
- Yenilenebilir Enerji Eğitimleri
için oldukça etkileyici ve öğretici bir çalışmadır.
Projenin Amacı
Arduino kullanarak;
- Güneşin yönünü algılamak
- Paneli otomatik döndürmek
- Maksimum güneş ışığını almak
- Üretilen voltajı ölçmek
- LCD ekranda göstermek
- SD karta veri kaydetmek (opsiyonel)
- Enerji üretimini artırmak
💡 Arduino Güneş Takip ve Enerji Üretim Projesi Çift Eksenli Güneş Takip Sistemi

Arduino Güneş Takip ve Enerji Üretim Sistemi Projesi Çift Eksenli Güneş Takip Sistemi Tasarımı
Projenin Çalışma Mantığı
Sistemin temel mantığı oldukça basittir.
Panelin sağ ve sol tarafına yerleştirilen iki adet LDR sensörü güneş ışığını ölçer.
Eğer;
Sağ LDR daha fazla ışık alıyorsa
↓
Servo motor paneli sağa döndürür.
Sol LDR daha fazla ışık alıyorsa
↓
Servo sola döner.
İki sensör aynı ışığı gördüğünde
↓
Motor durur.
Böylece panel gün boyunca sürekli güneşi takip eder.
💡 Arduino Güneş Takip ve Enerji Üretim Sistemi Projesi Devre Şeması

Arduino Güneş Takip ve Enerji Üretim Sistemi Projesi Devre Şeması
Kullanılacak Malzemeler
| Malzeme | Adet |
|---|---|
| Arduino Uno | 1 |
| SG90 Servo Motor | 1 |
| 2x LDR Sensörü | 2 |
| 10K Direnç | 2 |
| Mini Güneş Paneli (6V-12V) | 1 |
| LCD 16×2 (I2C) | 1 |
| Breadboard | 1 |
| Jumper Kablo | Yeterli |
| Voltaj Sensörü | 1 |
| SD Kart Modülü (Ops.) | 1 |
| Şarj Kontrol Kartı | 1 |
| 18650 Pil | 1 |
| Anahtar | 1 |
Sistem Blok Diyagramı
Güneş
☀
↓↓↓↓↓↓↓↓
[LDR] [LDR]
│
Arduino UNO
┌──────────────┐
Servo LCD
│
Güneş Paneli
│
Voltaj Sensörü
│
Batarya
│
Yük
Pin Bağlantıları
| Arduino | Bağlı Olduğu |
|---|---|
| A0 | Sol LDR |
| A1 | Sağ LDR |
| D9 | Servo |
| A2 | Voltaj Sensörü |
| SDA | LCD |
| SCL | LCD |
Aşağıdaki kod, Arduino UNO + 4 LDR + 2 Servo (Azimut + Elevation) + 16×2 I2C LCD + Voltaj Sensörü kullanan çift eksenli güneş takip sistemi için hazırlanmıştır. Kodun her satırı ayrıntılı olarak açıklanmıştır. Bu yapı, TÜBİTAK ve TEKNOFEST projeleri için uygun, geliştirilebilir bir temel oluşturur.
Arduino Güneş Takip Sistemi (2-Axis)
/******************************************************
Arduino 2-Axis Solar Tracker
Açıklamalı Eğitim Kodu
Hazırlayan : İz Atölye
******************************************************/
// Servo motor kütüphanesini ekle
#include <Servo.h>
// LCD kütüphanesi
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// LCD adresi (genellikle 0x27)
LiquidCrystal_I2C lcd(0x27,16,2);
// Servo nesneleri
Servo servoAzimut;
Servo servoElevation;
// LDR pinleri
const int ustLDR = A0;
const int altLDR = A1;
const int solLDR = A2;
const int sagLDR = A3;
// Voltaj sensörü
const int voltPin = A4;
// Servo pinleri
const int servoAzimutPin = 9;
const int servoElevationPin = 10;
// Servo başlangıç açıları
int azimut = 90;
int elevation = 90;
// Hareket hassasiyeti
int threshold = 30;
// Servo hareket adımı
int stepSize = 1;
// Ölçülen voltaj
float panelVoltage = 0;
void setup()
{
// Servo pinlerini bağla
servoAzimut.attach(servoAzimutPin);
servoElevation.attach(servoElevationPin);
// Servo başlangıç konumu
servoAzimut.write(azimut);
servoElevation.write(elevation);
// LCD başlat
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Solar Tracker");
lcd.setCursor(0,1);
lcd.print("Baslatiliyor");
delay(2000);
}
void loop()
{
/******************************************
LDR DEGERLERINI OKU
******************************************/
int ust = analogRead(ustLDR);
int alt = analogRead(altLDR);
int sol = analogRead(solLDR);
int sag = analogRead(sagLDR);
/******************************************
YATAY HESAPLAMA
******************************************/
int farkYatay = sol - sag;
/******************************************
Eğer sol taraf daha aydınlıksa
******************************************/
if(farkYatay > threshold)
{
azimut++;
if(azimut>180)
azimut=180;
servoAzimut.write(azimut);
}
/******************************************
Sağ taraf daha aydınlıksa
******************************************/
if(farkYatay < -threshold)
{
azimut--;
if(azimut<0)
azimut=0;
servoAzimut.write(azimut);
}
/******************************************
DİKEY HESAPLAMA
******************************************/
int farkDikey = ust - alt;
/******************************************
Üst daha parlak
******************************************/
if(farkDikey > threshold)
{
elevation++;
if(elevation>180)
elevation=180;
servoElevation.write(elevation);
}
/******************************************
Alt daha parlak
******************************************/
if(farkDikey < -threshold)
{
elevation--;
if(elevation<0)
elevation=0;
servoElevation.write(elevation);
}
/******************************************
VOLTAJ OKUMA
******************************************/
int sensorValue = analogRead(voltPin);
// ADC değerini volta dönüştür
float voltage = sensorValue * (5.0 / 1023.0);
// Voltaj bölücü oranı (0-25V modülü)
panelVoltage = voltage * 5.0;
/******************************************
LCD
******************************************/
lcd.clear();
lcd.setCursor(0,0);
lcd.print("V:");
lcd.print(panelVoltage,1);
lcd.print("V");
lcd.setCursor(9,0);
lcd.print("AZ:");
lcd.print(azimut);
lcd.setCursor(0,1);
lcd.print("EL:");
lcd.print(elevation);
delay(100);
}
Kodun Bölüm Bölüm Açıklaması
1. Kütüphaneler
#include <Servo.h>
Servo motorları kontrol eder.
#include <LiquidCrystal_I2C.h>
I2C LCD ekranını kullanır.
2. Servo Tanımları
Servo servoAzimut;
Servo servoElevation;
İki farklı servo oluşturulur.
- Azimut (Sağ-Sol)
- Elevation (Yukarı-Aşağı)
3. LDR Tanımları
const int ustLDR=A0;
Üst sensör.
const int altLDR=A1;
Alt sensör.
const int solLDR=A2;
Sol sensör.
const int sagLDR=A3;
Sağ sensör.
4. Başlangıç Açıları
azimut=90
Servo tam ortaya bakar.
elevation=90
Panel yere yaklaşık 45° eğimli olacak şekilde başlangıç konumunda olur.
5. Sensör Okuma
analogRead()
0–1023 arasında değer döndürür.
Örnek:
| Sensör | Değer |
|---|---|
| Üst | 820 |
| Alt | 650 |
| Sol | 780 |
| Sağ | 540 |
6. Yatay Karşılaştırma
sol-sag
Pozitifse
↓
Panel sola döner.
Negatifse
↓
Panel sağa döner.
7. Dikey Karşılaştırma
ust-alt
Pozitif
↓
Panel yukarı kalkar.
Negatif
↓
Panel aşağı iner.
8. Eşik Değeri
threshold=30;
Fark küçükse servo hareket etmez.
Böylece:
- Servo titremez.
- Gereksiz enerji harcamaz.
- Daha stabil çalışır.
9. Servo Hareketi
azimut++;
Servo yalnızca 1 derece ilerler.
Bu sayede:
- Hassas takip yapılır.
- Ani hareket oluşmaz.
- Mekanik sistem zorlanmaz.
10. Servo Limitleri
if(azimut>180)
Servo mekanik sınırların dışına çıkmaz.
Aynı durum elevation için de geçerlidir.
11. Voltaj Ölçümü
panelVoltage = voltage*5;
0–25 V voltaj sensörünün bölücü oranına göre gerçek panel gerilimi hesaplanır.
12. LCD Bilgileri
Ekranda şu bilgiler gösterilir:
V:18.4V AZ:135
EL:82
Geliştirilebilecek Özellikler
Bu temel kod aşağıdaki özelliklerle profesyonel seviyeye çıkarılabilir:
- ✅ INA219 ile gerçek akım (A) ve güç (W) ölçümü
- ✅ RTC (DS3231) ile tarih-saat damgalı veri kaydı
- ✅ SD kart üzerine CSV formatında kayıt
- ✅ Yağmur sensörü ile paneli koruma konumuna alma
- ✅ Rüzgâr sensörü ile fırtınada paneli yatay konuma getirme
- ✅ ESP32 + Wi-Fi ile uzaktan izleme (web paneli veya mobil uygulama)
- ✅ MPPT şarj kontrol algoritması entegrasyonu
- ✅ Gün doğumu ve gün batımında otomatik başlangıç/bekleme modu
- ✅ OLED veya TFT ekranda anlık grafik gösterimi
- ✅ Kalman filtresi veya hareketli ortalama ile sensör verilerini filtreleme
Bu geliştirmelerle proje, eğitim amaçlı bir uygulamadan çıkarak gerçek saha koşullarında kullanılabilecek daha gelişmiş bir güneş takip sistemine dönüşebilir.
LDR Sensörünün Çalışması
LDR üzerine düşen ışık arttıkça direnci azalır.
Arduino analog girişinden sürekli okuma yapar.
Örneğin;
Sol = 820
Sağ = 500
Demek ki;
Sol taraf daha fazla ışık almaktadır.
Servo sola döner.
Servo Motorun Görevi
Servo motor paneli yaklaşık;
0°
ile
180°
arasında döndürebilir.
Arduino her okumada servo açısını birkaç derece değiştirir.
Bu sayede ani hareket yerine yumuşak dönüş elde edilir.
Voltaj Ölçümü
Panel çıkışı bir voltaj bölücü yardımıyla Arduino’ya bağlanır.
Arduino;
Panel Voltajı
Anlık Akım
Güç
hesaplayabilir.
Güç Hesabı
DC güç hesabı için:
P = V × I
Burada:
- P: Güç (Watt)
- V: Voltaj (Volt)
- I: Akım (Amper)
Bu değerler ölçülerek günlük enerji üretimi analiz edilebilir.
Yazılım Algoritması
Başla
↓
LDR Oku
↓
Sağ > Sol ?
↓
EVET
↓
Servo Sağa
↓
Hayır
↓
Sol > Sağ ?
↓
Servo Sola
↓
LCD Güncelle
↓
Voltaj Oku
↓
Tekrar Başa
💡 Arduino Güneş Takip ve Enerji Üretim Projesi Algoritmasını Anlatan İnfografik

Arduino Güneş Takip ve Enerji Üretim Sistemi Projesi Algoritmasını Anlatan İnfografik
Arduino Kodunun Genel Yapısı
Program şu bölümlerden oluşur:
- Servo Kütüphanesi
- LCD Kütüphanesi
- LDR Okuma
- Servo Kontrol
- Voltaj Ölçümü
- LCD Yazdırma
- SD Kart Kayıt (Ops.)
Panel Neden Sürekli Hareket Etmez?
Kod içerisinde bir eşik değeri tanımlanır.
Örneğin;
Fark > 30
ise servo hareket eder.
Fark küçükse servo bekler.
Bu yöntem;
- titreşimi azaltır
- enerji tasarrufu sağlar
- motor ömrünü uzatır
Güneş Takip Sistemlerinin Avantajları
✅ Daha fazla enerji üretir
✅ Panel verimini artırır
✅ Güneş ışığını maksimum kullanır
✅ Eğitim projeleri için idealdir
✅ Gerçek hayatta kullanılabilir
Dezavantajları
- Servo motor enerji tüketir.
- Hareketli parçalar bakım gerektirir.
- Kurulum maliyeti biraz artar.
- Çok rüzgarlı bölgelerde sağlam mekanik tasarım gerekir.
Sabit Panel ile Karşılaştırma
| Özellik | Sabit Panel | Güneş Takip Sistemi |
|---|---|---|
| Sabah Verimi | Düşük | Yüksek |
| Öğlen | Yüksek | Çok Yüksek |
| Akşam | Düşük | Yüksek |
| Günlük Üretim | %100 | %120–140 |
| Enerji Verimi | Orta | Yüksek |
Geliştirilebilecek Özellikler
- 🌤️ Hava durumu entegrasyonu
- 📡 Wi-Fi ile uzaktan izleme (ESP32)
- ☁️ Bulut veri kaydı
- 📱 Mobil uygulama
- 🌧️ Yağmur algılama
- 🌬️ Rüzgâr sensörü ile güvenli konuma geçme
- 🧭 Çift eksenli (azimut + yükseklik) takip sistemi
- 🔋 MPPT tabanlı şarj kontrolü
- 📈 Günlük enerji grafikleri
- 🤖 Yapay zekâ ile güneş hareketi tahmini
Eğitim Kazanımları
Bu proje sayesinde öğrenciler:
- Arduino programlamayı öğrenir.
- Analog sensör kullanımını kavrar.
- Servo motor kontrolünü uygular.
- Güneş enerjisi sistemlerini tanır.
- Elektriksel güç hesaplarını öğrenir.
- Veri toplama ve analiz becerisi kazanır.
- Mekanik tasarım ve prototipleme deneyimi elde eder.
Projenin Kullanım Alanları
- 🌞 Akıllı güneş panelleri
- 🏠 Off-grid ev sistemleri
- 🚜 Tarımsal sulama sistemleri
- 💡 Güneş enerjili aydınlatma
- 📡 Haberleşme istasyonları
- 🛰️ Uydu takip sistemleri (eğitim amaçlı benzetim)
- 🎓 STEM ve Maker laboratuvarları
- 🏫 Okul robotik kodlama atölyeleri
Sonuç
Arduino Güneş Takip ve Enerji Üretim Projesi, elektronik, mekanik, yazılım ve yenilenebilir enerji disiplinlerini bir araya getiren kapsamlı bir STEM uygulamasıdır. Çift LDR sensörü ve servo motor kullanılarak güneş panelinin gün boyunca en uygun açıya yönlendirilmesi sağlanır; bu sayede sabit sistemlere kıyasla daha yüksek enerji üretimi elde edilebilir. Ayrıca voltaj, akım ve güç verilerinin izlenmesiyle enerji verimliliği analiz edilebilir.
Bu proje; TÜBİTAK 2204, TEKNOFEST ve okul bilim fuarları için güçlü bir aday olmasının yanı sıra, robotik kodlama ve yenilenebilir enerji atölyelerinde öğrencilerin sensörler, motor kontrolü, veri toplama ve enerji yönetimi konularında uygulamalı deneyim kazanmasını sağlar.
İstanbul İz Atölye Eğitim Çözümleri San. ve Tic. Ltd. Şti., eğitim kurumlarına yönelik yenilikçi atölye kurulumlarıyla öne çıkan, proje geliştirme ve uygulama süreçlerinde uçtan uca destek sunan bir çözüm ortağıdır. Robotik kodlama, yazılım, ahşap tasarım, STEM ve sanal gerçeklik gibi farklı alanlarda modern, sürdürülebilir ve eğitim odaklı atölye ortamları tasarlar. Kurumların ihtiyaçlarına özel analizler yaparak en uygun ekipman, içerik ve altyapıyı belirler; kurulum sürecinden eğitmen eğitimine kadar tüm aşamalarda aktif rol alır. Ayrıca ulusal ve uluslararası hibe programlarına yönelik proje yazımı, danışmanlık ve uygulama desteği sağlayarak kurumların hem teknik hem de finansal açıdan güçlenmesine katkıda bulunur.
📞 Proje Desteği İçin Bize Ulaşın ( 0850 840 4783 )
🚀 Projeni Hayata Geçir! ( WhatsApp )
İz Atölye olarak sadece atölye kurmuyor, kurumunuza özel sürdürülebilir eğitim ekosistemleri tasarlıyor; doğru ekipman, güçlü içerik ve uçtan uca proje desteğiyle süreci zahmetsiz ve verimli hale getiriyoruz.
Deneyim, hız ve sonuç odaklı yaklaşımımızla yatırımınızı kısa sürede somut çıktılara dönüştürüyoruz.

Yorum ekle