Solartracker zwei Achsen, mit Lichtsensoren

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,
Hast du die Widerstände zu den LDR´s vielleicht zu niedrig gewählt?
ich hatte, siehe in einem Schaltplan von meiner Vorherigen Anlage (C-Control),
da hatte ich 2KOhm Trimpoti eingebaut zum Justieren.
Das mit dem Panelstrom meinte ich, wenn es programmtechnisch möglich wäre
darüber es auszurichten, dann wäre es von der Hardware der geringste Aufwand
und die Ausfallquote am geringsten.
Na dann gutes Forschen und einen schönen Sonntag

Gruß
Max
Benutzeravatar
Admin
Administrator
Beiträge: 1197
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: So 6. Nov 2022, 08:54 ......ich hatte, siehe in einem Schaltplan von meiner Vorherigen Anlage (C-Control),
da hatte ich 2KOhm Trimpoti eingebaut zum Justieren.
OK, dann kam da ja die selbe Beschaltung raus, wie bei mir. Ich habe mit 8 Kohm begonnen, und bei 1,5 Kohm war ich dann mit der Messspanne zufrieden. Oder nicht zufrieden, aber besser habe ich es nicht hinbekommen.

Ich habe jetzt gerade bei voller Sonne meinen Messtest gemacht. :eek: Ich habe auch bei zwei Lagen 100Gramm Papier volle 4095, wenn die Sonne voll drauf scheint. :???: :roll: ....das ist nicht guuuuut :shock: Ich habe aber dann ein bischen aus der Sonne gedreht, vielleicht so 30 Grad, dann ging der Wert deutlich runter. Also ich will zwar eigentlich den obersten Wert gar nicht erreichen, aber jetzt ist es eben so.

Vielleicht baue ich mir noch eine neue Platine mit 4x2 Sensoren. Dann habe ich kein Problem mit den Lichtmessungen.
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Hi Max. :(V):
Jetzt habe ich Opal Milchglas 30% LD 4mm stark, 500x600mm gefunden.
Schön klein, denn einen Quadratmeter wollte ich dann doch nicht für nen stattlichen Preis :O:
Da hatte ich vor ein paar Tagen einen Preis von knapp 100,- Euro gefunden, dann habe ich gleich nicht mehr weitergesucht :???:
Aber das was ich jetzt bestellt habe sind nur 26,- Euro, das geht noch. Ich will ja nicht so viel Ausgeben, wenn ich alles nur zum Testen baue. :???:

Na denn, ich gehe in die Kiste, muss morgen früh raus und nach München.

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

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Ich arbeite jetzt doch an der neuen Version, weil ich einfach keine Probleme mit den Licht-Messwerten haben will. Ich habe hier schon mal die neue Schaltung. Den Mess-Sensor ADS1115 brauche ich jetzt natürlich doppelt, weil ich jetzt 4x2 LDR - Sensoren habe. Und ich werde da auch gleich alles anders bauen. Die Arduino CPU möchte ich nach unten auf das Grundbrett bauen. Dann die Schrittmotoren mit den kräftigen Treibern auf aufs Grundbrett. LDR - Sensoren mit den beiden ADS1115 Sensoren und das Sonnenpanel, wie vorher oben auf die Platine. Das Display kommt auch unten auf die Grundplatte zur CPU.

Dann hole ich mir die 4x2 Licht-Messwerte, Addiere die jeweils 2 Messwerte pro Seite zu einem Wert, und fahre das Programm ansonsten weiter wie gehabt. Bei den LDR´s ist immer einer offen, zur Erfassung dess Dunklen Lichtes und ein zweiter LDR stark Abgedunkelt für die Erfassung der vollen Sonne. Dann hat jeder Sensor Werte von 0 bis 4095, addiert dann 0 bis 8190. Und ich habe somit keine Probleme mehr mit der Helligkeit oder der Dunkelheit.

Hier mal die Schaltungs Änderung für die 8 Sensoren. Die Änderung für die Schrittmotoren kommt noch nach:
.
Sonnen_Nachführung_Solarpanel_V2.JPG
Sonnen_Nachführung_Solarpanel_V2.JPG (431.28 KiB) 848 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Bin schon dabei die neue Platine aufzubauen mit den 8 Licht-Sensoren. Die Licht-Dämmscheibe habe ich heute auch schon bekommen, also ich denke, in 1-2 Tagen steht der Neue Aubau. Auch gleich mit den Schrittmotoren. Dann werden wir sehen, wie es läuft. Ich denke das ist eine Änderung wie Tag und Nacht. Jetzt teste ich mal wie weit ich mit dem Milchglas 30% Lichtdurchlass komme :)
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Heute habe ich ganz gewaltig umgebaut.

Eine neue Platine mit 4x2 Lichtwiderständen und das ganze auf eine Testkonsole, die ich mal zum Testen von Schrittmotor gebaut habe. Da ist kein Nano, sondern ein Mega drauf, aber das ist ja egal, man kann das ganze genauso mit dem Nano bauen. Die Pin´s sind die selben, nur die I2C Schnitttelle ist im Vergleich zum Mega auf anderen Pin´s. Das Programm läuft auch auf dem Nano. Ich habe auch schon das Programm auf die 4x2 Lichtsensoren angepasst und auf die somit höheren Messwerte von 0 - 8190. Also ich habe kein Problem mehr, mit der Reichweite der Messungen, von zu dunkel bis suuupper hell. Morgen kommt noch das Solar-Panel auf die Platine, dann muss ich die beiden Nema 17 Motoren noch auf das Bord bauen. Wenn man das ganze in Groß bauen möchte, also für richtige Solar-Panels, dann denke ich würden Nema 23 Motoren mit Getriebe 1:100 reichen. Beide Treiber dann die DM556, dass sie den Strom für die Motoren bringen können. Der DM6600 wäre für diese Motoren zu dürftig. Also am Wochenende dürfte das neue Test-Gerät am Start sein.

Franz

PS: Meine Milchglasscheiben sind ein Flopp. Da kommt viel zu viel Licht durch. Ich bin jetzt wohl bei einem Sensor mit drei Lagen Papier und der zweite Sensor offen. Damit habe ich bei dem einen Sensor mit drei Papierlagen Abgedunkelt auch bei hellsten Sonnenlicht keine Maximalwerte, und für Dämmerung den offenen Sensor für trotzdem noch gute Werte. Also wenn die Sonne sehr hell ist, bringt der eine 4095 und der zweite vielleicht so 3000. Die beiden Werte werden addiert dann kommt z.B. bei sehr hellen Sonnenlicht 7095 raus. Das sind wahrscheinlich Maximal Werte, die 8190 werden damit gar nicht mehr erreicht. Und trotzdem bekomme ich noch deutliche Unterschiede bei schwachen Licht, weil der andere Sensor auch bei für Spannungserzeugung unbrauchbaren Licht, noch so um die 800 - 1000 sein wird.

Hier habe ich mal ein Bild von heute mit meinem Fortschritt: :(oo):
.
Sonnen_Nachleitung_Nema17.jpg
Sonnen_Nachleitung_Nema17.jpg (475.51 KiB) 831 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Jetzt muss ich nur noch die Messplatine mit dem Panel am VertikalMotor befestigen und die Software auf die Schrittmotoren ändern, dann gehts mit der überarbeiteten Fassung an den Test. :(oo): Es gibt jetzt nur noch 5 Drähte vom Arduino zum Messpanel, also der I2C Bus und eine Spannungsleitung extra vom Sonnenpanel über den Spannungsteiler, dann runter zum Arduino.

Hier das Bild Mit Panal und korrekten PanelMesswert im Display:
.
Sonnen_Nachleitung_Nema17_2.jpg
Sonnen_Nachleitung_Nema17_2.jpg (500.59 KiB) 829 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Läuft schon recht gut. Ich muss die Messplatine noch am Motorturm befestigen, und die Abschattungen der 4 Lichtsensoren für volles Sonnenlicht noch machen. Dann sollte das so weit gehen. Kann aber noch sein, dass ich an jedem der beiden Motoren einen Hallgeber zum zentrieren brauche. Denn man muss ja bei den Schrittmotoren mit Schrittfehlern rechnen. Vielleicht immer m Morgen einmal zentrieren. Mal schauen.

Servus
Franz

PS: Ein Video folgt, wenn ich die Messplatine draufgebaut habe, die liegt im Moment noch daneben. :(oo):

Hier mal das Bild. Das Ding funktioniert schon Es fährt schön dem Licht nach. Ich muss nur noch 4 Lichtsensoren von den acht abdunkeln, und sicher noch ein paar Feinheiten Einstellen. Dann läuft die Kiste. Der Knubbel mit der langen Schraube ist übrigens ein Gegengewicht, dass die Platine nicht mit Vollgas nach unten rauscht, wenn die Motoren stromlos sind. Unter dem Tesaband ist ne halbe Rolle Lötzinn um die Schraube gewickelt. Der Motor hällt die Platine locker oben, solange der Treiber den Motor mit Spannung versorgt. Aber wenn die Spannung ausgeschalten wird, geht die Platine wie ne Axt runter, wenn das Gegengewicht fehlt :O:
.
Sonnen_Nachleitung_Nema17_3.jpg
Sonnen_Nachleitung_Nema17_3.jpg (453.32 KiB) 823 mal betrachtet
Hier noch das aktuelle Programm. Es macht was es soll, ich hoffe am Wochenende ist volle Sonne zum Testen. Aber ich bin mir sicher, dass es gut funktionieren wird. Ich habe jetzt bei voller LED Beleuchtung am Arbeitsplatz Werte so um die 2600 von 8190. Da ist also viel Luft nach oben, und auch nach unten.
Da sind vier Stellen mit Serial.print(); auskommentiert. Die kann man rausschmeißen. Ich habe sie zum Testen noch lassen. Bin ja mit den Tests noch nicht durch.

Code: Alles auswählen

#include <LiquidCrystal_I2C.h>
// Display Adresse 0x3F 0der 0x27
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <Adafruit_ADS1X15.h> // bindet Wire.h für I2C mit ein
Adafruit_ADS1115 ads;
Adafruit_ADS1115 ads2;
#define ADS_I2C_ADDR 0x48
#define ADS_I2C_ADDR2 0x49
//------------------------------------------------------
#include <MobaTools.h>
int Rampe = 0;
const int STEPS_REVOLUTION = 6400; //Schritte pro Umdrehung Treibereinstellung
//Stepper einrichten ( 6400 Schritte / Umdrehung - 1/4 Microstep )
MoToStepper myStepper1( STEPS_REVOLUTION, STEPDIR );  // 6400 Steps/ Umdrehung
MoToStepper myStepper2( STEPS_REVOLUTION, STEPDIR );  // 6400 Steps/ Umdrehung
const byte dirPin1       = 6;
const byte stepPin1      = 7;
const byte enaPin1       = 5;
const byte dirPin2       = 9;
const byte stepPin2      = 10;
const byte enaPin2       = 8;
int vspeed = 0;                 //Steppergeschwindigkeit in U/min*10
//-----------------------------------------------------
byte ablauf = 3; //3 = Tagbetrieb /4 = Nachtbetrieb
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;
float ads_mv4 = 0;  // Sensor rechts
float ads_mv5 = 0;  // Sensor links
float ads_mv6 = 0;  // Sensor hinten
float ads_mv7 = 0;  // Sensor vorne
int adc4 = 0;
int adc5 = 0;
int adc6 = 0;
int adc7 = 0;
float Messung1 = 0;
float Messung2 = 0;
float Messung3 = 0;
float Messung4 = 0;
const int startposvertikal = 25;
const int startposhorizontal = 60;
byte kontrolle1 = 0;
byte kontrolle2 = 0;
byte kontrolle3 = 0;
byte kontrolle4 = 0;
int posvertikal = startposvertikal;
int poshorizontal = startposhorizontal;
const byte Servo1 = 5;
const byte Servo2 = 6;
unsigned long sekundenablauf1 = 0; // Messabstand 1 Sekunde
const unsigned long pausezeit1 = 5000;
unsigned long aktuellzeit = 0;
void setup() {
  //----------------------------------------------------
  lcd.begin();
  lcd.backlight();
  lcd.clear();
  //----------------------------------------------------
  Serial.begin(9600);
  //----------------------------------------------------
  ads.begin(ADS_I2C_ADDR, &Wire);
  ads2.begin(ADS_I2C_ADDR2, &Wire);
  // Werte 1-fach verstärken (ESP32 liefert  max. 3,3V)
  ads.setGain(GAIN_ONE);
  ads2.setGain(GAIN_ONE);
  //----------------------------------------------------
  lcd.setCursor (0, 0);            // Zeile 1
  //----------------------------------------------------
  pinMode(panel, INPUT);         // Spannung vom Panel
  //----------------------------------------------------
  sekundenablauf1 = millis();
  //-----Stepper---------------------------------------
  myStepper1.attach( stepPin1, dirPin1 );
  myStepper1.attachEnable( enaPin1, 10, LOW );        // Enable Pin aktivieren ( LOW=aktiv )
  myStepper1.setSpeed( 10 );
  myStepper1.setRampLen( Rampe );                       // Rampenlänge 100 Steps bei 20U/min
  myStepper2.attach( stepPin2, dirPin2 );
  myStepper2.attachEnable( enaPin2, 10, LOW );        // Enable Pin aktivieren ( LOW=aktiv )
  myStepper2.setSpeed( 10 );
  myStepper2.setRampLen( Rampe );                       // Rampenlänge 100 Steps bei 20U/min
  //---------------------------------------------------
}
void loop() {
  aktuellzeit = millis();
  //Jede Sekunde Spannung am Panel messen
  if (aktuellzeit - sekundenablauf1 >= pausezeit1) // Eine Sekunde abgelaufen?
  {
    panelwert = analogRead(panel);
    panelspannung = panelwert * 20.3 / 1024.0;
    lcd.setCursor (14, 0);            // Zeile 1
    lcd.print (panelspannung);
    if (ablauf == 3)
    {
      lcd.setCursor (0, 0);            // Zeile 1
      lcd.print (F("Panelspannung "));
    }
    if (ablauf == 4)
    {
      lcd.setCursor (0, 0);            // Zeile 1
      lcd.print (F("Nachtbetrieb  "));
    }
    sekundenablauf1 = millis();
  }
  // -----Kanal 0 Messung------------------------------
  adc0 = ads.readADC_SingleEnded(0);
  ads_mv0 = ads.computeVolts(adc0) * 1000;
  // -----Kanal 1 Messung------------------------------
  adc1 = ads.readADC_SingleEnded(1);
  ads_mv1 = ads.computeVolts(adc1) * 1000;
  Messung1 = ads_mv0 + ads_mv1;
  lcd.setCursor (6, 3);            // Zeile 4
  lcd.print ("          ");
  lcd.setCursor (6, 3);            // Zeile 4
  lcd.print (Messung1);
  // -----Kanal 2 Messung------------------------------
  adc2 = ads.readADC_SingleEnded(2);
  ads_mv2 = ads.computeVolts(adc2) * 1000;
  // -----Kanal 3 Messung------------------------------
  adc3 = ads.readADC_SingleEnded(3);
  ads_mv3 = ads.computeVolts(adc3) * 1000;
  Messung2 = ads_mv2 + ads_mv3;
  lcd.setCursor (6, 1);            // Zeile 2
  lcd.print ("          ");
  lcd.setCursor (6, 1);            // Zeile 2
  lcd.print (Messung2);
  // -----Kanal 4 Messung------------------------------
  adc4 = ads2.readADC_SingleEnded(0);
  ads_mv4 = ads.computeVolts(adc4) * 1000;
  // -----Kanal 5 Messung------------------------------
  adc5 = ads2.readADC_SingleEnded(1);
  ads_mv5 = ads.computeVolts(adc5) * 1000;
  Messung3 = ads_mv4 + ads_mv5;
  lcd.setCursor (0, 2);            // Zeile 3
  lcd.print (Messung3);
  // -----Kanal 6 Messung------------------------------
  adc6 = ads2.readADC_SingleEnded(2);
  ads_mv6 = ads.computeVolts(adc6) * 1000;
  // -----Kanal 7 Messung------------------------------
  adc7 = ads2.readADC_SingleEnded(3);
  ads_mv7 = ads.computeVolts(adc7) * 1000;
  Messung4 = ads_mv6 + ads_mv7;
  lcd.setCursor (12, 2);            // Zeile 3
  lcd.print (Messung4);
  //------------Lichtquelle suchen---------------------
  if (ablauf == 3)
  {
      //--------Horizontal Kontrolle plus--------------
      if (kontrolle1 == 0)
      {
        if ((Messung2) < Messung1) // Links dunkler als rechts
        {
          if (poshorizontal > 0)
          {
            if (myStepper1.moving() == 0)
            {
            poshorizontal = poshorizontal - 1; // Fahre nach rechts
            myStepper1.doSteps( -50 );         // Stepper dreht rückwärts
            lcd.setCursor (0, 3);
            lcd.print ("   ");
            lcd.setCursor (0, 3);
            lcd.print (poshorizontal);
            }
          }
        }
        else
        {
          kontrolle1 = 1;
          /*
          Serial.println(F("Messung2 < Messung1"));
          Serial.print(Messung2);
          Serial.print("  -  ");
          Serial.println(Messung1);
          */
        }
      }
      //--------Horizontal Kontrolle minus-------------
      if (kontrolle2 == 0)
      {
        if ((Messung2) > Messung1) // Links heller als rechts
        {
          if (poshorizontal < 120)
          {
            if (myStepper1.moving() == 0)
            {
            poshorizontal = poshorizontal + 1; // Fahre nacht Links
            myStepper1.doSteps( 50 );         // Stepper dreht Vorwärts
            lcd.setCursor (0, 3);
            lcd.print ("   ");
            lcd.setCursor (0, 3);
            lcd.print (poshorizontal);
            }
          }
        }
        else
        {
          kontrolle2 = 1;
          /*
          Serial.println(F("Messung2 > Messung1"));
          Serial.print(Messung2);
          Serial.print("  -  ");
          Serial.println(Messung1);
          */
        }
      }
      //-------Vertikale Kontrolle plus----------------
      if (kontrolle3 == 0)
      {
        if ((Messung4) < Messung3)  // Hinten dunkler als vorne
        {
          if (posvertikal > 0)
          {
            if (myStepper2.moving() == 0)
            {
            posvertikal = posvertikal - 1;  // Fahre runter
            myStepper2.doSteps( 50 ); // Stepper dreht rückwärts
            lcd.setCursor (17, 3);
            lcd.print ("   ");
            lcd.setCursor (17, 3);
            lcd.print (posvertikal);
            }
          }
        }
        else
        {
          kontrolle3 = 1;
          /*
          Serial.println(F("Messung4 < Messung3"));
          Serial.print(Messung4);
          Serial.print("  -  ");
          Serial.println(Messung3);
          */
        }
      }
      //--------Vertikal Kontrolle minus---------------
      if (kontrolle4 == 0)
      {
        if ((Messung4) > Messung3) // Hinten heller als vorne
        {
          if (posvertikal < 50)
          {
            if (myStepper2.moving() == 0)
            {
            posvertikal = posvertikal + 1; // Fahre hoch
            myStepper2.doSteps( -50 ); // Stepper dreht Vorwärts
            lcd.setCursor (17, 3);
            lcd.print ("   ");
            lcd.setCursor (17, 3);
            lcd.print (posvertikal);
            }
          }
        }
        else
        {
          kontrolle4 = 1;
          /*
          Serial.println(F("Messung4 > Messung3"));
          Serial.print(Messung4);
          Serial.print("  -  ");
          Serial.println(Messung3);
          */
        }
      }
      //-------Vertikale Kontrolle Ende-----------------

      //------------Lichtquelle suchen Ende-------------
  }
  //------------Kontrolle wieder aktivieren-------------
  //--------------------auf / ab------------------------
  if (ablauf == 3)
  {
    if (kontrolle1 == 1)
    {
      if ((Messung2 + 200) <= Messung1) // Links dunkler als rechts
      {
        kontrolle1 = 0;
      }
    }
    if (kontrolle2 == 1)
    {
      if ((Messung2) >= (Messung1 + 200)) // Links heller als rechts
      {
        kontrolle2 = 0;
      }
    }
    //-----------------rechts / links-------------------
    if (kontrolle3 == 1)
    {
      if ((Messung4 + 200) <= Messung3)  // Hinten dunkler als vorne
      {
        kontrolle3 = 0;
      }
    }
    if (kontrolle4 == 1)
    {
      if ((Messung4) >= (Messung3 + 200)) // Hinten heller als vorne
      {
        kontrolle4 = 0;
      }
    }
  }
  //-----------------------------------------------------
  //--------------Kontrolle ob schon zu Dunkel-----------
  if ((Messung1 < 1000) || (Messung2 < 1000) || (Messung3 < 1000) || (Messung4 < 1000))
  {
    ablauf = 4;
  }
  else
  {
    if ((Messung1 > 1400) && (Messung2 > 1400) && (Messung3 > 1400) && (Messung4 > 1400))
    {
      ablauf = 3;
    }
  }
  //-----------------------------------------------------
  //---------In die Nachtposition fahren-----------------
  if (ablauf == 4)
  {
    //ServoVertikal.write(startposvertikal);
    //ServoHorizontal.write(startposhorizontal);
  }
  //-----------------------------------------------------
}
.
Sonnen_Nachführung_Solarpanel_V3_Schrittmotoren2.JPG
Sonnen_Nachführung_Solarpanel_V3_Schrittmotoren2.JPG (778.97 KiB) 786 mal betrachtet
Man sieht jetzt im Video auch schön die Abdeckungen der Lichtsensoren. Also auf jeder Seite einer offen, und einer mit drei Lagen 100gr. Papier abgedeckt. Ich hoffe dass ich heute oder morgen mal richtig gutes Sonnenlicht bekomme, dass ich testen kann ob die Werteermittlung mit den jeweils beiden Lichtsensoren gut hinkommt. Bin mir aber recht sicher, dass das passt. Bei meinem Licht hier am Tisch habe ich auf den beiden Vertikalen Sesoren 3500 und auf den beiden Horizontalen 2900. Also wunderbar im Zielgebiet. Die Werte der beiden Horizontalen Sensoren können sich etwa um den Wert 100 unterscheiden, genauso bei den Vertikalen Sensoren. Ich habe zur Zeit die Einstellung so, dass eine Neueinstellung losgeht, wenn sich die Werte auf Horizontal oder auch Vertikal um mehr als 200 unterscheiden. Kann sein, dass ich das noch ein bischen runtersetze, so dass die Mühle schon eher nachjustiert.

Hier das Schaltbild in Vergrößerung!!
Und hier mal ein aktueller Video von der Mühle.
Benutzeravatar
Admin
Administrator
Beiträge: 1197
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Ich habe jetzt die Tolleranz zum Nachjustieren erst von 400 auf 200 runtergesetzt, und jetzt noch mal runter auf 100. Also, sobald die Zusammengehörigen Sensoren von Horizontal oder von Vertikal in einer Richtung mehr als 100 unterschiedlich sind, wird schon nachgestellt. Ob das so gut ist, weiß ich noch nicht. Für Morgen sagt der Wetterbericht viel Sonne an, dann denke ich, kann ich mal einen umfassenden Testlauf unter Echtbedingungen machen.

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

Re: Die Position der Sonne mit Sensoren bestimmen

Beitrag von Admin »

Ich hatte heute Morgen um 10:00 Uhr noch dicke Nebelsuppe am Himmel. Idial um zu testen, ob die Mühle auch bei schwierigen Verhältnissen gut ausrichtet, weil da ja fürs Auge kein besonders heller Punkt zu sehen ist. Das Ding hat sich innerhalb von Sekunden auf eine sehr helle Richtung ausgerichtet. Und es reagiert sofort, wenn auch nur geringe Verschattungen kommen. Als ich auch nur auf der Seite daneben, näher rann gekommen bin, hat das Gerät sofort ein bischen von mir weg, ausgerichtet. Wenn ich mich direkt davor gestellt habe, der Mühle also voll im LIcht gestanden bin, hat das Gerät erst probiert, über mir wieder mehr Licht zu bekommen, als das wohl nichts so toll war ist, hat es neben mir versucht und ist wieder runter mit dem Panel. Und schon hatte es wieder die best mögliche Helligkeit. Das Panel war bei dieser Nebelsuppe 11,40 Volt, was im Vergleich zu den Tests im Raum bei vollen LED Tageslicht, 6400K bei 3800lm, nur 8,20 ist. Ich glaube meine Messtolleranz "100" ist ganz gut, weil die Mühle da wirklich sehr gut auf kleine Änderungen reagiert. Ich möchte nochmal darauf hinweisen, dass das Gerät hier nicht zum Strom erzeugen bebaut ist, sondern dafür, ein möglichst gutes Programm dafür zu erstellen und testen zu können. Dieses aberwitzige Sonnen-Panel, das ich hier benutze ist NICHT zum Stromerzeugen drauf, sondern zum sehen wie der Unterschied wäre, wenn ein vernünftiges Panel damit gesteuert wird!! Es steht ja jedem frei, ein brauchbares SolarPanel zu benutzen, das muss nicht mal Kontakt zum Arduino haben. Der ist ja nur zur Ausrichtung des Panels und benutzt die ausgegebene Spannung des Panels NICHT zur Ausrichtung des Panels!! Nur zur Anzeige der Intensität der Sonne auf dem Display. Wenn man das echte Panel an dieses System anschließt, um die Spannugn des Panels auch am Display zu sehen, muss man den 30Kohm Widerstand am Spannungsteiler, der die Panelspannung runterteilt auf unter 5 Volt ändern auf etwa 40-50 KOhm, und die Berechnung der gemessenen Spannung an die echte Spannung anpassen!!

Die Sonne lässt noch auf sich warten. Wenn wir richtig Sonne haben, nöchte ich den Test wiederholen. :(V):
Antworten

Zurück zu „Hardware / Schaltungstechnik“

Wer ist online?

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