You can get a faster reaction time safely by subtracting the detected decivolts from 135 (the setting), convert that to PWM steps, keeping the sign (can't remember from your last video how much voltage change one step is). If it's larger than 2, divide it by 2, and add that to the current setting. (A straight divide by 2 would work, but would lessen the small change resolution by one bit, and probably cause it to hunt. The IF gives it back.) A negative difference would lower it, and vice versa, and the divide by 2 would help keep it from over shooting and slows the delta the closer it gets, while still getting to the final value in less than half the loop cycles for large transients.
hello mr. Julian I have found your videos on solar battery charging extremely useful I have watched almost every video you have posted. I'd like to see what you think of using this function in your code for the Arduino pwm. the Arduino has a function called pulse in. I'm wondering if pulse in could be used to synchronize your code to take a reading after the raising Edge of the mosfet control signal pulse in if I'm reading the documentation correctly uses a delay in milliseconds. if you delayed your voltage read to just past the Rising Edge of the fet control signal this might get rid of a lot of the Jitter. I'm wondering though if the way I see you programming the timers would mess up Pulse in internal timing I got this idea from watching the videos on YouTube about measuring inductance and capacitance with an Arduino in a lot of the videos I've seen on inductance meters based on Arduino one pain is used to pulse a tank circuit and then an lm339 is used to square up the sinusoidal wave. pulse in is used to count the duration of the on cycle in Millie's. the inverse of this duration is used to calculate frequency and then using the appropriate formulas. you can derive a approximation of the inductor under test
I'm wondering if this could be used to synchronize the voltage measurements to say within 10 to 500 milliseconds after the raising Edge of the FET control signal. I have a sketch for this program but at the moment I don't have a free Arduino of any kind to test this out. waiting on the slow boat from China I did a slight code modification to the Muppet code. at startup I call a small subroutine that takes the pwm from 0% to 100% as it Cycles through it records the highest wattage and pwm setting. I use these values to start the rest of the code just the way you wrote it. and according to what my scope is showing me you do get different voltage readings during the on cycle and off cycle. I've used the serial monitor in its graphics mode to plot a curve of the wattage as this subroutine steps through the values. I've seen weird low spikes in it, at this time I'm assuming some of the spikes are readings taken when the FET is it in the off State. possibly maybe when interrupts are triggering as well.
thank you sincerely for your time, sharing, and inspiration
I've followed Muppet and PWM5 and now the ArdusolarPWM with great interest but I've never really understood the battery "set point" reasoning and why is 13.5 Volts optimum for a 12 Volt nominal lead acid battery. Can you clear this up for me please. Regards . Alan
Hi Julian, I'm going to build this. I arrived too late on the scene to buy one of your original PWM controllers but I like the idea of building the Arduino version. I only have a couple of smallish solar panels but I'll also splash out on a larger panel at some point . I'm also following the progress of MuPPeT, which is the target project for my soiree into solar stuff. Keep up the good work.
Julian, you should do a video on calibrating eBay DVMs. I have 5 of those blue LCD ones, and some are within 1 volt apart! Mind you, they have been in my shed for a couple years. The hard part with trimming these is the TWO trimpots on the back. I am not sure why there are two, and they do both effect voltage.
I essentially want to do this, but much higher voltage, with an ESP32, Micropython, and an IGBT instead of a MOSFET.
if (V3 < 27 )
{
if (pulseWidth != 255) pulseWidth++;
}
if (V3 > 27 )
{
if (pulseWidth = 0);
}
This is the part of the code that i use, the problem i find is that it is very slow. Any idea on how to make it a little faster ?
You can get a faster reaction time safely by subtracting the detected decivolts from 135 (the setting), convert that to PWM steps, keeping the sign (can't remember from your last video how much voltage change one step is). If it's larger than 2, divide it by 2, and add that to the current setting. (A straight divide by 2 would work, but would lessen the small change resolution by one bit, and probably cause it to hunt. The IF gives it back.) A negative difference would lower it, and vice versa, and the divide by 2 would help keep it from over shooting and slows the delta the closer it gets, while still getting to the final value in less than half the loop cycles for large transients.
If you put 2 diodes in parallel that should take down the heat I think
When i cam test this out and have some good resualts I'll post in eather get hub or goole code. And I'll include easyEDA schematic
hello mr. Julian
I have found your videos on solar battery charging extremely useful
I have watched almost every video you have posted.
I'd like to see what you think of using this function in your code for the Arduino pwm.
the Arduino has a function called pulse in.
I'm wondering if pulse in could be used to synchronize your code to take a reading after the raising Edge of the mosfet control signal
pulse in if I'm reading the documentation correctly uses a delay in milliseconds.
if you delayed your voltage read to just past the Rising Edge of the fet control signal
this might get rid of a lot of the Jitter.
I'm wondering though if the way I see you programming the timers would mess up Pulse in internal timing
I got this idea from watching the videos on YouTube about measuring inductance and capacitance with an Arduino
in a lot of the videos I've seen on inductance meters based on Arduino
one pain is used to pulse a tank circuit and then an lm339 is used to square up the sinusoidal wave.
pulse in is used to count the duration of the on cycle in Millie's.
the inverse of this duration is used to calculate frequency and then using the appropriate formulas.
you can derive a approximation of the inductor under test
I'm wondering if this could be used to synchronize the voltage measurements to say within 10 to 500 milliseconds after the raising Edge of the FET control signal.
I have a sketch for this program but at the moment I don't have a free Arduino of any kind to test this out.
waiting on the slow boat from China
I did a slight code modification to the Muppet code.
at startup I call a small subroutine that takes the pwm from 0% to 100%
as it Cycles through it records the highest wattage and pwm setting.
I use these values to start the rest of the code just the way you wrote it.
and according to what my scope is showing me you do get different voltage readings during the on cycle and off cycle.
I've used the serial monitor in its graphics mode to plot a curve of the wattage as this subroutine steps through the values.
I've seen weird low spikes in it, at this time I'm assuming some of the spikes are readings taken when the FET is it in the off State.
possibly maybe when interrupts are triggering as well.
thank you sincerely for your time, sharing, and inspiration
Hi Julian,
I've followed Muppet and PWM5 and now the ArdusolarPWM with great interest but I've never really understood the battery "set point" reasoning and why is 13.5 Volts optimum for a 12 Volt nominal lead acid battery. Can you clear this up for me please. Regards . Alan
Hi Julian, I'm going to build this. I arrived too late on the scene to buy one of your original PWM controllers but I like the idea of building the Arduino version. I only have a couple of smallish solar panels but I'll also splash out on a larger panel at some point . I'm also following the progress of MuPPeT, which is the target project for my soiree into solar stuff. Keep up the good work.
I'd be interested in building one of these once you're done with ironing out the bugs… Great job on that, by the way!
i think you should use PID in your software to get PWM value correct all the time …ย
Julian, you should do a video on calibrating eBay DVMs. I have 5 of those blue LCD ones, and some are within 1 volt apart! Mind you, they have been in my shed for a couple years. The hard part with trimming these is the TWO trimpots on the back. I am not sure why there are two, and they do both effect voltage.