Funktionsbeschreibung des astronomisch geführten 2-Achs Solartracker.


aktualisiert am 10.11.2019

zurück zum Hautmenue



Funktionsbeschreibung:

Das System benötigt keinen PC-Anschluss oder sonstige komplexe Eingaben um die Standortkoordinaten eingeben zu müssen.
Bis auf wenige Feinheiten müssen keine Einstellungen getätigt werden. So kann selbst der Unbedarfte die Anlage kontrollieren und warten.

Die Daten der Standortkoordinaten, Uhrzeit und Datum liefert ein kleiner GPS-Receiver der Firma uBlox.
Da der Microcontroller nur eine serielle Schnittstelle besitzt, muss sich der GPS-Receiver und ein angeschlossenes TFT-Display diese teilen.
Über einen Tristate-Bustreiber (IC5a und IC5b) wird nach Bedarf der GPS-Receiver (J9) oder das Display (J10) auf die serielle Schnittstelle geschaltet.

Der Timer NE555 hat für die eigentliche Funktion keine Bedeutung und dient nur zur Signalisierung serieller Daten. So wird die evtl. Fehlersuche vereinfacht.
LED 11 signalisiert GPS- oder DisplayDaten. Die Ansteuerung der Motoren läuft wechselweise über die AND-Gatter IC4a und IC4b.
Die Motorenendstufe benötigt nur zwei Signale pro Motorachse: DIR (Laufrichtug) und ein PWM-Signal für die Geschwindigkeitsregelung.
DIR=logisch 0 vorwärts, DIR= logisch 1 rückwärts. Es können aber auch Motorendstufen angeschlossen werden, die zwei getrennte Signale für die Laufrichtung benötigen. Dazu später mehr.

Die Rückmeldung der Position für die jeweilige Achse wird über die Tristate-Bustreiber IC2a und IC2b für die horizontale Achse bzw. IC2c und IC2d für die vertikale Achse realisiert.
Dem Bustreiber vorgeschaltet sind für jeden Kanal eine Schmitt Trigger (IC7). Die Eingangssignale der Hallgeneratoren sind mit einem Kondensator bestück, der die Spikes
auf den Leitungen unterdrück. Mit dem Schmitt Trigger werden diese Signale wieder sauber in Rechtecksignale geformt
Die Signale der Hallgeneratoren für die Positionsmeldung wird also nach Bedarf auf die jeweilige Antriebsachse geschaltet. Die aktive Ache und Laufrichtung wird durch die LED´s 4, 5 und 6, 7 signalisiert.

Jede Achse wird mit zwei Endschalter überwacht. Die horizontale, linke Position CCW (HomePosition) duch LED 15, Max-Position durch LED 14. Die untere Position (HomePosition) durch LED 13 und vertikale Max-Position durch LED 12.

Der Windmesser wird an JP1 angeschlossen und liefert eine Signal zwischen 0 bis 5 Volt, was einer Windgeschwindigkeit von 0 bis 30 m/Sek oder 0 bis 120 Km/h. entspricht.
Den Grenzwert für die maximale Windgeschwindigkeit wird an R1 eingestellt. Wird der Grenzwert erreicht, fährt der Tracker in eine einstellbare Position (Schutzposition)

An J2 kann bei Bedarf ein Buzzer angeschlossen werden. Dieser signalisiert akustisch bestimmte Aktionen.
J5 ist der Anschluss für zwei Schalter. Eingang 1 fährt die vertikale Ache in die waagerechte (90 Grad) Position (um unter der Anlage auch mal Rasen mähen zu können), Eingang 2 stopt das Tracking (für Servicearbeiten).

Das LAN-Modul WIZ810MJ braucht nicht bestückt werden. Es ist für spätere Erweiterungen nur schon mal im Layout aufgenommen worden. Somit spare ich mir den Entwurf und Herstellung einer weiteren Platine.
Ebenso kann der 3,3 Volt Spannungsregler, LED8, LED 9, R13 und R14 entfallen
JP3, D5 und das Releis K1 sind nur für die Softwareentwicklung und Programmierung des Controller PIC18f4620 erforderlich. Die Bestückung kann entfallen.
Dafür müssen auf J4 die Brücken zwischen Pic 1 und 2 sowie zwischen 3 und 4 mittels Jumper gesetzt werden.

Das serielle Display wird an JP10 angeschlossen.


Die Platine:

erster Prototyp Die gedruckte Schaltung. Der Controller PIC 18F4620, 2 x Tristate-Bustreiber, ein AND-Gatter und ein Timer NE555. Dann noch ein paar Widerstände und Status-LED. Mehr Baueteile sind nicht erforderlich. Alles auf einer Platine von 100 x 100mm

Es sollten auf der Platine alle IC´s mit Fassungen versehen werden. Falls mal ein Softwareupdate erforderlich ist lassen Sie der PIC und evtl. weitere Bauteile einfach tauschen.

Allerdings sind so einiges an Singnalleitungen für Endschalter, Signaldecoder und Motorsteuerung erforderlich. Der Aufwand hält sich aber in Grenzen.

Die Schaltung kommt mit 5 Volt Versorgungsspannung aus. Auch eine LAN-Schnittstelle ist schon vorgesehen, wird aber von der Software noch nicht unterstüzt.
Ich habe noch nicht alle Funktionen für das LAN bzw.Funk-Modul ausgearbeitet und weiss auch noch nicht genau was alles damit gesteuert bzw. überwacht werden soll.
Also eine Erweiterung für spätere Zeiten.

Der gesamte Aufbau ist unkritisch. Die Widerstände können bis zu 10% abweichen. Die beiden Transistoren sind einfache NPN-Typen (z.B. BC 547) ausreichend.

Bis auf die Spannungsversorgung habe ich auf Schraubklemmen verzichtet. Ist zwar etwas flicklige Lötarbeit aber die Lötleisten lassen sich leichter abziehen bzw aufstecken.
Wer möchte kann sich diese Anschlüssen auf eine Hutschine mit Schraubklemmen führen.

Die Software wurde in C geschrieben, als Compiler habe ich MPLAB eingesetzt. Die Codegröße beträgt im Moment 20 KB, also kein kleines Projekt und so einige Funktionen stehen noch auf der Liste.

Wer sich viel Arbeit sparen möchte, setzt diese Platine ein anstatt alles von Hand zu verdrahten.

Ich habe mir gleich zwei Platinen bestückt, falls mal eine Steuerung wg. Überspannung, Blitz oder sonstwas ausfällt.




Das Display:

Bei dem Display handelt es sich um ein programmierbares, serielles 3,5 Zoll TFT-Display mit einer Auflösung von 380 x 400 Pixel.
Von einem herkömmlichen TFT-Display mit SPI-Schnittstelle habe ich Abstand genommen da die Geschwindigkeit das gesamte System ausbremste.
Obwohl das NEXTION-Display seriell betrieben wird, ist es unglaublich schnell. Durch die Programmierung können Texte, Textpositionen und
auch die Farben schon vorher festgelegt und im EEprom des Display abgelegt werden.

Der Monitor Das NEXTION-Display ist eine feine Sache. Hat man sich erst einmal in die Programmierung eingearbeitet lassen die tolle Dinge damit anstellen.
Div. Funktionen werden bereit gestellt, um dem Display tolle Funktionen zu entlocken.


Dazu stellt NEXTION eine kostenlose Entwicklungsumgebung bereit,
die meiner Meinung nach nicht perfekt ist aber für die meisten Anwendungen ausreicht.
Wer sich dafür interessiert kann sich bei NEXTION die Entwicklungsumgebung herunter laden.

Es sollte aber klar sein, das man nachträglich keine Änderungen an der Display-Programmierung vornehmen kann. Zum Einen wäre dazu der Quellcode erforderlich
und die Anpassung im C-Code des PIC18f4620, da sonst das Zusammenspiel von Controller und Display nicht mehr funktionieren würde.

Bei dem Display handelt es sich um ein Touchscreen-Display. Tolle Sache, da sich so auch gleich einige Setup-Eingaben realisieren lassen.




Der GPS-Empfänger:

GPS Empfänger Der kleine GPS-Receiver der Firma uBlox lieferte die Daten wie Uhrzeit, Datum und Standordkoordinaten.
In kurzen Abständen werden die Daten eingelesen und berechnet. Aufgrund der berechneten Daten wird der Tracker genau der Sonne nachgeführt.



Der Schaltplan:

Der Schaltplan Der Schaltplan lässt erkennen, dass nicht besonders viel Bauteile notwendig sind.
Einige Bauteile müssen nicht bestückt werden, da diese nur zum Test und zur Programmierung des PIC 18F4620 notwendig sind.
Auch das LAN bzw. Funk-Modul muss im Moment noch nicht bestückt werden, da die Software dieses noch nicht unterstüzt.

Den Schaltplan des Solartracker als PDF gibt es hier.




Der Bestückungsplan:

Der Bestückungsplan Der Bestückungsplan zeigt die Lage der einzelnen Bauteile. Da die Platine recht großzügig gestaltet wurde,
sollte die Bestückung keine Mühe bereiten.
Da einige Bauteile (z.B. Lan bzw. Funk-Modul) nicht erforderlich sind, sollten die Texte genau gelesen werden.

Den Bestückungsplan des Solartracker als PDF gibt es hier.
-------