Dual-Axis Solar Tracker

Optimizing energy collection with a smart solar panel (prototype).

Role
Embedded engineer
When
Where
Prépa (TIPE) · Paris
Status
Embedded Cleared

Context: Briefing

This was my TIPE, the research project every student carries over the two years of prépa (the French preparatory classes for engineering schools). The starting idea was simple: a fixed solar panel misses a good part of the energy it could collect, because the sun keeps moving all day long, and I wanted to see how much you actually gain by making the panel follow it.

I built a prototype on an Arduino: a small panel mounted on two servo motors, one per axis, with light sensors around it that compare how much light each side receives. I first drew the wiring in Fritzing, then assembled it and tested it outside, in full sun.

What I did: Objectives cleared

  • A PID control loop in C/C++ running in real time on a microcontroller with very little memory and compute.
  • The light differences between the photoresistors (LDRs) turned into commands for both motors, under tight timing constraints.
  • Noisy readings filtered and gains tuned by hand, without going over the board’s compute budget.

Hardest problem: Boss fight

Noise against responsiveness

Light sensors are noisy, and a loop that reacts to every flicker ends up oscillating around its target without ever settling. I had to filter the readings and tune the PID gains little by little, until I found the right balance between a tracker that stays stable and one that reacts quickly when a cloud goes by.

Results: Rewards

  • +25% energy capture efficiency

Pause