Author Topic: Arduino inverter load controller  (Read 13543 times)

0 Members and 1 Guest are viewing this topic.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Arduino inverter load controller
« on: February 29, 2016, 02:21:04 PM »
I have a few solar panels on my roof here at the building where I reside in Chicago.  These are wired to the basement where they run through a couple of old Trace C-40 charge controllers.  Originally I had a small 48 hour battery bank, but that gave out quite a few years back now.  In place of the batteries, I have a buffer made out of super capacitors.  Those are currently arranged in a series parallel configuration at 1931.84 Farads which I run between 60 and 32 volts as the latter is the lowest cutoff for the old trace 4048 inverter I have here.  There are 691 Watt hours of energy usable between those voltage points.  I have not always gotten the best use of the power I generate as the panels can charge this up relatively quickly, 15 minutes or so if it is sunny out.  I have a relay or two in the trace that I could use for load management, but I would still have to hook them up to control a more powerful relay.  What I decided to do instead is to build an external load management system using a micro-controller and some solid state relays to manage the loads. 

I don't have huge experience with micro-controllers, but the Arduino's are very simple to use and control by comparison.  I ordered up a few to play with.  For the project, I went with an Arduino Nano clone which I purchased off of Ebay for about $2.50 U.S. shipped to my door.  It came in a static wrapper.  The pins were included but not attached, so I soldered them in place. 

9544-0


Downloading the Arduino software is free and relatively straight forward.  The only issue I had was that I had to download and install the drivers for the serial interface chip used on the clone as it was a CH340 which was a substitution from the genuine Arduino design.  Once I got that sorted out, programming the Arduino to do simple tasks like turn on and off an LED was relatively simple thanks to the excellent documentation from the folks at Arduino and an excellent set of tutorials on Youtube by a fellow named Jeremy Blum.  I found that I could control solid state relays right from the output pins which was perfect for my goal.  Below are a series of problems I had to overcome to get a usable device






Getting a useable voltage into the Arduino from the capacitor bank:

9545-1


  My system goes up to 60V. so I needed a buck converter that could efficiently drop that to a voltage the Arduino could use.  I found a buck converter based on an LM2596 chip advertised as good to 60V.  What I found at the cost of a 16 by 2 LCD display was that it actually was not, but more on that later, I did wind up using one with a zener to drop the voltage so the max is about 48V into the converter.  Not elegant, and costs some efficiency, but since the device only draws between 10 and 20 mA I guess it is acceptable.

Measuring the capacitor bank voltage:
In the first iteration of the device, I set up a voltage divider on one of the inputs using a 100K ohm resister off the high voltage and a 8.2K ohm resistor for the bottom.  This keeps the voltage at the mid point in a range measurable by the Arduino, roughly 7.58 percent of the voltage.  Now, in practice I have issues with this as it seems that a slight fluctuation in the supply voltage throws the voltage off.  Since the relation between the measured and the actual voltage is linear, I added a couple of parameters when calculating the actual voltage from the voltage divider one to adjust the y intercept, and one the slope so that I could have a reasonable measurement.  These were hard coded in the program, but I may switch them to a couple of potentiometers so that I can adjust it in the installation without connecting a computer if I don't find a better solution.  I think the voltage measurement is a weak point that I still need to improve. 

Ok, so on the programming end I set up variables for the measured voltage and the on and off voltages of the relays.  I also set up variables for the output pins for the relays.  I ran an outer for loop that calculates the voltage and compares it against the voltage settings for the relays and turns their respective input and output pins on and off accordingly.  I set up a 16 by 2 LCD display to display the voltage on the top line and cycle through the voltages on the bottom line. 

9546-2
9547-3


This worked, but in order to make any adjustments I had to change the voltages coded in the software and reprogram the chip.  Thinking that would be inconvenient, I first added 4 analog inputs so that I could adjust the voltages that the relays turned on and set the voltage they turned off to a couple volts below that.  I wasn't really happy with the limited flexibility in the relay settings and hysteresis that this allowed for, so I changed it again.  This time I added three buttons.  Running low on digital pins, I used three analog pins for their inputs.  I ran switches through pull up and pull down resistors so that the switch value would go to high when depressed and low when not.  I put if statements to check the buttons.  I had the first button press turn on the LED for the LCD display, and set it to turn off after a time so as to not waste that power.  The three buttons I called select, minus, and plus.  I set it up so that if the select button is pressed shortly after the display LED is turned on it goes to a setup menu which allows the voltage at which each of four relays turn on and off to be set.  If there is no activity this scrolls back to normal operation displaying the voltage and the cycling through the settings for each relay.

9548-4



More to follow. . . .
A Joule saved is a Joule made!

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #1 on: February 29, 2016, 02:38:58 PM »
On the hardware end of it, I got a box with four breakers and split the bus so that I could run the output from the inverter directly to one of the breakers and through solid state relays for the other three.  I intend to use the fourth relay output with a DC relay to heat some water.  I am thinking I can run the really low control current through a water heater thermostat and run DC from my capacitor bank through a heating element to heat the water.  (I figure a 2000 Watt 120V element is about 7.2 Ohms and will draw about 500 Watts at 60V, so with two that should get me about 1000 Watts into the water while its running, which will only be when the voltage is near 60V. ) 

9553-0


For test purposes I ran each output to a single outlet and rigged a temporary power cord for the box.  I tested this off of my benchtop power supply.  It seemed to work OK.   

I then switched it over to my inverter power out and the capacitor bank for the DC voltage.  I didn't have a DC relay handy, so I put the fourth relay output out to another solid state AC relay.  Once that was done I hooked it all up.  The first day it broke :(  The DC buck converter broke as it turned out.  Fortunately the Arduino survived, but the LCD was killed.  Probably the chip set on it.  Fortunately I had a spare for both the buck converter and the LCD and was able to get it back up and running.  It had survived without issue up to 51.6 V., but at 60 it did not.  I ordered up a 5 Watt 12V Zener to drop the supply voltage to the buck converter and have had no issues with the replacement buck converter since.  Once the Zener arrived I ran the power through a test lead to the diode and then through another test lead to the power for the buck converter.  The voltage divider was attached to the capacitor bank voltage directly.  Of course when I first rigged this up I accidentally dropped the zener with the leads attached and it made contact with one of the capacitor bank bus bars.  I don't know what became of the diode portion, but there was a flash and a bang and all that was left were the leads one of which was welded to a test lead.  Fortunately again I had another zener, so I 'carefully' rigged it up and the setup worked at that point.

9554-1


At present, I have it temporarily configured with a 9.5W LED bulb hooked to the outlet always on when the inverter is on, I don't have anything hooked to the first relay, I have a cord running to lights in my plant room on the second relay, and the third relay is hooked to a 1500W space heater.  The fourth relay I don't have anything connected to, it is just sitting outside of the breaker box for testing purposes.  It is working well now with the exception of the voltage accuracy. 













I figure I can mount the circuit onto a 2 inch by 4 inch pcb and designed a box to house the board along with the LCD and three buttons.  I put two half inch holes for conduit connections on the box. 

9555-2
9556-3












Of course my 3D printer ran into a problem about half way through the first part, so the cover will have to wait for now. 

9557-4











At any rate this is currently where this project is at.  I need to make a box for the pcb and then to mount it and hard wire it in a more stable permanent location. 
A Joule saved is a Joule made!

DamonHD

  • Administrator
  • SuperHero Member
  • *****
  • Posts: 3622
  • Country: gb
    • Earth Notes
Re: Arduino inverter load controller
« Reply #2 on: February 29, 2016, 02:47:54 PM »
Very good!

You have more usable energy storage in your supercaps than I have in my (aux) LiFePO4 battery, I think!

(I'm hoping to soon play with another ~5kWh of storage, but heat this time, in PCMs.  My electric storage is ~2kWh, off-grid.)

Rgds

Damon

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #3 on: March 02, 2016, 10:19:04 AM »
I think we could see some interesting stuff out of this. Ain't it the truth, if you can just
get it to blink the rest is easy.  I should have a couple of those boards arriving in a few
days.  I have a number of the non UART boards, but I left the FTDI programmer at the camp and
decided to get them with the built in USB since the price has dropped.  If you have a spare one
I have an idea that I've wanted to try with someone that has a C-45.  It should fit right into
your situation.

The 2596 regulators are almost always clones.  I love them but use them only conservatively.  You
have enough voltage to use standard electronic wall warts.  My buss is about 50V and I power
everything with them. Sometimes I open them up to eliminate some of the diodes and about 40 ohms
of resistance used as filters on the power line side.  For light loads I use them as they are.
Nice thing is that they fail safe.  Being isolated these are very nice for high side drivers,
just add a FET and an opto isolator.  Opto isolators are slow, but I have no trouble driving a
FET at 15A 490Hz PWM rates.  Just inhibit really narrow pulses at each end of the PWM.

There is a voltage reading issue to be aware of.  When the USB is plugged in, the reference
voltage the A/D may change since it will operate on whichever 5V is higher.  To avoid this I
slice a USB cable open and cut the 5V line and insert some back to back diodes.  A capacitor
should be in parallel with the A/D input. This will provide noise protection and filtering. 
It also reduces the input impedance  for a more stable reading with higher resistance dividers.
When grabbing data off the USB line using TOOLS you may have noticed that the micro resets when
the USB is plugged in.  This will erase any data stored.  Connecting a 20-100uF on the reset
line will prevent that. Floating point math should be avoided as it greatly slows down processing
speed.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #4 on: March 02, 2016, 01:58:06 PM »
I had noticed the different voltage readings when a USB cable was connected and attributed it to a difference in supply voltage.  In my case, I'm not leaving it connected, although I still haven't commented out the serial port data I was sending when I was setting it up. I will have to look at the wall wart idea, I am assuming these are switching power supplies.  Most of the ones I have seen are rated for a minimum 100VAC input, although I presume they do rectify it and convert it and similar to the converters in some of my LED bulbs can handle much lower.  My system does drop all the way to 32V, and a bit lower than that toward the end of a cold winter night due to the remaining dc draws after all the usable energy has been drained by my inverter.  Rich
A Joule saved is a Joule made!

DamonHD

  • Administrator
  • SuperHero Member
  • *****
  • Posts: 3622
  • Country: gb
    • Earth Notes
Re: Arduino inverter load controller
« Reply #5 on: March 02, 2016, 02:37:38 PM »
On the Arduinos (eg UNO) you can choose to measure analogue inputs against the the fixed (bandgap) reference rather than the supply voltage, which can deal with that issue.

Rgds

Damon

frackers

  • Sr. Member
  • ****
  • Posts: 398
  • Country: nz
  • Is it finished yet?
Re: Arduino inverter load controller
« Reply #6 on: March 02, 2016, 04:04:53 PM »
On the Arduinos (eg UNO) you can choose to measure analogue inputs against the the fixed (bandgap) reference rather than the supply voltage, which can deal with that issue.


But be sure that the voltage to be read does not exceed the reference (2.56v in the case of the bandgap). Potentially means a change to the scaling resistors you are using.


Robin Down Under (Or Are You Up Over)

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #7 on: March 03, 2016, 07:07:45 AM »
Since you mentioned water heating, here is my proposal.  The C-45 is a basic ON/OFF PWM
controller.  When off the panel voltage rises to the open circuit voltage of the panels.
Solar panels are basically current sources. When the PWM turns on, the panens are connected
directly to the solar panels.  Current is limited to what the panels can produce and the
panel voltage is that of the battery.  Not he most efficient method but it works and is reliable.

The maximum power a panel can produce is the product of volts times amps. The maximum is
called the power point voltage.  This voltage actually does not vary much with the amount of sunlight,
but with the temperature of the panel. Panel temperature can be monitored and the voltage tracked.
Actually using a fixed voltage adjusted seasonally does not lower efficiency that much. In the
case of heating water it is often advantageous to be on the high side of the power point voltage
because the fixed resistance of the heating element is generally higher than ideal.  In most
situations the PWM of the heater will be at 100% for long periods of time.

My proposal is to take those periods of time when the panels are at open circuit voltage and
charge a small capacitor bank.  When the voltage of that capacitor bank exceeds the power point
voltage of the panels, that power is PWMed into the water heater. During normal C-45 on periods
the charge controller sees no difference in operation, but we have harvested energy during the
off periods.  The diode is absolutely necessary to provide isolation. Without it peak currents
would exceed what the controller would handle.  The independent micro controls everything and
can power down when there isn't any sun. In this case a wall wart power supply for the micro is
ideal.

This is similar to what I do at my camp. With about 1000W of panels I am able to divert over
2.5KWH to water heating after supplying daily household needs.  Remember this is power most
systems waste every day because solar systems have to be over designed in order to function
on minimal days.  For you this allows water heating without tapping into the reservs of the
super cap storage system.

The control system I've used is fairly simple. I have an up/down counter that is entered into
the PWM output.  If voltage is above the setpoint the count is increased, below it is decreased.
Of course there is a little deadband to keep it from banging around.  For values weel beyond
the  the count is modified by a much higher number to increase the response time from major
changes in light level.  Pwm count is not allowed to go above 255 or below 0. I use opto
isolators to drive the FET and shift gate levels to 12V.  Optos are slow, in fact turn off
is four times slower than turn on.  It doesn't matter.  490Hz PWM is pretty slow and I don't
experience FET heating.  Drive values below 5 are just set to zero. Above 250 the drive is
just set to fully on, 255. This prevents narrow pulses at either end which mostly result in
FET heating.  Use a high speed driver if you want.  You will likely be shooting yourself in
the foot.  I won't feel sorry for you at all when you have a pack load of problems.  The opto
isolation is nice when dealing with high currents. I have separated the micro from the driver
by 50 feet with no problems.  Don't worry about calculating voltage.  Just set the A/D count
around 500 and adjust the pot for maximum PWM count.  Somewhere I think I have a standalone
version of the software.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #8 on: March 03, 2016, 10:00:46 PM »
When I get an hour or two to look into it, I am going to look up the band gap parameters and change out the capacitor.  If I have to keep the voltage divider output under 2.56 V I will have to change resistor values, but that is easy to do.  I will probably have to adjust the program a bit to get reasonable resolution with the smaller voltage range, but it is definitely worth giving a try to see if it settles down my voltage measurements.  I think I will play with a second Arduino and once I figure it out, make the changes to the load controller, I've just left it set up as it is, it switches on the lights and heater for now, as long as it's cold out  I can get some benefit from it even now.   

I have three C-40's here, so if I can reliably harvest power currently wasted, that would have value.  I will have to review your design further as I am not sure I understand all of it at present, again when I can get some time to digest it I will.  Rich
A Joule saved is a Joule made!

DamonHD

  • Administrator
  • SuperHero Member
  • *****
  • Posts: 3622
  • Country: gb
    • Earth Notes
Re: Arduino inverter load controller
« Reply #9 on: March 04, 2016, 12:53:12 AM »
Note: for the UNO at least the internal reference is 1.2V.

Rgds

Damon

frackers

  • Sr. Member
  • ****
  • Posts: 398
  • Country: nz
  • Is it finished yet?
Re: Arduino inverter load controller
« Reply #10 on: March 04, 2016, 04:22:30 AM »
Note: for the UNO at least the internal reference is 1.2V.


Well spotted - I'm used to using the mega2560 based Arduino mega clones that have both 1.1 and 2.56 references. AFAIK the Uno uses a mega328p which has a 1.1 volt reference available (Table23-3 on page 262 of the manual I have here!)
Robin Down Under (Or Are You Up Over)

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #11 on: March 05, 2016, 07:04:41 AM »
If it was such a great idea, it would be the standard mode.  You risk making the system
non standard for many other sensors that are 5V. The USB cable mod is easy and it also
prevents masking of a power supply issue.  I've had issues where the laptop starts supplying
current surges as more loads are added on. As you jump from program to program and copy
routines to new programs it is good to keep conventions standard.  My philosophy is to
keep everything as it is "right out of the box". I don't change timers or even long variables.

In my refrigerator program I sense temperature as the forward voltage of a diode. Temperature
is tightly controlled with just a couple mv. The onboard 5V regulator works fine for this. A
.1uf cap on the input of the A/D for initial filtering and a running average of multiple
samples gibes rock solid numbers.  Following shows typical code.  32 can be any number you
want to multiply the raw data by.  Don't power anything external with the onboard regulator.


rawdata  = analogRead(0);                 
   
// MULTIPLY A/D VALUE TO OBTAIN BATTERY VOLTAGE
battery  = battery - battery / 32;         
// Sum the readings by subtracting one average reading first   
// It isn't obvious but this routine effectively multiplies the A/D reading
// then a fraction of the total is subtracted
// change this value to match voltage divider & make small adjustments with a pot
battery = battery + rawdata;

This slows down everything and is ideal for monitoring battery voltage.  In other situations
a very fast response is needed and you would use the raw data value. I was controlling three
converters from panel arrays and two PWM heaters.  The digital volt meters were rock solid
but a scope indicated a consistent staircase on the supply.  Control loop issues can get
pretty interesting.  With a spare micro you can shadow a system and compare how a new program
responds. Got a scope?  Wait till you start making hot water.  It is a thrill to see those
KW go in.

Thus is my hot water driver module.  It doesn't take much.  This was made from an old UPS.  Two parallel FET do not get hot.  Everything is mounted with hot melt glue so it better not get hot!
« Last Edit: March 05, 2016, 07:13:58 AM by OperaHouse »

DamonHD

  • Administrator
  • SuperHero Member
  • *****
  • Posts: 3622
  • Country: gb
    • Earth Notes
Re: Arduino inverter load controller
« Reply #12 on: March 05, 2016, 07:17:51 AM »
For temperature I use digital devices such as DB18B20 or TMP112 or SHT21, which then are not sensitive to exact supply voltage, and for the DS18B20 can conveniently run on a cable to wherever stuff needs measuring.

For the DS18B20 in particular with our setup we measure return radiator temperature for ~150 radiators in one case (UK sheltered housing) and district-heating-driven DHW in Denmark in another.  That code is freely available and being extended at this moment to support reading from a string of devices, eg for different heights in a room.

We use the TMP112 or SHT21 on-board to measure air temperature (and relative humidity), again not sensitive to supply voltage.

I like to get this stuff out of the analogue domain as soon as I can for more reliable results.

Rgds

Damon

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #13 on: March 05, 2016, 08:13:48 AM »
I have 20 of those nice stainless 18B20 probes and have had them working in sample programs.  Still haven't managed to replace it in the fridge.  The original idea was the diode method could be used by anyone in the world.  The diode is tried and tested, I'll leave this system for a week at a time and not worry.  What were they thinking when they designed the 18B20 addressing.  I design a system with 10 sensors on a buss.  Customer calls and says sensor 5 got smashed.  You're screwed.  They are morons.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #14 on: May 09, 2016, 04:40:44 AM »
Well I had this rigged up as a temporary set up for a long time as I've been busy with other stuff.  It was rigged to control some lighting based on available energy and to dump to a space heater when the capacitors were full.  Using the Zener to drop the voltage to the buck converter worked for a time.  The other day, I came back to a smell of magic smoke and the dump heater was not turning on. I went and checked and found that the buck converter had blown out again.  Unfortunately this time it must have failed to close to a full short as the regulator on the nano was taken out as well and again the LCD module. 

9739-0

You can see the LM2596 on the buck converter to the right, and the blown voltage regulator on the upside down Arduino Nano to the left

I had obtained some 120V AC to 5V converters for another project and based on the earlier response I took one of these and tested it out.  It works down to 28 or 29 volts as is, and I am thinking I can gain a half a volt or so if I take out the bridge rectifier on board. 

9739-1

to the left is the switching power supply as it comes, I gently lifted a couple of capacitors to expose the bridge rectifier on the one to the right.

We will see how it goes.
A Joule saved is a Joule made!

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #15 on: May 09, 2016, 04:42:13 AM »
whoops forgot to change a one to a two on the second image there.  sorry.
A Joule saved is a Joule made!

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #16 on: May 15, 2016, 06:33:05 PM »
I have managed to get my 3d printer back working and have finished the housing.  Here are a few pictures.



The top and bottom parts of the box, I designed it to snap together without screws.  It took a few hours to print with the settings that I had in place.



Here it is snapped together. I had to lightly sand the areas where it fit together, but it fits together nicely.  I put in screw mounts for the lcd, but made clips to hold the circuit board in place in the bottom.  I am not sure about those clips yet. 



Here it is with the buttons and the LCD in place and snapped together.  I still have to migrate the circuit from the bread board to printed circuit board, so it is not yet fully assembled.  I found that leaving zero tolerance on the openings meant that I had to sand or drill everything a bit to get it all together, but it is tight fitting now. 

A Joule saved is a Joule made!

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #17 on: May 16, 2016, 03:28:34 PM »
I have posted the CAD files (.STL) for the box here:  http://www.thingiverse.com/thing:1565781 should they be of use to anyone.
A Joule saved is a Joule made!

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #18 on: May 17, 2016, 04:11:51 PM »
Thanks guys for the information. I've been following trying to learn about how this is done.

I am planning on putting up solar panels this year and heating water. Going to try what

you guys are doing but will need some HELP.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #19 on: May 18, 2016, 07:57:55 AM »
No problem, just post when you are building it.  There are lots of helpful people on here and with their help I have done things I could not of or would not of otherwise.  I am planning to use this particular controller in part to control a relay to turn on and off water heating in the summer time as a dump to keep my panels producing power when everything else is full.  Have fun, Rich
A Joule saved is a Joule made!

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #20 on: June 10, 2016, 01:48:55 PM »
Put 12 solar panels up (two rows of six) 310 watts per panel 36.4 volt.

How is the best way to wire them?

Using arduino uno for controller to heat water.

Welcome you guidance.

richhagen

  • Hero Member
  • *****
  • Posts: 1504
  • Country: us
Re: Arduino inverter load controller
« Reply #21 on: June 10, 2016, 02:17:41 PM »
Are you running this direct to a water heating element?  If so, the details, specs of the element would be needed.  If your using it as a dump load on a battery system, the specs of that system will be needed. 

If you are heating water directly, the optimum voltage for your element is where you would like to keep the voltage at or near.  You could configure the panels so that the open circuit voltage is a bit above that point, and just charge up a reasonable sized electrolytic capacitor, switching on and off the element based solely upon the voltage of that capacitor.  An Arduino might even be overkill if that is all that you need, however it could be useful for monitoring the voltage and turning the element on and off, monitoring the water temperature to prevent it over heating (make sure you use an appropriately sized tp valve as well in case of failure) You will also likely want to control a disconnect of the solar panels if the water temperature gets too high, or to turn on an alternate dump load.  If using an Arduino, you will need to arrange the low voltage power, perhaps a circuit devised from a switching power supply as I have used, although in your case you would likely need to use it to charge up some rechargeable batteries to keep the Arduino on, or just design your circuit to safely power on and off based on the solar conditions. 
A Joule saved is a Joule made!

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #22 on: June 10, 2016, 04:16:24 PM »
had trouble posting these

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #23 on: June 10, 2016, 06:45:53 PM »
here is a better one

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #24 on: June 10, 2016, 07:21:20 PM »
 Was going to directly heat water will size the elements as required. Can each row of panels be hooked in series?
Clockman talked about  maybe 20% power in poor weather may need a small element also?

Look forward to your replies

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #25 on: June 11, 2016, 10:31:10 AM »
PWM is the way to go.  Wall warts are a convenient way to power the uno if you have buss voltage of at least 50V (36V string).  That inverter you pictured should be a good choice to give you the 12V drive to power the FET also.  It is just not practical to size resistive elements and switch them in and out.  Choose an operating voltage that can best dump your load under ideal conditions.  Figure 80% of the panels wattage.  I actually run my panels power point  a few volts above the actual power point.  That gives me a little more power because my resistance isn't low enough in my heaters.  Capacitor bank isn't bad. 3,000uf should be enough, but you must use multiple caps in parallel if you want long life. For consumer grade capacitors figure no more than 2A for each capacitor.  I pulled about a dozen 330uf 200V from old PC power supplies and that worked fine.  Power point voltage varies with panel temp only so you could use a fixed voltage and change it seasonally.  I suggest you do it that way for your first attempt.  I just drive a fet with an opto and resistor.  Just prevent really short pulses at each end of the PWM duty cycle.   It is a simple up down counter to get duty cycle based on voltage.  It doesn't take much.  View prototype I used for a year.

I used a 36V string to try and keep it legal and I had 9 identical  panels.  This year I will be using a boost inverter on a 24V string and feed that into the 50V bus to capture even more wasted power.
« Last Edit: June 11, 2016, 11:02:41 AM by OperaHouse »

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #26 on: June 11, 2016, 07:16:10 PM »
 Richhagen  OperaHouse   Thank you for the information. The picture is the spec. on the solar panels not inverter.


If I am under standing this correct the panels will be hooked parallel?  Will make seasonal change for power point voltage

The uno is new to me but going to make this work with the help of you guys.

Thanks


OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #27 on: June 12, 2016, 04:50:38 AM »
Some form of series parallel.   I used 36V because it worked for me with high powered 12oV heaters.  I was capable of a little over 600W dump on a 900W array, that is about the most you can see in the summer.  You would want at least a 48V and likely higher if your other controller can take it.

ontfarmer

  • Full Member
  • ***
  • Posts: 129
  • Country: ca
Re: Arduino inverter load controller
« Reply #28 on: June 12, 2016, 06:03:50 PM »
  You would want at least a 48V and likely higher if your other controller can take it.
[/quote]

 Was going to use the uno  is another controller needed?  If three panels are hooked in series and three parallel that would  be 134.7 open volt.  1860 watt @ 80% = 1488 watt maybe a 1500 watt element could try that before hooking up the other panels?

Look forward to your reply

OperaHouse

  • Hero Member
  • *****
  • Posts: 1084
  • Country: us
Re: Arduino inverter load controller
« Reply #29 on: June 13, 2016, 09:04:27 AM »
That comment was for the others who may be following this thread who would be using this as a dump controller for excess power when also using a controller to charge batteries.  That sounds like a good match.