Automatische Sonnenverfolgung

Hallo Leute,

ich bin neu im Forum, und auch neu mit Arduino Boards unterwegs.

Ich habe mir jetzt ein Projekt vorgenommen was ich gerne umsetzen würde doch leider komme ich nicht weiter.

Es geht um folgendes Projekt, und zwar eine automatische Sonnenverfolgung!

Für die Bewegung habe ich Linearmotoren verbaut. Da ich aber Anfänger bin habe ich das Problem Werte zu vergleichen.

Ich habe mir dazu auch schon ein paar Filme (You…) angesehen doch leider wird dort immer mit Servo Motoren gearbeitet die ich ja nun leider nicht habe da meine Anlage dafür zu groß ist!

Das vergleichen wollte ich, wie bei den Servo Motoren mit diff versuchen aber leider geht das nicht wie ich dachte.

Mein Aufbau:

int links = 0;
int rechts = 0;

int led = 3;
int led1 = 4;

void setup() {
Serial.begin(9600);

pinMode(led, OUTPUT);  // Ausgang Motor später
pinMode(led1, OUTPUT); //
}

void loop() {
delay(1000);

digitalWrite(led, LOW);
digitalWrite(led1, LOW);

int links = analogRead(0);  
int rechts = analogRead(1);

int diff = (links - rechts);

if (diff > 200 ) {
  digitalWrite(led, HIGH);
  digitalWrite(led1, LOW);
}

if (diff < 200 ) {
  digitalWrite(led, LOW);
  digitalWrite(led1, HIGH);
}

Serial.println(String(rechts)+"-"+String(links));
delay(100);
}

Mein Problem: Ich habe keinen Null Punkt! Sprich wenn LDR1=100 und LDR=200 ist soll nichts passieren(null), erst wenn zwischen den beiden Werten mehr als 100 ist soll der entsprechende Ausgang geschaltet werden!
So wie meine Schaltung jetzt ist geht es irgendwie leider nicht, bin ich auf dem richtigen Weg oder sollte ich das irgendwie anders angehen?
Wäre für Tip Dankbar

if (LDR1-LDR >100) Motorrechts; else Motorstop;
if( LDR-LDR1 >100) Motorlinks; else Motorstop;

Grüße Uwe

bevor Du Deine Werte vergleichst: Was willst Du hiermit erreichen?

Ich sehe darin keinen Sinn.

Was passiert, wenn diff 200 ist?

Dann darfst Du mindest nicht auf 200 auswerten!

Momentan sehe ich nur, das Du immer davon ausgehst, das links - rechts größer wird. Was passiert, wenn das genau anders rum der Fall ist? - Und ja, das geht!
da mach Dir ggfls. nochmal ein paar Gedanken zu.

Was ich noch nie verstanden habe ist, warum will man mit LDRs die Sonne verfolgen? Seit Milliarden von Jahren bewegt sich die Sonne, auf unseren Planeten bezogen, pro Stunde um 15° weiter. Eine immer konstante Größe. Einzig in der Höhe zum Horizont ergeben sich im Laufe des Jahres Unterschiede.

1 Like

Wenn man dir wirklich helfen soll dann musst du deutlich mehr Detail-Informationen liefern.

Verwendest du LDR-Widerstände oder etwas anderes?

Bei LDR-Widerständen gibt es riesige Unterschiede mit welchen Beleuchtungsstärken man welche Widerstandsänderung hat. Es gibt auch LDRs die bei bedecktem Himmel schon am unteren Anschlag des Widerstandswertes sind. Dann misst man auch bei 10 Grad Abweichung von der optimalen Ausrichtung keinen Unterschied mehr.

Du solltest also mal die genaue Typbezeichnung der LDRs posten und am besten auch ein Datenblatt.

Du solltest Fotos posten wie du die LDRs montiert hast.

Die Programmlogik = das hin- und herfahren um die optimale Ausrichtung zu bekommen ist bei Servomotoren und Linearmotoren die gleiche. Daran liegt es also vermutlich nicht.

vgs

[pingelig]
Die Erde drehte sich mal schneller und wird auch jetzt noch vom Mond gebremst. Konstant ist nur die ständige Veränderung.
[/pingelig]

Ja, es gibt 2 Möglichkeiten um die Position einer Fläche rechtwinklig zur Sonneneinstrahlung zu einzustellen:

Man berechnet den aktuellen Sonnenstand (Horizontaler und Vertikaler Winkel) nach der Ortszeit und positioniert dann die Fläche rechtwinklig dazu. Dazu braucht es außer Motore auch eine Positinsbestimmung des Drehwinkels der Achsen und eine genaue Uhrzeit..

Die andere Möglichkeit ist je 2 Helligkeitssensoren pro Achse zu verwneden. Zwischen den Sensoren ist eine Trennwand die bei falscher Ausrichtung einen Sensor beschattet. Nun dreht man die Achse so lange bis die Helligkeit der beiden Sensoren gleich ist. Drehrichtung ist ja auch bekannt. Das Vereinfacht die Steuerung weil keine Positionsmessung der Achse notwendig ist.
Mit den Sensoren kann man auch bei Unterschreiten einer gewissen Helligkeit (Nacht oder Gewitter) die Sonnenpanele in eine Schutzposition bringen. Die Sensoren hat man ja schon und für die Schutzposition braucht man nur Endschalter die aus sicherheitsgründen sowieso notwendig sind

Jetzt ist die Entscheidung welche Lösung die schlauere ist weniger eindeutig.
Grüeß Uwe

Habe ich doch geschrieben. Wird nicht besser, wenn man es nur wiederholt. :wink:

Na ja, @agmue hat nicht nur Recht mit dem pingelig, sondern auch damit dass die Erdrotation nicht so konstant ist, was du behauptet hast.

Wobei nicht ganz klar ist, wie lang eine Stunde vor Milliarden von Jahren war. Evtl. galt ja damals noch 1/24 Erdrotation relativ zur Sonne = 15° = 1 Stunde :slight_smile:

An den 15° Änderung wird sich nichts ändern, ein Kreis wird laut unserer Definition 360° behalten. Und in unserer näheren Zukunft, kann man für diesen Zweck von Konstanz reden, auch von den 15°/h.

Hallo,
Danke für die Antworten.

@uwefed Danke für die Antwort :+1: , es haut hin!!
Wenn mir jetzt jemand erklären könnte, wie ich den LDR richtig auslesen kann könnte ich auch diese Frage beantworten.

Wenn ich einen LDR mit einem Multimeter auslese stelle ich auf 200k und bekomme ich 11,2 als Aussage am Multimeter. Als Widerstand verwende ich 1K.

MfG Luke

LDR = lichtABHÄNGIGER Widerstand

Widerstand des LDR in der Nacht ca 1 MegaOhm
Widerstand des LDR in der Dämmerung abhängig vom Typ 50-500 kiloohm
Widerstand des LDR am Tag abhängig vom Typ und abhängig von der Sonneneinstrahlung 1-50 kiloohm

Da hat ein einzelner Messwert von 11,2 kiloohm

NULL-komma-Null

Aussagewert

Was soll man sagen
"Brate dir auf dem Knie ein Spiegelei am Nordpol dann funktioniert die Sonnenausrichtung 100%tig."

Deshalb Typ des LDRs angeben und einen Link zum Datenblatt
vgs

Meinst Du damit den Meßbereich des Multimeters?

Dann wäre "11,2" ein Wert von 11,2 kΩ.

Wo? Welche Schaltung verwendest Du?

Eventuell interessant: Spannungsteiler

Der Arduino kann keine Widerstandswerte lesen. Du musst mit einem zweiten Widerstand einen Spannungsteiler aufbauen. Die Spannung, die am zweiten Widerstand abfällt kannst du mit dem Arduino und einem Analogeingang einlesen und auswerten.

Sieh dir das dazu an: Nr.08 Fotowiderstand - Funduino - Kits und Anleitungen für Arduino

@Gebby so ist mein Grundaufbau.

Diese hatte ich gekauft hier

Ok, das ist ein Kit mit 10 Verschiedenen Typen.

Der Unterschied ist hauptsächlich der Widerstand bei viel Licht.


Ich würde den GL5549 mit 1kOhm als Spannungsteiler nehmen und einen 0,1µF zwischen dem analogen Eingang und Masse schalten.

Hast Du etwa verschiedene Widerstandstypen genommen?

Grüße Uwe

War mal neugierig welche Beleuchtungsstärke (lux) Sonnenlicht hat. zB:

Das läßt denken daß ein Filter sinnvoll sein kann.
oder die LDR sind so montiert daß nur ein wirklich 90° Sonnenstand beide LDR nicht beschattet werden.
Grüße Uwe

Die Exemplarstreuung bei LDR ist sehr hoch (das hatten wir hier schon mehrfach). Außerdem altern sie auch heftig und das auch nicht gleichmäßig.
Da sollte man auf alle Fälle Korrekturfaktoren vorsehen, die man möglichst im laufenden Betrieb ändern kann. Also z.B. manuell auf die Sonne ausrichten, dann sollten alle 4 LDR den gleichen Wert geben. Das dann korrigieren.

Gruß Tommy

Da man (pro Achse) zwei LDR braucht, kann man die auch zusammen als Spannungsteiler schalten. Im Idealfall bekämen dann bei einem analogRead-Wert von 512 beide gleich viel Licht. In der Realität sollte man @Tommy56 s Kalibrierungstip probieren, ob der Wert bei mehr oder weniger Licht aber gleicher Beleuchtung beider Widerstände gleich bleibt.

Ich versteh die Diskussion um die LDR nicht.
Die Streuung ist doch nichts, was unbeherschbar ist.
Da ist doch mal ein richtig gutes Projekt auch von mir begleitet worden: Sonnen Verfolgung 2 Achsen
Da das dann (wegen der Zeitbeschänkung) geschlossen wurde, gab es darauf später einen Anschluß: Sonnen Tracker Arduino

@luke_sky Ich denke, da kannst Du einiges mitehmen ohne das es hier wiederholt oder gar neu erfunden werden muss.

1 Like