Can't leave things alone!
After the success of my previous controller for a number of people (myself included), I came up against one issue that was just plain annoying me. And that is that using one controller for a cluster or field of arrays just isn't working "right".
Trying to make sure all the actuators track at the same rate under all conditions is almost impossible.
Trying to get all the arrays to start and stop at the same point is fiddly and time consuming.
Trying to get the tracking to follow the sun just so is more complex than just linear moves permit.
So, my latest plans for world domination are semi-autonomous controllers.
Each array has a small controller attached to it.
Each array has a single pair of wires (figure-8 flex will do) to connect them all together.
The bus thus made connects to one "control" unit.
In its simplest form, the control unit periodically wakes up, turns on power to the bus, tells all the arrays where the sun is now, and each arrays own smarts (using an inclinometer) positions itself square on to the sun. The controller then shuts the power off the bus ready for the next move.
The electronics for each tracking array look a little daunting, but they're actually fairly simple.
I've built some prototypes - here's one:
![](http://general.rossw.net/webcontrol/tracker-bus-pcb-incl.jpg)
I'm only working on it in my "spare" time (haha!), but so far I've got the communications from controller to downrange, the communications back to controller, the supplys and all the trigonometry for working out the angles from the 3-axis accelerometer done.
This afternoon I completed testing of code to send a "Tell me where you're pointing" command, and getting back X/Y angles!
Commands defined and partly coded so far are:
* Address an individual controller or the entire farm.
* GoTo position. (Sun angle during the day, or safe parking during high wind, overnight or for cleaning)
* Request current position (x/y angles)
* Request last actuator current
I'm sure there will be more things. I've only used about half the code space so far so plenty of scope yet.
In the pipeline is code to use PWM to maintain the actuator speed regardless of supply voltage, automatic "limit switch" to set maximum and minimum tilt angles, actuator current limits (in the event it jams or get sticky), "ALARM" mode where an array can send back an "I require service" signal.