Solartracker-Projekt 2018
                       von Michael Schulte, Rönkhausen



Ein 2-achsiger Solartracker ist ein Gerät, das eine Ebene (z.B. Solarpanel, Kamera, Laser etc.) exakt im Jahres- und Tagesverlauf zur Sonneneinstrahlung ausrichtet.
Dabei werden Elevation (Höhenwinkel, Neigung) und Azimut (Horizontalwinkel, Himmelsrichtung) dieser Ebene durch Stellmotoren mittels eines Steuerprogramms so verändert,
dass die Sonnenstrahlen, z.B. auf ein Photovoltaik-Modul, stets senkrecht fallen und so eine maximale Strahlungs- und Energieausbeute erzielt werden kann.
Mein Steuerprogramm ( 
http://www.mi-schu.de/solartracker2.htm ) arbeitet mit Logarithmen, die auch Astronomen zur Berechnung der Sonnenposition im Tages- und Jahresverlauf verwenden (Literaturtip: Volker Quaschning: "Regenerative Energiesysteme").

 

Für meinen Standort gilt: Der maximale Höhenwinkel der Sonne über dem Horizont (Elevation) bewegt sich von ca. 15° am 22. Dezember (Tag der Wintersonnenwende) um 12:00 h bis ca. 62° am 21. Juni (Sommersonnenwende).
Der entsprechende Horizontalwinkel (Azimut) liegt am 22. Dezember zwischen etwa 128° (bei Sonnenaufgang) und 231° (bei Sonnenuntergang), und zwischen 50° (Sonnenaufgang) und 310° (bei Sonnenuntergang) am 21. Juni.
Entscheidend wichtig für die Berechnungen ist eine hochpräzise Uhr, weil genaue Sonnenpositionen hochgradig zeitabhängig sind.
Weitere entscheidende Einflussgrössen auf die Sonnenposition sind die Tag-Nr. des lfd. Jahres (1 - 365), die Geographische Breite (Latitude) und die Geographische Länge (Longitude) des Standortes.
Von allenfalls geringem Einfluss ist die atmosphärische Refraktion (Brechung eines Lichtstrahls in der untersten Erdatmosphäre), die insbesondere bei Sonnenauf- und untergängen den Einstrahlwinkel um maximal 1-2 Grad verändern kann.
Eine sehr hilfreiche Website zur Sonnenstandsberechnung mit vielen astronomischen Formeln und Programmierbeispielen findet sich unter: 
https://lexikon.astronomie.info/zeitgleichung/neu.html .

Das hier vorgestellte Solartracker-Modell berücksichtigt alle genannten Einflussgrössen (Jahrestag, exakte Uhrzeit, Ortskoordinaten, Azimut, Elevation, Refraktion) und richtet ein kleines Solarpanel vollautomatisch so exakt zur Sonne aus, dass die Energieausbeute jederzeit maximiert ist.
Nach dem Sonnenuntergang im Westen wird das Solarpanel selbsttätig zur Ausgangsposition (Osten) zurückgefahren. Hier beginnt morgens bei Sonnenaufgang ein neuer Betriebszyklus.

 

 

  

 

Abb. 1: Solartracker-Modell, gebaut u.a. mit Fischertechnik-Teilen; unter dem hinteren roten Dach befindet sich die Steuerzentrale mit einem Arduino-Uno-Mikrocontroller und einem MotorShield (Programmcode s.u.).
Das C++-Programm wird von einem PC per USB auf den Microcontroller geladen und danach ohne PC selbständig ausgeführt. Die Aktualisierung der Azimut- und Elevation-Positionen erfolgt etwa alle 1-2 sec.

 

vorderansicht.jpg

 

 

Abb. 2: Modellansicht von vorne; unter dem waagerecht liegenden grossen Zahnrad befindet sich ein Hall-Drehwinkel-Sensor (0-360°), dessen Achse sich 1:1 mit dem Solarpanel bewegt. Somit kann jederzeit die aktuelle Azimut-Position (AzI) des Solarpanels bestimmt und mit dem astronomisch berechneten Azimutwert (AzS) verglichen werden.

 

 

 

 

 

 

 

  

 

 

 

 

servo.jpg

 

Abb. 3: Longruner-Servo für die Höhenwinkel-Verstellung (0-180 Grad) mit aufmontiertem 3-Volt- ETM500-Solarpanel. Der astronomisch berechnete Elevation-Wert wird 1:1 direkt auf den Servo übertragen und bewirkt eine ständig aktualisierte, exakte Schrägausrichtung des Solarpanels zur Sonne.

 

 

Abb. 4: Pololu-Steppermotor mit Schneckentrieb für die Azimut-Ver-stellung. Falls der berechnete Azimutwert (AzS, s. Abb. 5) grösser ist als der vom Hall-Drehwinkelsensor gelieferte Azimutwert (AzI), so dreht der Steppermotor 32 Schritte vorwärts; ist AzS kleiner als AzI, so dreht der Steppermotor 32 Schritte rückwärts (32 Schritte entsprechen ca.1°). Auf diese Weise ist (mit  einer Auflösung von ca. 1 Grad) im Idealfall immer AzI = AzS, d.h. die Azimutposition des Solarpanels (AzI) stimmt mit dem berechneten Azimutwert (AzS) überein.

 

      Hardware-Liste (modifiziert für Version 10)

 

·        Arduino-Uno-Mikrocontroller REV

·        Arduino-Mega-2560-Mikrocontroller (für Zusatzdisplay)

·        DS3231 AT24C32 IIC Real Time Clock Module (für Zusatzdisplay)

·        DS3231-RTC-Echtzeituhr (für Solartracker)

·        Adafruit-Motor-Shield V1

·        POLOLU-1207-Stepper-Motor 7.4 VDC

·        Longruner-17kg-Digital High-Torque Robot-Servo-Motor 7.5 VDC

·       SunFounder  I2C 20x4 LCD  Display Modul 5 VDC

·        Hall-Drehwinkelsensor 0 - 360° entsprechend 0 - 5 Volt Output,
          Versorgungsspannung 5 Volt DC (s. Abb. 7).

·        diverse Fischertechnik-Bauteile

·        Kuman UNO R3 3,5" TFT Touchscreen (Zusatzdisplay)

·        Solarpanel ETM500-3V (14 x 13 cm, 3.0 VDC, aus einem  Kosmos-
          Solarbaukasten)

 

 

 

 

 

 

 

 

lcd_display.jpg

 

Abb. 5: SunFounder-20x4-Display zur Anzeige der wichtigsten Daten: Datum, Uhrzeit (MEZ), AzS = Azimut (Sollwert, berechneter Wert, in Grad, WZ = Wahre Ortszeit (12:00 h -> Sonne steht am Standort genau im Süden), AzI = aktueller Azimut des Solarpanels (Ist-Wert. in Grad, S = aktuelle Himmelsrichtung (hier: Süd), TL = Tageslänge in [h], Elv = Elevation ( = Sonnenhöhe, berechneter Wert in Grad, PV = aktuelle Spannung am Solarpanel [Volt].

 

 

 

 

 

 

 

Abb. 7: Hall-Drehwinkelsensor 0 - 360°

 

 

zusatzdisplay.JPG

Abb. 6: Ein Zusatzdisplay (Kuman UNO R3 3,5" TFT Touchscreen) zeigt die wichtigsten Sonnenstands-Werte im 10-Sek-Takt an. Das Display wird von einem Arduino-Mega-2560-Mikrocontroller angesteuert. 

 

 

 

 

 

Berechnung des Schneckengetriebes

Zähnezahl Z des Drehkranzes = 58
Schnecke = 1-gängig => Zähnezahl = 1
=> Übersetzungsverhältnis = 58:1

Steppermotor: 1 Achsenumdrehung = 200 steps
Drehkranz:    : 1 Umdrehung (360°) = 200 steps x 58 = 11600 steps

Steps pro Grad (Drehkranz) = 11600 steps / 360° = 32.222 steps / °

Fazit: Eine Winkelveränderung um 1° des Drehkranzes benötigt
mind. 32 steps des Steppermotors.


 

 

Pin-Belegung am Arduino-UNO (hier klicken)