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
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.
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.
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
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
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.
@uwefed Danke für die Antwort , 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.
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
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.
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.
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.