Solartracker zwei Achsen, mit Lichtsensoren

Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Solartracker zwei Achsen, mit Lichtsensoren

Beitrag von Admin »

Ich baue gerade einen Test auf, um ein Solarpannel der Sonne nachzuführen. Dazu benutze ich fürs erste 4 Sensoren (lichtabhängige Widerstände), mit denen ich die Richtig zur größeren Helligkeit feststellen will und dann in diese Richtung steuere, bis ich maximale Sonneneinstahlung habe. Oder die Einstahlung auf allen 4 Sensoren gleich stark ist. Das würde ja dann bedeuten, dass ich im Zentrum der größten Helligkeit bin. Hoffe ich jedenfalls. :(o): Ob es klappt, ich weiß es nicht. :(o):

Ich stelle mir auch noch vor, dass ein Sensor für Windrichtung und Windgeschindigkeit sinnvoll ist. So dass ich ab einer für das Pannel gefährlichen Windgeschwindigkeit, das Pannel automatisch in den Wind drehe, um die Windlast zu vermindern. Aber das sind alles noch ungelegte Eier!!

Ich bekomme Anfang kommernder Woche die Teile, die ich für den Testaufbau brauche. Dann gehts los.

Es kann sein, dass 4 Sensoren nicht reichen, so dass ich dann 8 Sensoren verwende. Für die 4 Richtungen jeweils 2 Sensoren, die unterschiedliche Empfindlichkeit haben. Der eine reagiert schon bei bedecken Himmel stark, der zweite braucht volle Sonneneinstrahlung um hohe Werte zu erzielen. So der Plan, ob ich am Holzweg bin, wird sich zeigen. :(o): :(o): Wenn es nichts wird, ist immer noch das Projekt von Max da. Er berechnet den Sonnenstand nacht dr Uhrzeit und fährt auf die errechnete Position.

Franz
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Ich habe mir jetzt noch zwei Servos 20kg / 270 Grad bestellt. Schon klar, ich brauche keine 20kg Servos für das bischen Gewicht das ich da drauf packt. Aber die sind ja für Testaufbauten. Und sollen somit auch mal was schwereres packen können, wenn es der Aufbau benötigt. Meine 180 Grad Servos können auch einer 20kg und einer 25kg. Die zwei neuen sollen Donnerstag kommen. Ich kann es gar nicht erwarten, dass ich endlich meinen Testaufbau für die Panal-Nachführung zusammenschrauben kann :(oo):

Also Donnerstag oder Freitag sollte ich alles haben, was ich dafür benötige.

PS: bei Amazon habe sie offenbar nicht mehr alle Latten am Zaun. Die verlangen als Porto bei machen Servos 30,- Euro, wenn man sie dieses Monat noch habe will, 23,- Euro waren es glaube ich, wenn ich es mitte nächstes Monat haben will.

Franz
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Na wenigstens die Steckleisten und einen Nano habe ich schon bekommen. Bin schon am zusammenlöten. Denke am Wochenende habe ich die Hardware soweit aufgebaut, dass ich erste Tests machen kann. Ich möchte auf der Platine den Nano, den Spannungs-Sensor, das Display und die Servos steckbar machen, dass ich alles jederzeit wieder runternehmen kann. Ich habe für alles eigene Testkonsolen, von denen ich jederzeit die Teile wieder runternehmen kann, und auf andere Testaufbauten stecken kann. Ich vermeide so weit wie möglich Breadboards, weil mir diese Steckverbindungen zu oft Kontaktstörungen verursachen. Als dann am Wochenende dürfte ich da wesentlich weiter sein.

Franz

PS: Ich habe einen Nano in DE bestellt und drei Nanos beim Chinesen. Der eine Nano in DE kostet 11,- Euro, die drei beim Chienesen kosten zusammen 10,- Euro. Wenn der eine aus Deutscher Produktion wäre, also wenn das Zeug nicht aus China wäre, würde ich ja gerne mehr Geld für weniger Ware bezahlen. Aber wenn ein Deutscher Elektronikladen die Ware in China kauft, um das ganze dann für den dreifachen Preis in DE weiterverkauft, hilft das dem Standort DE nicht weiter. Deutschland muß dringend mehr dafür tun, dass wir nicht noch abhängiger von China, werden, sondern die Abhängigkeit zurück geht. Wie das laufen kann, hat uns ja Putin gerade gezeigt, und die Chinesen sind ja sehr bemüht Putin zu unterstützen. Damit machen die sich keine Freunde in Europa. Jedenfalls nicht bei mir.

Die Amerikaner bauen ja bereits eigene Chipfabriken auf, um aus der Abhängigkeit von China reuszukommen, aber unsere Regierung schläft wieder mal so lange weiter, bis das Dach brennt. Wie bei der Abhängigkeit von Putin eben auch. 16 Jahre gemütliches grunzen, und dann plötzlich sagen, "hilfe das Dach brennt". Noch eine solchen Erpresserrepublik zusätzlich können wir sicher nicht brauchen. Unsere Regierung sieht das offene Messer, will aber erst mal sehen, ob er sehr weh tut, wenn man reinläuft!! Ich verstehe dieses fahrlässige Verhalten nicht.
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Ich habe schon mal einiges zusammengebaut. Morgen sollen die 270 Grad Servos kommen. Die kleinen Solarpanels muss ich noch montieren. Die kommen zum Sonnenschutz des Nanos und des Sensors mit kleinen Abstand als Schutzdach darüber. Ich denke am Freitag gehts mit dem Programm los.

Hier mal ein Bild von Fortschritt:
.
Sonnennachführung_Testaufbau_01.jpg
Sonnennachführung_Testaufbau_01.jpg (538.52 KiB) 1055 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Jetzt fehlt noch der 270 Grad Servo, dann kann es losgehen. Die sollten heute noch kommen.
.
.
Sonnen_Nachführung_03.jpg
Sonnen_Nachführung_03.jpg (188.22 KiB) 1047 mal betrachtet
Jetzt habe ich mal den Teil vom Programm erstellt, mit dem ich die Messwerte erfasse und am Display ausgebe. Damit habe ich schon mal gesehen, dass ich noch ein Hardware problem habe. Die Sensorwerte von meinen Lichtwiderständen sind viel hoch. Da muss ich noch ein bischen was anpassen. Ich habe im Zimmer schon vollgas werte. Wobei das ja noch lange nicht die Werte sind, die von der Sonne kommen. Also da fehlts noch nen ganzen Meter. Aber das kriege ich hin.

Hier ist mal dieses erste Teilprogramm zum Werte erfassen:

Code: Alles auswählen

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <Adafruit_ADS1X15.h> // bindet Wire.h für I2C mit ein
Adafruit_ADS1115 ads;
#define ADS_I2C_ADDR 0x48
const float multiplier = 0.125F; // ADS1115-Multiplikator bei einf. Verstärkung
const byte panal = A0;
int panalwert = 0;
float panalspannung = 0;
float ads_mv0 = 0;  // Sensor rechts
float ads_mv1 = 0;  // Sensor links
float ads_mv2 = 0;  // Sensor hinten
float ads_mv3 = 0;  // Sensor vorne
int adc0 = 0;
int adc1 = 0;
int adc2 = 0;
int adc3 = 0;
const byte Servo1 = 5;
const byte Servo2 = 6;
unsigned long sekundenablauf = 0; // Messabstand 1 Sekunde
const unsigned long pausezeit = 1000;
unsigned long aktuellzeit = 0;

void setup() {
  //----------------------------------------------------
  lcd.begin();
  lcd.backlight();
  lcd.clear();
  //----------------------------------------------------
  Serial.begin(9600);
  //----------------------------------------------------
  ads.begin(ADS_I2C_ADDR, &Wire);
  // Werte 1-fach verstärken (ESP32 liefert  max. 3,3V)
  ads.setGain(GAIN_ONE);
  //----------------------------------------------------
  lcd.setCursor (0, 0);            // Zeile 1
  lcd.print (F("Panalspannung "));
  //----------------------------------------------------
  pinMode(panal, INPUT);         // Spannung vom Panel
  pinMode(Servo1, OUTPUT);       // Pin 5
  pinMode(Servo2, OUTPUT);       // Pin 6
  //----------------------------------------------------
  sekundenablauf = millis();
}

void loop() {
  aktuellzeit = millis();
  //Jede Sekunde Spannung am Pannal messen
  if (aktuellzeit - sekundenablauf >= pausezeit) { // Eine Sekunde abgelaufen?
    panalwert = analogRead(panal);
    panalspannung = panalwert * 20.3 / 1024.0;
    lcd.setCursor (14, 0);            // Zeile 1
    lcd.print (panalspannung);
    sekundenablauf = millis();
  }
  // -----Kanal 0 Messung------------------------------
  adc0 = ads.readADC_SingleEnded(0);
  ads_mv0 = ads.computeVolts(adc0) * 1000;
  lcd.setCursor (0, 2);             // Zeile 3
  lcd.print (ads_mv0);
  // -----Kanal 1 Messung------------------------------
  adc1 = ads.readADC_SingleEnded(1);
  ads_mv1 = ads.computeVolts(adc1) * 1000;
  lcd.setCursor (10, 2);            // Zeile 3
  lcd.print (ads_mv1);
  // -----Kanal 2 Messung------------------------------
  adc2 = ads.readADC_SingleEnded(2);
  ads_mv2 = ads.computeVolts(adc2) * 1000;
  lcd.setCursor (0, 3);             // Zeile 4
  lcd.print (ads_mv2);
  // -----Kanal 3 Messung------------------------------
  adc3 = ads.readADC_SingleEnded(3);
  ads_mv3 = ads.computeVolts(adc3) * 1000;
  lcd.setCursor (10, 3);            // Zeile 4
  lcd.print (ads_mv3);
}
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Sooo, jetzt habe ich mal die Werte am Display optisch den Sensoren zugeordnet. Also Rechts ist Rechts, Links ist Links, Oben ist Oben, Unten ist Unten. Die Lichtsensoren sind die kleinen Roten Dinger immer auf jeder Seite erwa in der Mitte der Platine. So werde ich morgen mal im Garten testen, wie weit ich noch die Sonne dempfen muss, dass die Sensoren den ganzen Bereich von bedeckt bis volle Sonne schaffen.

Hier ist nochmal ein Bild, dass man sich das mit dem Werte-Monitor vorstellen kann. Die Werte in der Anzeige wechseln seeeehr schnell, dadurch sind die Ziffern oft mehrfach zu sehen. Aber ich will in dem Fall den schnellen Wechsel, dass ich beim drehen sofort die Reaktion an den Werten sehe. Später, wenn das Ding dann seine Arbeit ohne mein zutun macht, möchte ich die Anzeige Wiederholung auf eine Sekunde einstellen. Und nur für das Programm lasse ich den schnellen Wechsel, dass es schneller nachführen kann. Die Werte von den Lichtsensoren gehen von 0 bis 4095.
.
Sonnen_Nachführung_04.jpg
Sonnen_Nachführung_04.jpg (514.85 KiB) 1038 mal betrachtet
Morgen werde ich mich über die Servos machen, die sind auch gelandet.

Franz

Code: Alles auswählen

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <Adafruit_ADS1X15.h> // bindet Wire.h für I2C mit ein
Adafruit_ADS1115 ads;
#define ADS_I2C_ADDR 0x48
const float multiplier = 0.125F; // ADS1115-Multiplikator bei einf. Verstärkung
const byte panel = A0;
int panelwert = 0;
float panelspannung = 0;
float ads_mv0 = 0;  // Sensor rechts
float ads_mv1 = 0;  // Sensor links
float ads_mv2 = 0;  // Sensor hinten
float ads_mv3 = 0;  // Sensor vorne
int adc0 = 0;
int adc1 = 0;
int adc2 = 0;
int adc3 = 0;
const byte Servo1 = 5;
const byte Servo2 = 6;
unsigned long sekundenablauf = 0; // Messabstand 1 Sekunde
const unsigned long pausezeit = 1000;
unsigned long aktuellzeit = 0;

void setup() {
  //----------------------------------------------------
  lcd.begin();
  lcd.backlight();
  lcd.clear();
  //----------------------------------------------------
  Serial.begin(9600);
  //----------------------------------------------------
  ads.begin(ADS_I2C_ADDR, &Wire);
  // Werte 1-fach verstärken (ESP32 liefert  max. 3,3V)
  ads.setGain(GAIN_ONE);
  //----------------------------------------------------
  lcd.setCursor (0, 0);            // Zeile 1
  lcd.print (F("Panelspannung "));
  //----------------------------------------------------
  pinMode(panel, INPUT);         // Spannung vom Panel
  pinMode(Servo1, OUTPUT);       // Pin 5
  pinMode(Servo2, OUTPUT);       // Pin 6
  //----------------------------------------------------
  sekundenablauf = millis();
}

void loop() {
  aktuellzeit = millis();
  //Jede Sekunde Spannung am Panel messen
  if (aktuellzeit - sekundenablauf >= pausezeit) { // Eine Sekunde abgelaufen?
    panelwert = analogRead(panel);
    panelspannung = panelwert * 20.3 / 1024.0;
    lcd.setCursor (14, 0);            // Zeile 1
    lcd.print (panelspannung);
    sekundenablauf = millis();
  }
  // -----Kanal 0 Messung------------------------------
  adc0 = ads.readADC_SingleEnded(0);
  ads_mv0 = ads.computeVolts(adc0) * 1000;
  lcd.setCursor (12, 2);             // Zeile 3
  lcd.print (ads_mv0);
  // -----Kanal 1 Messung------------------------------
  adc1 = ads.readADC_SingleEnded(1);
  ads_mv1 = ads.computeVolts(adc1) * 1000;
  lcd.setCursor (0, 2);            // Zeile 3
  lcd.print (ads_mv1);
  // -----Kanal 2 Messung------------------------------
  adc2 = ads.readADC_SingleEnded(2);
  ads_mv2 = ads.computeVolts(adc2) * 1000;
  lcd.setCursor (6, 1);             // Zeile 2
  lcd.print (ads_mv2);
  // -----Kanal 3 Messung------------------------------
  adc3 = ads.readADC_SingleEnded(3);
  ads_mv3 = ads.computeVolts(adc3) * 1000;
  lcd.setCursor (6, 3);            // Zeile 4
  lcd.print (ads_mv3);
}
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Habe mal die Schaltung dazu gezeichnet. Stand jetzt. Kann sich natürlich noch ändern. Ich baue das nicht um Solarstrom zu produzieren, sondern um die Technik zur Nachführung eines Panels zur Sonne möglichst gut testen zu können. Deshalb fehlt in der Schaltung hier ein Akku, der vom Panel geladen wird. Der Sinn hier ist nur die Erstellung von Hard- und Software zur Nachführung. Also die Grundlage zur möglichst guten Ausnutzung der Sonne. Mein Panel ist auch völlig ungeeignet zum Laden eines Akkus. Ich brauche es nur, um die Reaktion eines Panels auf die Einstellung zur Sonne sehen zu können.
.
Sonnen_Nachführung_Solarpanel.JPG
Sonnen_Nachführung_Solarpanel.JPG (358.14 KiB) 1005 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

So jetzt habe ich mal die zwei Servos für die Bewegung dran gebaut. Und habe ins Programm zwei Positionen eingebaut, die angefahren werden. Die haben noch nichts mit den Lichtverhältnissen zu tun, sondern ich will nur mal testen welche Winkel angefahren werden können. Die Startposition ist immer oben, dann möchteich erst mal horizontal ins Licht drehen, und wenn die Pos. klar ist, das Panel auch noch Vertikal ins volle Licht bringen.

So der Plan, ob das auch funktioniert, wir werden sehen. :(o): :(o):

Hier der Video vom ersten Bewegungstest.

Ich glaube man sieht deutlich, dass ich damit keinen Schönheitspreis gewinnen will. Es geht einfach nur um Funktion :O:
Max
Beiträge: 78
Registriert: Di 27. Sep 2022, 17:37
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Max »

Hallo Franz,

dein Testaufbau sieht ja ganz gut aus.
Bei der Vertikalbewegung ist aber nur ein geringer Verstellwinkel nötig,
so zwischen 6° und 60°max (Morgensonne und Mittagsonne).
Aber das würde die Sonne selber über die Sensoren steuern.
Im Programm sind für mich zwar einige "südländische Dörfer" :???:
aber darin bin ich ja auch kein solcher Profi so wie Du.

Bin gespannt auf den ersten Praxistest.
Gruß
Max
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Max hat geschrieben: Sa 29. Okt 2022, 10:53 Bin gespannt auf den ersten Praxistest.
Ich auch ja. :agt:

Ich habe mich hier mal bischen schlau gemacht. Nach den Daten dort, sind meine 240 Grad für die Horizontale Bewegung (53 Grad bis 306 Grad) bischen knapp. Da hätte ich besser einen 360 Grad Servo verwendet. Ich versuche es jetzt mal damit, wenn ich an Grenzen komme, muss ich den Horizontal-Servo tauschen.
Antworten

Zurück zu „Hardware / Schaltungstechnik“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste