Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 18:44 28 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Electronics : Controlling a GTI into the ozinverter

     Page 4 of 6    
Author Message
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 12:47am 25 Jul 2017
Copy link to clipboard 
Print this post

Ok it has had a few days operating, and I have seen no bad behavior.... so I think I'm done with the programming for the moment.

Here it is for those that want to use it as a basis to start their own journey into nano land....

It is simple as it is straight forward with no fancy computing skills.... as I don;t have any, even the averaging is Gomer Pyle simple... no array's in sight..

Anyway comments welcome, and better versions welcome too.
======================================================================================
/*program to use for driving a 3 stage charging device via pwm.
The program will use the floatVolts,bulkCharge and absorbCharge values to control the set points.

pin3analog will be the voltage sense from a 0-5v input from a voltage divider for measuring the
voltage from the battery. Standard 1602 LCD is assumed.

Stay in bulk until 59v, then run absorb for a few hours, and then float at 57 for the rest of the day.... if we fall to far ( eg 50v), then restart the whole process

The time is in the long timedOut constant. If the battery voltage drops to less than startAllOverAgain ( nominal 860 for about 50volts ) then it reverts to bulk
charge again, ready for the next day etc.

Voltage read is the " lcd.print (val/16.99);" line, the 16.99 can be changed to calibrate the voltage to match the real world.
output is from pin6. It can drive a opto or totem pole driver for the fet.
Also is simple 5 stage averaging.

It was developed for the accompanying circuit board. It can be used for HV GTI contoller or LV array to battery use.
A jumper needs to be used for GTI use... this will common the fet source to the battery neg.
For the 48v array, the pos is common, and this jumper is not used...as to keep isolation between array neg and battery neg.
Fet drain goes to the batt neg in the LV, and goes to the GTIneg in the GTI setup.
........oztules
*/





// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins


LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//define lcd pins 12,ll control 10-7 data



int R1=0;
int R2=0; // these R ints are saimply for reading multiple times for averaging
int R3=0; // this shows a fear of arrays and for routines
int R4=0;
int R5=0;
int realValue=0;
int inputPin=3;


long fullTime=0; // timer for float stage #2
long bulkTime=0; //timer for stage 1 bulk
int ledPin = 6; // fet gate connected to this pin via totem or similar driver digital pin 6
int stage1pin =2;
int stage2pin =3; // led pin outputs for visual display from distance
int stage3pin =4;
int analogPin = 3; // divided voltage from battery or transformer if thats your go;
int val = 0; // value of voltage query
int count=0; // count for display timing.... stop screen jitter
int pulseVal = 0; // initilise the pulse width to zero of 255.... won't help really as the thing will run for three minutes before kick off
long floaTime=0; // initialise the time to zero for the absorb
int floatVolts = 970; // compared to the figure of the bulk and absorb...
int bulkCharge = 1004; // figured that half way ( 1000 ) would do as the set point for absorb voltage
int absorbCharge =1004; // voltage equivelent for the absorb voltage.... same as bulk.... funny about that.
int startAllOverAgain = 850; // probably in the 49v range
long timedOut = 54000; // time delay for absorb and step rate will change this...54000=2hrs.. sort of...
int increment = 10; // how much to change each pulse width for voltage control definition
int weAreHereNow=0; // initialize the start stage as zero

void setup() // this is where the story starts...
{
lcd.begin(16, 2);
pinMode(ledPin, OUTPUT); // sets the pin 6 as an output for the fet drive
pinMode(stage1pin, OUTPUT);
pinMode(stage2pin, OUTPUT); // set led pins as outputs
pinMode(stage3pin, OUTPUT);
Serial.begin(9600);
}
void loop() // and this is where the story really starts
{
Serial.print("pulseVal =" ); // This display on the laptop tells us a bit about what it sees so as to calibrate
Serial.print(pulseVal); // what the pulse value will mean to other parameters
Serial.print(" real value ="); //show and tell time is another word for this routine
Serial.print(realValue); // shows the averaged value
Serial.print(" val value ="); //show and tell time is another word for this routine
Serial.print(val); // shows the averaged value
//example of line ....pulseVal =240 read value =413 bulktime value =0 absorb time value =0 float time value =0 weAreHereNow =0
// pulseVal=pwm pulse output
// read value is the actual value the nano sees on pin 3... so we can equate all things to this, ie voltage.. then calculate puse width etc
// the rest are values of current timers in use at the time.



Serial.print(" bulktime value =");
Serial.print(bulkTime);
Serial.print(" absorb time value ="); //three timers
Serial.print(floaTime);
Serial.print(" float time value =");
Serial.print(fullTime);



Serial.print(" weAreHereNow =" ); // stage number currently displaying
Serial.println (weAreHereNow);
delay(10); // use this to speed things up and down.... responsible for the timing number calculation
//===========show the current volts with slow up routine called count.==========

if (count==10) // every 10 counts, we will display only to keep screen stable
{

if (val<startAllOverAgain )
{
lcd.setCursor(0,1);
lcd.print("Pre-bulk volts");
}


if (weAreHereNow==0 && val>startAllOverAgain) // if stage 1 then we do this routine
{
lcd.setCursor(0,1);
lcd.print("Bulk = ");
lcd.setCursor (8,1);
lcd.print(bulkTime/450); // makes it about a minute update at 450.. ish
lcd.print(" min");
}

if (weAreHereNow==1) // if stage 2 then we do this screen routine

{
lcd.setCursor(0,1);
lcd.print("Absorb ");
lcd.setCursor (8,1);
lcd.print(floaTime/450); // makes it about a minute update at 450.. ish
lcd.print(" min ");

}

if (weAreHereNow==2)
{
lcd.setCursor(0,1);
lcd.print("Float ");
lcd.setCursor (8,1);
lcd.print(fullTime/450); // makes it about a minute update at 450.. ish
lcd.print(" min ");

}

lcd.setCursor(0, 0);
lcd.print("Volts = "); // print the volts out
lcd.setCursor (8,0); // the if count is to slow the screen update to the value of if count=x
lcd.print (val/16.99);// voltage correction.... change the number
count=0;
}

count=(count+1); // increment the counter for printing to stop wobble
//====================this section just for song and dance and twinkly lights

if (weAreHereNow==0)
{
digitalWrite (stage1pin,1); //digital pin 8 will light up for the bulk charge bit
}
else
{
digitalWrite (stage1pin,0);
}

if (weAreHereNow==1) // this lights up digital pin 9 to signal stage 2 the absorb cycle
{
digitalWrite (stage2pin,1); // this is all to light up leds to see where we are in the cycle
}
else
{
digitalWrite (stage2pin,0);
}


if (weAreHereNow==2)
{
digitalWrite (stage3pin,1); //this lights up stage 3.. the float cycle pin 10
}
else
{
digitalWrite (stage3pin,0); // remember if we drop below about 48v it will reset everything, the leds will show this too.
}
//======================================================= enough of the bullsh*t..... on with the show================================================
R1= analogRead(inputPin); // we go and read the input pin 5 times in rapid succession
R2= analogRead(inputPin);
R3= analogRead(inputPin); // poor mans averaging routine. probably as fast or more than normal ones.
R4= analogRead(inputPin); // having read the same pin 5 times, we can go and average the result... my sort of simple averaging.
R5= analogRead(inputPin);

realValue=(R1+R2+R3+R4+R5)/5; // we do the average here


val = realValue; // it all hinges on this value. 5 readings averaged

if (val>=bulkCharge && weAreHereNow==0) // if we achieve 59v (bulk chg) AND we were in stage zero then change weAreHereNow to 1 as a flag ie absorb
{
weAreHereNow=1; // weAreHereNow=1 is absorb status
}

//=============bulk routine==============


if ( weAreHereNow==0) // if in stage 1 then check voltage against bulk charge constant ... can be set in definitions
{
bulkTime=bulkTime+1;
if (val< bulkCharge)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>bulkCharge)
{
pulseVal=pulseVal-increment; // if over the preset bulk voltage ... then back the pwm off a bit
}

if ( pulseVal>=255)
{
pulseVal=255; // if pulse width calculation exceeds 255 then just make it 255
}
if ( pulseVal<=0)
{
pulseVal=0; //if pulse width calulation is below zero, then make it zero instead
}

}

//==========absord routine==============

if ( weAreHereNow==1) // if we are in absorb then do this
{

{
floaTime=floaTime+1; // check if time elapsed in absorb is up or not (timedOut constant)
}

if (floaTime>=timedOut) // once we reach timedOut, we have finished our absorb sequence, change status flag weAreHereNow to 2, and change the voltage now to float value
{
weAreHereNow=2;
}

if (val< absorbCharge)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>absorbCharge)
{
pulseVal=pulseVal-increment;
}

if ( pulseVal>=255)
{
pulseVal=255; // seen all this before
}
if ( pulseVal<=0)
{
pulseVal=0;
}
}
//=========float routine=======


if ( weAreHereNow==2) // are we in float charge stage
{

fullTime=fullTime+1; // increment float timer


if (val< floatVolts)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>floatVolts)
{
pulseVal=pulseVal-increment; // keeping charge in the float band....floatVolts is the constant we use
}

if ( pulseVal>=255)
{
pulseVal=255;
}
if ( pulseVal<=0)
{
pulseVal=0;
}

}
//==============================write the pulse to the fet======================
analogWrite (ledPin,pulseVal); // actually write the data to the fet via pin 6 ...

//=============================================
if (val<startAllOverAgain) // panic/reset routine when voltage drops back to 48 volts or so.
{
weAreHereNow=0;
bulkCharge=absorbCharge;
floaTime=0;
bulkTime=0;
fullTime=0;
}
}
//thats all folks

That should be the last from me as a pretend programmer for a good while.
I think it has been fun... ish.


.........oztulesEdited by oztules 2017-07-26
Village idiot...or... just another hack out of his depth
 
Mulver
Senior Member

Joined: 27/02/2017
Location: Australia
Posts: 160
Posted: 12:50am 25 Jul 2017
Copy link to clipboard 
Print this post

  oztules said  

That should be the last from me as a pretend programmer for a good while.
I think it has been fun... ish.


Don't quit now! Once you start programming i don't think you can EVER leave!
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 12:52am 25 Jul 2017
Copy link to clipboard 
Print this post

Board for above program














............oztules
Edited by oztules 2017-07-26
Village idiot...or... just another hack out of his depth
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 01:16am 25 Jul 2017
Copy link to clipboard 
Print this post

Mulver, for the last few days, the unit has been running as a lv unit, so have not been interfacing with the GTI.

Over the next few days if I can get some time, I will get back to playing with the GTI and see what we can do on the AC side of things.... everything is possible, just a matter of doing all the wrong things first... and then I will have a good handle on it I should think.

I am getting the LV GTI one under control first... which i think it is, as thats what I wanted for me.... but I will try to help the other folks who all seem to want AC control.

There are enough smart folks here to get this thing worked through.
I have not seen it done anywhere else... nor the LV version for that matter.... GTI's are voodoo for most people... me included, but people have not tackled them like we are doing here. We should win.

The problem fo r me with programming is I'm getting old... and I remember less about what I do now, and more form the distant past.... so what I just learnt from the programming goes in one ear and out the other.... the syntax and way of doing stuff I can still remember from 40 years ago from assembly and machine code on the Z80 and 8086... and that makes it hard every time I start to play with arduio... every thing I do results in errors, and the examples they have on the arduino site are .... poor.

So I very reluctantly do programs, as it is such a hassle starting them... once into it, I don't seem to mind, and they can get quite long.

The one I wrote for a salt water osmosis unit is quite complex and very long..... and I would hate to have to work on it to change or modify it...I would have to learn it all over again.



..........oztules
Village idiot...or... just another hack out of his depth
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 01:27am 25 Jul 2017
Copy link to clipboard 
Print this post

Learning new trick is good for you Oz, when you stop learning it is a slippery slope down hill.
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
Mulver
Senior Member

Joined: 27/02/2017
Location: Australia
Posts: 160
Posted: 01:33am 25 Jul 2017
Copy link to clipboard 
Print this post

Do not want to hijack the thread. But did you document your efforts on the osmosis unit? If you did would you mind pointing me to it ? As I would love to read about it!
Cheers Edited by Mulver 2017-07-26
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 02:52am 25 Jul 2017
Copy link to clipboard 
Print this post

Unfortunately that one was proprietary, and it was well documented for the american company I did it for... but not for anyone else. There is a patent in the works somewhere in the system.

My threads always lead all over the place, they are wayward like me.... must annoy the hell out of Gizmo.


..........oztules
Village idiot...or... just another hack out of his depth
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 11:41am 25 Jul 2017
Copy link to clipboard 
Print this post

Excuse my ignorance but what is z18 and the lamp on the left hand side of the board?
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 02:45pm 25 Jul 2017
Copy link to clipboard 
Print this post

18v vener and 1 amp diode.... for GTI use there is a small jumper next to the pins for the fet output.... if only using GTI then just join the tracks there.

......oztules
Village idiot...or... just another hack out of his depth
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 02:56pm 25 Jul 2017
Copy link to clipboard 
Print this post

You may find it better to see it over on another power... it is much bigger and easier to see.

http://www.anotherpower.com/board/index.php?action=dlattach;topic=1270.0;attach=7157;image

.......oztules
Village idiot...or... just another hack out of his depth
 
yahoo2

Guru

Joined: 05/04/2011
Location: Australia
Posts: 1166
Posted: 12:28am 26 Jul 2017
Copy link to clipboard 
Print this post

  Mulver said  
Yahoo What you think of this? (236v just the number you used )

So if we have a nano controlling the ozinverter output voltage (as per oztules comment) dependent on the actual battery voltage. Basically its own charge controller.
Below 236v will allow back charging the lower the voltage the faster to a bottom voltage set point.

We then have a nano in every grid tie moderating the grid tie voltage

Would it then be possible to have "Loads" controlled with the same method as the grid ties but in reverse?
A hot water service is an easy and useful one, a Nano the same setup as the grid tie nano watching the voltage but with the opposite maths at 236v and above it starts winding up pulse width to a solid state relay and below 236v it starts throttling back until it turns off.

Do you think we will end up in a feedback loop in this situation? The goal being to turn other loads on when there is power available without grid wide coms!


Hi Mulver,
there is 3 answers to your questions, I will try not to ramble to much

firstly, driving an AC resistive load at variable power is not that simple, it is going to need a triac circuit or something similar rather than the DC mosfet. There are a couple of of the shelf units from the UK that have just recently come back on the market. Solar Power Diverter I am still thinking as to how these could be adapted to this scenario with oztules controller. I think these things are a lot better than faffing about with DC elements and wiring.

Second, feedback, well the battery charge takes priority. Everything else could be ramped up a little slower. I am still thinking about using a solar panel to estimate the solar potential and measuring the battery current. Where I am there is gobs of sunshine so I would set a limit on the water heater power, drive some small far infrared heaters flat out on a thermostat in the winter and run the aircon in the summer and the electric vehicle would take all of the surplus.

Third, there is another option GO HYBRID

We can run the GTI off grid while the battery is bulk charging, then when the charging amps reduce or the battery voltage hits a certain number activate a transfer switch, isolate the offgrid inverter, bypass the GTI ozcontroller, finish charging the battery with its own smaller bank of panels and run the GTI on the grid for the rest of the day with the solar diverter and collect some feed in tariff as well.

At the moment it would mean setting up a legit ongrid system FIRST to deal with all the red tape then building the off grid section afterwards.

What do you think?
I'm confused, no wait... maybe I'm not...
 
Mulver
Senior Member

Joined: 27/02/2017
Location: Australia
Posts: 160
Posted: 01:44am 26 Jul 2017
Copy link to clipboard 
Print this post

Hey yahoo

Regarding driving an ac load in a variable fashion. I'm thinking pulsing heating elements with solid state relays this is tried and tested everyday in industrial equipment. So Hot water. Under floor heating. Etc. shouldn't be an issue.
Air conditioning can be done with the inverter models. Much more tricky but not impossible I think.

But the point is to keep it simple and a grid wide way to tell things to turn on/off/up or down. With little to no communication required. Which I like the idea of and I bet clockman would like this considering the large litttle grid he's got going on!!

Got too much power. Grid ties wind back. Or switch to external export. Or heaters turn on.
Got too little power. Grid ties wind up. Pool heater/ floor heating/ ac turns off. (I want a pool one day )

I'm personally also trying to avoid proprietary equipment ! So oztules grid tie charge controller is such awesome news. Only thing left is to make an ozinverter into a grid tie inverter
 
yahoo2

Guru

Joined: 05/04/2011
Location: Australia
Posts: 1166
Posted: 03:14am 26 Jul 2017
Copy link to clipboard 
Print this post

  Mulver said  
Got too little power. Grid ties wind up. Pool heater/ floor heating/ ac turns off. (I want a pool one day


I have done quite a bit of research in this area and I can say that the energy savings that can be had for home heating, cooling, pumps and swimming pools with a bit of lateral thinking and attention to detail are truly staggering.

I have been meaning to do some topics on it for a couple of years now but it is so hard to write in an interesting way,
..........plus I keep forgetting to take photos when we are testing and fitting this gear up.
I'm confused, no wait... maybe I'm not...
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 11:32am 26 Jul 2017
Copy link to clipboard 
Print this post

With the colder weather we are having ATM I have started using the AC for heating. The amount of heat versus energy input is impressive, we are fortunate that a typical winters day here is clear blue skies.

Also until I get my GTI regulated I have had to cover my solar hot water panels so the hot water system uses up some of the excess power. Also on sunny days we are now using the clothes dryer as well, my wife likes it as it saves ironing as well. If the HWS was the heat pump type it's power consumption would be about 1/3 I believe.
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
Mulver
Senior Member

Joined: 27/02/2017
Location: Australia
Posts: 160
Posted: 03:24pm 26 Jul 2017
Copy link to clipboard 
Print this post

  Madness said   If the HWS was the heat pump type it's power consumption would be about 1/3 I believe.


I was planning on buying one of these Heat Pump HWS but after all my reading here decided that a few extra solar panels and a standard HWS will be more reliable and easier to fix in the long run.

  yahoo2 said   I have been meaning to do some topics on it for a couple of years now but it is so hard to write in an interesting way,
this gear up.


Please do Yahoo I'll read it them!
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 03:40pm 26 Jul 2017
Copy link to clipboard 
Print this post

The heat pump HWS would be an advantage when you have days of really cloudy weather. But you are right they do go wrong, I will be building soon and will be using a wood heater as a backup to heat water.
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 11:29pm 07 Sep 2017
Copy link to clipboard 
Print this post

Looks like I am on a winner with the GTI regulation, here is how it looks.




I used a part I cut off one of my old inverter PCB's to mount the 4 20N60S5 MOSFETs they are rated for 600V and 20A. I have put a 10K gate to source resistors on each one and 5r6 gate resistors. Also I have added 103 3KV caps and 3W r47 to act as snubbers.

I don't know if it was necessary but I separated the drains on the PCB by cutting the copper down the middle of them.

It has been running the last few days without a hiccup, I have tweaked the settings a little to get it to match my DC charge controllers. The GTI I am using is a 5KW Zever Solar HF type, it errored out initially using the on board power supply, so I have added the isolated supply on the top left of the photo above. This is the IPSU it is modified by adding a 6k8 resistor across r6, this increases the output voltage to 16V. So the MOSFETs are completely isolated thanks to the IPSU and A3120 Isolated Gate Drive IC.

I am now working on a new version with everything on one PCB and will control a GTI and dc to dc panels.




I have made 2 changes to Oztules code also, these are to stop the GTI shutting down if another source is charging and the absorb timer will stop ticking down if the voltage is reduced by cloud cover or loads on the system.

//=============bulk routine==============


if ( weAreHereNow==0) // if in stage 1 then check voltage against bulk charge constant ... can be set in definitions
{
bulkTime=bulkTime+1;
if (val< bulkCharge)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>bulkCharge)
{
pulseVal=pulseVal-increment; // if over the preset bulh voltage ... then back the pwm off a bit
}

if ( pulseVal>=255)
{
pulseVal=255; // if pulse width calculation exceeds 255 then just make it 255
}
if ( pulseVal<=25)
{
pulseVal=25; //if pulse width calulation is below zero, then make it zero instead
}

}

//==========absord routine==============

if (( weAreHereNow==1 ) && (val>(absorbCharge-25))) // if we are in absorb then do this
{

{
floaTime=floaTime+1; // check if time elapsed in absorb is up or not (timedOut constant)
}

if (floaTime>=timedOut) // once we reach timedOut, we have finished our absorb sequence, change status flag weAreHereNow to 2, and change the voltage now to float value
{
weAreHereNow=2;
}

if (val< absorbCharge)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>absorbCharge)
{
pulseVal=pulseVal-increment;
}

if ( pulseVal>=255)
{
pulseVal=255; // seen all this before
}
if ( pulseVal<=25)
{
pulseVal=25;
}
}
//=========float routine=======


if ( weAreHereNow==2) // are we in float charge stage
{

fullTime=fullTime+1; // increment float timer


if (val< floatVolts)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}


if (val>floatVolts)
{
pulseVal=pulseVal-increment; // keeping charge in the float band....floatVolts is the constant we use
}

if ( pulseVal>=255)
{
pulseVal=255;
}
if ( pulseVal<=25)
{
pulseVal=25;
}

Edited by Madness 2017-09-09
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
oztules

Guru

Joined: 26/07/2007
Location: Australia
Posts: 1686
Posted: 02:45pm 08 Sep 2017
Copy link to clipboard 
Print this post

Good work there Mad, you have done what no-one else seems to have achieved, and it will be game changing useful too.

Transmission losses are a thing of the past now, hig power cheap mppt units are available to use, and you have total control over the charging algorithms..

I don;t think it gets better than that.... other than communicating over the 50hz connection to control remote units..... clockman would like that I expect.


Well done Mad.

I have incorporated your code change too.


.......oztules
Village idiot...or... just another hack out of his depth
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 03:40pm 08 Sep 2017
Copy link to clipboard 
Print this post

Hi Oz,

Just about to get some of the boards ordered as shown above, I will also be doing a slave board to go with it. I am keeping it separate as keeping the board size 100 X 100 has a big effect on the price. The slave board will have another 2 gate driver chips and 2 banks of 6 MOSFETs, these will be able to be configured for either LV DC or GTI.

I will be doing a complete rewrite of the code which will include temperature compensation, control of SSR's etc, one thing I want to include is controlling the AC in my equipment and battery room.

While doing this I will work on control over power lines so the PWM of the master controller can be sent to slave units. I have changed to using a Arduino Uno which is much easier to add shields etc to. There is a Mamba shield that would do the job but not sure it is still available. What sort distances would be required? Wireless may be another option.Edited by Madness 2017-09-10
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
Madness

Guru

Joined: 08/10/2011
Location: Australia
Posts: 2498
Posted: 05:06pm 08 Sep 2017
Copy link to clipboard 
Print this post

Just been looking at the best way to establish communication between multiple charge controllers. It seems power line communication is not readily available for the Arduino. However, Ethernet is cheap and readily available, this would then allow connection by cable, wireless or if powerline is the best option use powerline ethernet adaptors.

Ethernet Shields are around $6.50 AUD just slightly more than Arduino itself.
There are only 10 types of people in the world: those who understand binary, and those who don't.
 
     Page 4 of 6    
Print this page
© JAQ Software 2024