DIY Sonnenverfolgungs-Solarsystem mit Arduino UNO – Dual-Achsen-Tracker
Komponenten und Materialien
| Komponente | Anzahl |
|---|---|
| Arduino UNO | 1 |
| Analog Devices LDR-Sensor (Lichtabhängiger Widerstand) | 4 |
| Lötfreies Breadboard (Full Size) | 1 |
| Solarmodul | 1 |
| SG90 Mikro-Servomotor | 2 |
| Jumper-Kabel (generic) | 1 |
| Widerstand 1 kΩ | 4 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Heutzutage sieht man Solarpaneele überall – für mobiles Laden in ländlichen Gebieten, als Gehwegbeleuchtung usw. Solarenergie ist einfach, verfügbar und günstig.
Fast alle Paneele im Alltag sind starr montiert. Das ist einfach und reicht für kleine Anwendungen, aber sie produzieren nicht die maximal mögliche Energie.
Unser Tracker ist ein Dual-Achsen-Tracker – er verfolgt die Sonne in X- und Y-Richtung (links, rechts, oben, unten). Einmal eingerichtet, muss nichts mehr justiert werden: Wo auch immer die Sonne hingeht, der Tracker folgt.
Code
Sonnenverfolgungs-Solarsystem
/*
* Author: Mayur Rabadiya
* Email: mayurrabadiya994@gmail.com
* Code: Sun tracking solar system
*/
#include
Servo s; // Vertikaler Servo
Servo sh; // Horizontaler Servo
int start1 = 90; // Startposition 90°
int start2 = 90;
int L1 = A0; int L2 = A1; int L3 = A2; int L4 = A3; // 4 LDRs
int a = 15; // Toleranzschwelle
void setup() {
s.attach(9); // Vertikaler Servo an Pin 9
sh.attach(10); // Horizontaler Servo an Pin 10
pinMode(L1, INPUT); pinMode(L2, INPUT);
pinMode(L3, INPUT); pinMode(L4, INPUT);
s.write(start1);
sh.write(start2);
delay(2000);
}
void loop() {
int LDR1 = analogRead(L1);
int LDR2 = analogRead(L2);
int LDR3 = analogRead(L3);
int LDR4 = analogRead(L4);
int plus14 = (LDR1 + LDR4); // Diagonale Summen
int plus23 = (LDR2 + LDR3);
int plus12 = (LDR1 + LDR2); // Obere vs untere Hälfte
int plus34 = (LDR3 + LDR4);
int diff1 = abs(plus14 - plus23);
int diff2 = abs(plus23 - plus14);
int diff3 = abs(plus12 - plus34);
int diff4 = abs(plus34 - plus12);
// Vertikale Nachführung
if ((diff1 <= a) || (diff2 <= a)) {
// Differenz klein → nichts tun
} else {
if (plus14 > plus23) start2 = --start2; // < 90°
if (plus14 < plus23) start2 = ++start2; // > 90°
}
// Horizontale Nachführung
if (plus12 > plus34) start1 = --start1; // < 90°
if (plus12 < plus34) start1 = ++start1; // > 90°
s.write(start1);
sh.write(start2);
delay(100);
}
Schaltplan
Vier LDRs (je 1 kΩ Pull-down) an A0–A3, zwei SG90 Servos an Pin 9 & 10, Solarmodul mechanisch an den Servos befestigt. Der Schaltplan ist im Projektarchiv als PNG enthalten.
Herstellungsprozess
- Solarheizsysteme: Von passiven zu aktiven Lösungen für nachhaltiges Heizen
- Multi-Position Temperatursensor-System für Smart-Home-Integration
- MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
- 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
- Smart-Home Pflanzenbewässerungssystem mit Arduino Nano
- Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
- Fortgeschrittener ferngesteuerter Greifer-Roboter für präzises Handling
- Hochleistungs-Datenlogger für Arduino-Wetterballons
- Autonomes Gesichtsverfolgungs-Robotercar mit Arduino Nano & OpenCV
- CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye