The Arduino Sun Tracking / Heliostat program has now been updated to Version 0.9.7.b
You can download it from the first post on this thread.
There have been several improvements in this version.
They are as follows:
1. It is now possible to mix and match gear reduction with linear actuators. Previously, it was only possible to have either only linear actuators or only a gear reduction system for the altitude and azimuth motion. Now you can also have a linear actuator on the altitude and a gear reduction system on the azimuth or a gear reduction system on the altitude and a linear actuator on the azimuth. Check out the readme file in the download for more info.
2. Code for controlling two shift registers was added to the program. Wiring up the shift registers will give the Arduino 16 more outputs. These outputs are used to turn additional machines on and off so that you can control multiple machines with just one set of driver boards. (Note: I’m still figuring out what the best way is to do the electronics for this, but the code should be good to go.)
3. When using manual control for heliostat targets, the input is now automatically saved to the Arduino’s EEPROM. This means that the heliostat will continue to reflect at the selected target after manual mode is deactivated, or even if the Arduino is reset or the program is re-uploaded.
Note that the target values programmed for the heliostat(s) are not saved to EEPROM until after you switch the manual control switch off.
One more thing to mention regarding manual control is that machine #0 is now the first machine, #1 is the second, #2 is the third, etc. So, you are counting from zero now. This was done to prevent confusion when (if) the time comes to hard code the target values into the program.
4. A heliostat to sun tracker switch was added to the program which will make a heliostat instead act as a sun tracker. When aligning my heliostat, I find it easiest to make it track the sun and then use a “shadow stick” to determine how I must adjust the heliostat to make it point directly at the sun. This stick is set up so that it is perpendicular to the mirror, which means that it won’t cast a shadow when the heliostat is properly oriented.
The addition of the switch means that you don’t have to re-upload the program every time you want to change a heliostat to a sun tracker.
5. The code for setting the time on the RTC has been moved out of void setup() to just underneath of where the settings for the machine(s) are programmed.
6. When viewing the Serial Monitor, you will now see both local time (ignoring daylight saving time) and Greenwich Mean Time displayed. If the print out of GMT is different than actual GMT (something which you can find through a web search) then odds are that you probably have your RTC set to the wrong time.
Note: Make sure that you are viewing GMT as 24hr, not AM PM.
7. A significant bug was fixed regarding the use of linear actuators. It was accidentally introduced in vesion. 0.9.7 and should be fixed now in this version, 0.9.7.b.
8. A few other miscellaneous things to mention are:
Watch out for pin reassignments. I have been rearranging the Arduino’s wiring in my own circuit, so you may need to change the pin assignments back to what they were before if you already have your circuit wired up.
I’ve also gone through the code and tidied things up quite a bit. I also tried to make things easier to understand. Watch out when adding any of your own code from previous version because there has been some variable renaming.
On another, random note, I changed the heliostat alt and az calculations so that the positive x-axis is now considered south, and the positive y-axis is now considered west. It doesn’t change the final output any, it just makes more sense to me to do it that way.
Finally, note that this version of the program is only compatible with Arduino IDE 1.0. Don’t try to use an earlier IDE, and don’t try to use a newer one. Arduino IDE 1.0 can still be downloaded from the Arduino website, so you are not out of luck if you don’t have it.
As always, keep in mind that these features are still being tested, so let me now if you notice anything that doesn’t seem quite right.