Ein Sonnenverfolger (Solar Tracker) ist ein System, das mithilfe eines Mikrocontrollers (wie Arduino) und LDR Sensoren automatisch ein Solarpanel zur Sonne ausrichtet. Damit kann die maximale Sonneneinstrahlung zu genutzt werden. Es gibt zwei Varianten, den einfachen 1 Achsen Verfolger und das etwas komplexere 2 Achsen Nachführsystem.
Hier der Sonnenverfolger mit einem Servomotor
Komponentenliste für den Sonnenverfolger
- Arduino UNO oder Nano
- 2x Servomotoren (z. B. SG90 oder MG996R)
- 4x LDRs (Lichtabhängige Widerstände)
- 4x 10kΩ Widerstände (als Spannungsteiler)
- Solarpanel
- Halterung (z. B. aus Karton oder Holz)
Prinzip und Schaltplan:
Die LDRs werden in einem Kreuzmuster angeordnet. Sie liefern analoge Spannungen, abhängig von der Lichtintensität. Der Arduino liest diese Werte und vergleicht sie miteinander, um festzustellen, in welche Richtung die Sonneneinstrahlung am höchsten ist. In Abhängigkeit dieser Werte bewegen die Servos das Panel entsprechend nach. Ich habe nur einen Schaltplan für beide Versionen. Für den Sonnenverfolger mit einer Achse, könnt ihr einfach 1 Servo und 2 LDR weg lassen.
Die LRD und die Solarplatte habe ich auf 4mm Bastelholz befestigt, die Vorlage zum ausdrucken gibt es ganz unten auf der Seite. Da die Kabel hin und her bewegt werden, habe ich noch ein Holz eingeklebt und die Kabel daran befestigt.
Einachsen Sonnen Nachführsystem mit Arduino
Beim Einachsigen Sonnen Nachführsystem mit dem Arduino werden nur 2 LDR und ein Servomotor benötigt. Die Bewegung beschränkt sich auf 180 Grad von links nach rechts. Hier der Arduino Code.
#include <Servo.h>
/**
* file: Sonnenverfolger
* author: kreativekiste.de
*
* description:
* Der Servo wird nach den LDR ausgerichtet
*
* date: 05.2025
* version: 0.1
*/
Servo servo1;
int LDR_1 = 0;
int LDR_2 = 0;
int servo = 0;
void setup() {
Serial.begin(9600);
servo1.attach(5);
}
void loop() {
Serial.print("LDR 1 --- ");
Serial.print(LDR_1 );
Serial.println();
Serial.print("LDR 2 --- ");
Serial.print(LDR_2 );
Serial.println();
LDR_1 = constrain( map ( analogRead(0) , 0 , 1023 , 0 , 100 ) , 0 , 100 ) ;
LDR_2 = constrain( map ( analogRead(1) , 0 , 1023 , 0 , 100 ) , 0 , 100 ) ;
if (( LDR_1 != LDR_2 )) {
if (( LDR_1 > LDR_2 )) {
if (( servo < 180 )) {
servo = ( servo + 1 );
delay( 50 );
}
servo1.write( servo );
}
if (( LDR_2 > LDR_1 )) {
if (( servo > 0 )) {
servo = ( servo - 1 );
delay( 50 );
}
servo1.write( servo );
}
}
}
Zweiachsen Sonnen Nachführsystem mit Arduino
Beim Zweiachsen Sonnenverfolger, müssen einfach die beiden anderen LDR an den analogen Pins 2 und 3 für die HOCH/RUNTER Bewegung in das Programm eingebunden werden. Dazu kann das Programm für die LINKS/RECHTS Bewegung einfach kopiert werden und die LDR und der Servo ersetzt werden.
📌 Tipps:
* Kalibriere deine LDRs – je nach Lichteinfall kann es Unterschiede geben.
* Mechanische Stabilität ist wichtig: Wenn das Panel wackelt, sind die Werte unzuverlässig.
* Für größere Solarpanels solltest du keine Servos, sondern **DC-Getriebemotoren mit Endschaltern oder Encoder** verwenden
Vorlage zum ausdrucken: