Solar charging control with Arduino             Schakelen zonnepaneel regulator

 

2023 02 01 Solar Regulating With Arduino
PDF – 1,4 MB

Solar charging control

Enlish version of the page below in pdf.  This project describes the controlled bridging of a solar panel controller with a relay, controlled by an Arduino Uno microprocessor. This enables better charging during poor charging conditions. (3 pages)

Schakelen zonnepaneel regulator                                                              2023 02 16 

Doel en werking

Het overbruggen van een zonnepaneelregulator tijdens slechte laadcondities, zodat er tijdens het verbruiken van stroom minder verlies optreed en een hoger rendement uit de zonnepanelen gehaald wordt. Het systeem kent twee fases:

1. De FLOAT fase waarin de accu's geladen worden via een stabilisator, afgesteld op 13.8 V

2. Een BULK fase waarin de stabilisator wordt overbrugd en het zonnepaneel direct aan de accu's en/of gebruikers kan leveren.

Bij een spanning van minder dan 13.5 V start de BULK fase. Boven 15.0 V start de FLOAT fase.

 

Noot: Het laden door het zonnepaneel en het meten/ regeling vinden plaats nabij de voltmeters. De werkelijke spanning op de accu's ligt lager. Bij dit project moeten de waarden ingesteld moeten worden naar gelang de specifieke situatie aan boord.

Voor de regeling gebruik ik een programmeerbare Arduino Uno type microprocessor die een relais schakelt waarmee de 13.8V stabilisator overbrugd wordt.

De maximale en minimale spanning van de BULK fase zijn hierdoor eenvoudig in het programma aan te passen.

Ook de vertragingstijd tussen het bereiken van het ingestelde voltage en het schakelen van het relais is eenvoudig aan te passen. Deze delay staat nu op 5000 ms (5 seconden)

Omdat het meetbereik van de Arduino tussen de 0 en 5 volt ligt is een zenerdiode in lijn gezet waarmee de te meten spanning eerst met 11.82 V verminderd wordt.

 

Het programma

// _210513_Solar_Charging ! Disconnect D1 while uploading program

// Remark: float is a data type: floating point

//                 FLOAT is a charging stage

 

const int messurePin = A0; // yellow from zener - monitors the voltage

const int bulkPin = 1; // white to IN relais

const int BULK_LED = 2; // yellow LED on in BULK fase

const int FLOAT_LED = 3; // green LED on in FLOAT fase

float volt_Min = 13.5; // starting voltage for bulk mode

float volt_Max = 15.0; // top voltage for bulk mode

float volt_Messured = 0.0;

bool bulkEnabled = true; // always start in bulk mode

 

void setup()

{

      pinMode(bulkPin,OUTPUT);

      pinMode(BULK_LED,OUTPUT);

      pinMode(FLOAT_LED,OUTPUT);

      digitalWrite(bulkPin,HIGH); // start in bulk mode

      digitalWrite(BULK_LED,HIGH);

}

void loop()

{

       // Get the current voltage (11.82 is zener+diode value)

      volt_Messured = 11.82 + 5.0 * analogRead(messurePin) / 1024.0;

      delay(250);

      // Set conditions for charging

      if(volt_Messured > (volt_Max )) // too high > switch off

      {

             bulkEnabled = LOW;

             delay(5000); //5 seconds

      }

      if(volt_Messured <= volt_Min) // too low > switch on

      {

             bulkEnabled = HIGH;

             delay(5000);

      }

      if(bulkEnabled == true) // charge direct if conditions are met

      {

             digitalWrite(bulkPin,HIGH); // 5 V to relais

             digitalWrite(BULK_LED,HIGH);

             digitalWrite(FLOAT_LED,LOW);

       }

       else if (bulkEnabled == false)

       {

              digitalWrite(bulkPin,LOW); // 0 V to relais

              digitalWrite(BULK_LED,LOW);

              digitalWrite(FLOAT_LED,HIGH);

        }

}

Het schema van de stabilisator en connectie met de Arduino Uno:

 

De plaatsing van het regelsysteem in het 12V circuit:

Met de keuzeschakelaar na de “SolArduino” kan er een keuze gemaakt worden welke accugroep wordt geladen met het zonnepaneel

1. Startaccu 2. Domestic 3. Boegschroef

foto: Groene LED aan:

FLOAT mode via de spanningsregulator

 

 

Jeroen Droogh

bootprojecten@gmail.com