Tuesday, June 15, 2010

Portable Solar PV Panel tracker

I am working on a small PV sun tracker. The idea is to be able to set it down on the ground in an open area and turn it on. The 20W panel would then automatically track the sun without further user intervention each day. The unit will charge a 14AH AGM battery which powers a 400W power inverter. This power inverter could be used for LED or compact fluorescent lighting, charging cell phones, or other power needs.


Componenets required to make this system work will consist of software to drive the motors and logic to position the panel, gear motors to control the altitude and azimuth angles of the panel, a GPS module to provide information required to track the sun, a compass module to determine horizontal (azimuth) positioning, an accelerometer to determine vertical (altitude) positioning and two motor limit switches.


I have purchased:


1 - 12V, 20W monochrystalline solar panel
1 - 15A charge controller (possiby to be upgraded later to MPPT)
1 - 14AH AGM rated 6-8 yrs sealed battery
1 - Parallax compass module (Honeywell HMC6352)
1 - Parallax 28146 GPS module
1 - Dimension Engineering DE-ACCM2G2 2-axis accelerometer
1 - Baby Orangutan B robot controller (Atmega 328P) / programmer combo
1 - small Radio Shack breadboard
1 - 400W power inverter




I also purchased additional hardware to mount the components such as sheet aluminum, hinges, limit switchs, cabinet hardware and 6" lazy susan turntable for azimuth panning.


Additional software for programming the controller is available free from the Pololu web site


I have completed initial coding for all functions and and just completed calibration of the Honeywell complass module. I am waiting on the a replacement gearmotor which has metal gears as I stripped the plastic geared gearmotor. To summarize the main functions of the controlling software:


main() -- initialization and control logic


get_sun_pos() -- returns the sun's altitude and azimuth (s_alt, s_az)


get_panel_altitude() -- returns current altitude/accelerometer-reading (p_alt)


get_panel_azimuth() -- returns the solar panel's current azimuth (p_az)


...sounds simple enogh, but the coding of these functions took me several months to work out. Luckily, you will not have so much work to do if you choose to do a similar project if these fit your needs.


Next up -- explanations of the library functions I developed for this project.


END project introduction

< Contents     Hardware >

1 comment: