In einem normalen Jahr hätten wir Dich in unser Hackerspace in Ostermundigen https://www.eastermundigen.ch/ eingeladen, um Dein Projekt in Ruhe zu besprechen und Dir Tips zur Hardware und Software zu geben (Wir haben schon Leute mit Fragen zu Diplomarbeiten erfolgreich gecoached).
Hier einige Bemerkungen zu Deinem Projekt:
Das Lithium Battery Shield kannst Du einsetzen. Du kannst gleichzeitig den Akku gleichzeitig laden und entladen. Bei den 18650 Akkus mussst Du die ev. vorhandene Schutzelektronik entfernen, sonst passen sie nicht ins Fach. An die USB-Ladebuchse kannst du als Stromkuelle statt enes 5V USB Ladegeräts dein Solarpanel ( 6V) anschliessen. Als Batterieladechip ist auf diesem Shield ein TC4056 verbaut, der gemäss Datenblatt Ladeeingangsspannungen bis max 10 Volt verträgt
Als zusätzliche Sicherheit kannst Du eine Diode dazwischenschalten.
Um die Schrittmotoren an den Arduino anzuschliessen brauchst Du noch das Schrittmotoren-Treiber-Modul ULN2003. Die Ansteuerung der Schrittmotoren ist nicht ganz trivial: Wenn Du sie falsch ansteuerst, saugen sie Dir mit je 200mA Stromverbrauch Deine grossen Batterien nullkommaplötzlich leer. Anschliessend musst Du die Bewegung der Schrittmotoren über einen Nullpunkt kalibrieren damit Du die Solarpanels nach Azimut und Höhe einstellen kannst.
Aus den Daten der RTC-Uhr ( = Kalender !) musst Du dann eine Universalzeit brechenen . Alle Schatjahre wird der Kalender ja +/- wieder mit der Universalzeit in Einklang gebracht, die Kalenderzeit kann um bis zu 1.6 Tage von der Universalzeit abweichen.
Jetzt kommt auf den Arduino eine Herkulesaufgabe zu: Aus der Univeralzeit und dem gegenwärtigen Standort den aktuellen Wret für Höhe und Azimut der Sonne zu berechnen: Die Mathe dazu sieht ungefähr wie folgt aus:
_Eingangsdaten:
1) Datum, Monat, Stunde, Minuten
2) geogr. Breite (lat) und Laenge (long) des Ortes (östliche Länge positiv)
Konstante:
K=Pi/180=0.01745 (zur Umrechnung von Grad- in Bogenmass)
Formeln
tageszahl
deklin = -23.45*cos(K*360*(tageszahl+10)/365)
zeitgleichung = 60*[-0.171*sin(0.0337*tageszahl + 0.465) - 0.1299*sin(0.01787*tageszahl - 0.168)]
stundenwinkel = 15*(stunde + minute/60 - (15.0-long)/15.0 - 12 + zeitgleichung/60)
x = sin(hoehe) = sin(K*lat)*sin(K*deklin) + cos(K*lat)*cos(K*deklin)*Math.cos(K*stundenwinkel)
y = cos(azimut) = -[sin(K*lat)*sin(K*hoehe) - sin(K*deklin)] / [cos(K*lat)*sin(arccos(sin(K*hoehe)))]
Ergebnis für Höhe und Azimut der Sonne in Grad:
hoehe = arcsin(x)/K
azimut = arccos(y)/K
Bei der Berechnung für ein beliebiges Datum i wird für die Tageszahl die Formel verwendet:
tageszahl = (monat-1)*30.3 + datum
Diese weicht um bis zu 1,6 Tage vom tatsächlichen Wert ab._
Quelle: http://www.geoastro.de/SME/tk/index.htm
Darum habe ich vorgeschlagen 2 Servomotoren einzusetzen und eine intelligente Steuerung einzusetzen wie sie zb. bei Line-Follower Roboter eingesetzt wird : Statt einer schwarzen Linie zu folgen, folgen sie wie eine Sonnenblume dem Sonnenstand. Ein Beispiel für einen einfachne Solar-Tracker mit 2 Servomotoren findest Du auf Youtube:
https://www.youtube.com/watch?v=HB-rClhsuPo&v=_6-Wora5qNw+https%3A%2Fwww.youtube.com%2Fwatch&feature=youtu.be
und https://youtu.be/1Fyo4pMwyDI
Die benötigten entsprechenden Teile zum Ausdrucken auf einem 3-D Drucker befinden sich auf Thningiverse:
https://www.thingiverse.com/thing:2467743
Mich hat Dein Thema interessiert daher dieser +/- ausführliche Kommentar: ich habe die Teile gemäss Thingiverse in ca. 4 Stunden ausgedruckt und werde damit nächstens meinen eigenen (Solar?)-Tracker testen.
Yngvar