Solar Tracking Controller

Hi,

I’m new here and looking for a solution for controlling four single-axis solar (photovoltaic) panel trackers I plan to construct.

There are plenty of these on the market that use photosensors to aim the panels at the perceived brightest point in the sky.

However from everything I’ve read a better method (due to occasional cloudy skies that make it difficult to discern a single best angle) is to calculate the ideal angle from the date, time, longitude, and latitude, and then set the angle to that value.

With this approach there are some units on the market, but most of what I could find rely on feedback from the motor (actuator) or some other encoder to provide the measured angular position of the array. I did find one unit that uses an inclinometer/compass sensor attached to the back of a panel to determine the actual angular orientation of the array in elevation and azimuth. This seems like an ideal solution, but I’m not getting any response from the manufacturer, and suspect they don’t deal with DIY types. The actuators I plan to use are DC motor driven with limit switches at both ends of travel, but no encoder or other feedback.

Also in my case it is much simpler as I only have one axis per tracker. One unusual facet is that my angle of rotation is tilted up 35 degrees relative to the horizontal, but otherwise the axis runs north-south. So actually, since my latitude is about 35 degrees, the axis is a true polar axis; i.e., it is parallel to the earth’s axis of rotation. I think that should make the angle calculation trivially easy, no? I think it should simply rotate 15 degrees per hour. Of course getting the right starting angle in the morning must be figured out.

I saw SparkFun offers lots of different IMU boards; I believe all this would require is a 3-axis accelerometer. Then an Arduino could be programmed to get the real time of day, get the current angle of rotation of the array, and power the actuator CW or CCW as required until the correct angle is reached. Once every few minutes it could repeat the calculation and movement.

Of course the complexity probably comes in when we want to add some special features. I’d like to be able to override the controller via Ethernet or WiFi and set the tracker angle to a particular angle. It might be nice to include an anemometer wind speed sensor and then “park” the array at a “safe” angle if the wind speed gets too high. I am particularly interested in hail protection, but for now assume that will be done via manual override to a parking position facing away from the prevailing hail direction. Then of course there is the whole topic of error handling and reporting!

To summarize I’m wondering whether anyone has already developed such a device. If not, are there folks who would tackle this job for a fee?

Or maybe I could tackle it, though it’s been a while since I’ve played with microcontrollers and everything has changed. I once learned some C programming and once did some Basic work, and have dabbled in MS Visual Basic. And I used to run a Unix machine, and a couple of RedHat Linux boxes, so I think I could learn my way around the Arduino universe. I would just be very slow and inefficient at it!!

Looking for suggestions…

Pete



With a polar axis mechanism, implementation with a single bidirectional tracking motor should be straightforward.

With an 3 axis accelerometer you can measure panel tilt and roll, as described in the following link, and convert that to azimuth. https://www.dfrobot.com/wiki/index.php/ … lt_Sensing

Using an RTC the sun’s azimuth can be calculated at any time of day, anywhere on the Earth. Arduino code here: http://www.instesre.org/ArduinoUnoSolarCalculations.pdf

Excellent!

Thank you so much for those sources.