chatelot16 wrote:to make a pwm with constant input voltage and output voltage adapted to the power there is no need for an arduino: it is done with any integrated circuit for decoupage power supply
Probably, but there is the pleasure to develop it and it really costs me nothing with this beast to do everything that can simultaneously manage
the charge of a battery and many other functions, provided you add the sensors that go well. The passionate Hindu I quoted did not foresee the PWM management of a resistive load.
I added capacitors and improved the program, it's very stable now.
A test to 16h30 on a misty sunbeam, almost horizontal, which only lasted a few minutes. I got a maximum of 0.6 W with a voltage at the terminals of the panel, very constant at 12 V.
lilian07 wrote:Izentrop I can do a quick pre-simulation from my panel: EPDM + poly 4mm without insulation in the underside (also knowing the total loss of the panel thus constituted it will be possible to calculate the reduction of loss by insulation that you will put). Poly 8mm is more expensive and does not really much more benefit (it captures less light but isolates significantly more). Insulate in the background in your case provides a double wall insulation advantage by the outside + bottom insulation of panel.
For pre-simulation: I need your city.
Moreuil to the nearest, otherwise Amiens.
- The NPN transistor and the 5 V controller are for higher operating voltages than 12 v
- nanoPWM.gif (20.08 Kio) Accessed 5669 times
The programme
code: Select all
/*
Interface PWM entre panneau solaire et résistance de cumulus eau chaude.
Adaptation à la puissance optimale en variant le rapport cycliqueet en maintenant
la tension constante aux bornes du PV
test sur PV 12 V 2 w
Rapport pont diviseur 8.2 k/4.4k : 2.863
Pas de lecture analogique : 5/1024 = 0.00488
Tension optimale vPVopt : 859 (12 v), correspondant à 4.19 V en A2
Variation du rapport cyclique :
Si la tension est supérieure 12.1 V
Si la tension est inférieure 11.9 V
*/
//broches
int vPVpin = 2; // mesure tension aux bornes du PV
int pwmPin = 9; // sortie PWM
//variables
float vOpt = 12.08; // tension optimale du panneau 12 V
float pasLecture = 0.00488;
float division = 2.863; //= 2.863 pont diviseur 8.2 k/4.4k
float pasPwm = 0.047 ; // = 12/255
int mesurePV; //0 à 1024
float vPV;
//float vpvMem;
float vRc;//tension aux bornes de la résistance de charge
float rCyc; //rapport cyclique 0 à 255 en byte= problème sur les limites
float cycMem;//
void setup() {
TCCR1B = TCCR1B & 0b11111000 | 0x05 ; // réglage pour 61.03Hz pwm
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
mesurePV = analogRead(vPVpin);
vPV = mesurePV * pasLecture * division;
vRc = vPV / 255 * rCyc;//
if (vPV > 12.1) rCyc += (vPV - vOpt) / pasPwm;// exclut les faibles variations < 0.1 V
if (vPV < 11.9) rCyc -= (vOpt - vPV) / pasPwm;
// garde fou
if (rCyc > 254)rCyc = 255;
if (rCyc < 2)rCyc = 0;
analogWrite(pwmPin, rCyc);
//affichage
Serial.print("rapport cyclique : " );
Serial.println(rCyc);
Serial.print("tension PV : ");
Serial.print(vPV);
Serial.print(" V / tension sur Rc : ");
Serial.print(vRc);
Serial.print(" V ");
};
Looking for the maximum power point on a resistor is not difficult, just determine the value of the internal resistance of the PV and simulate the same value and I do not think we do more in MPPT.
As it is necessary to go through a DC / DC converter, the losses would be greater in this case.
I also think that one can easily modify a steatite resistance so that it can work in bi-tension.