detect the relative angle of the arduino compare to an object

Hi, the project which I am doing is about making a 2 axis mount for a mirror in a solar thermal power system.

I can now work out the sun position from an algorithm and can keep tracking the position of it. Now, consider only the horizontal plane, the mirror (mount) needed to be tilted to an angle that allows sunlight to be redirected to the tower (object).

Before making this calculation, the problem is I couldn't find a way that keep tracking the angle which the tilted mirror making with the tower.

Basically my question are, can I keep track of an object using an arduino?
2. Is there anything that can stick on the tower that the arduino can know which direct the tower is at now?

I only need the angle, and distance is not important.

Thank you very much!!!

The tower is moving relative to the mirror mount?!?

The tower isn’t moving.

Basically I am just constructing one of the mirrors in the image and the tower is …the tower.


In order to track the sun position, you must know the position and orientation of the mirror. How do you do that now?

All you should need to do is add the known tower position and do the math required to orient the mirror accordingly.

If I understand you correctly, you need the current angular position of your mirror?
There are servo potentiometers which can do several rotations. Attach the poti to the motor, the gear, or the axle.
Apply a reference voltage to the 2 ends of the poti, and the voltage on the middle tap will give you the current angle.

Maybe also an absolute rotary encoder will work.

They tend to be a bit more expensive.


In order to track the sun position, you must know the position and orientation of the mirror. How do you do that now?

All you should need to do is add the known tower position and do the math required to orient the mirror accordingly.

Yea, it is just simple geometry. But the problem is I am going to make several copies of this model and they are placed at different position around the tower.
And I want the arudino to do everything for me so that the tracking procedure starts once you turn on the unit and no any form of manual calibration needed. Therefore the tower position is an unknown until the arduino figures it out by itself and I know pinpointing the tower (both distance and direction) is a difficult task so I planned to loosen it a bit that the arudino just have to know which direction(making North as the reference) the tower is.

Is that feasible? To get the direction of the tower

Thank you so much!!!

The known geographical location of the tower can be included in the startup procedure. As you point out, any other approach would be very difficult, so why bother?

It is easy to calculate the bearing angle from two sets of coordinates.

Use compass chip for tower direction.
This one can provide that function:

“The HMC5883L includes our state-of-the-art, high-resolution HMC118X series magneto-resistive sensors plus an ASIC containing amplification, automatic degaussing strap drivers, offset cancellation, and a 12-bit ADC that enables 1° to 2° compass heading accuracy.”

It is certainly possible to detect the position of an object (tower), but no so easy.

You haven't made clear whether this will be a "real" thermal power plant or only a demonstration/miniature model.
If it is a real power plant, then the mirrors will be mounted at one place and never move. It seems an easy task to tell the arduino once where the tower is, by entering one angle. (or manually calibrating it, as you call it).

Even if it is a model for school, exhibitions etc., where the mirrors are in a different place every thime, the effort of entering an angle is not so big, depending on how many mirrors you have. Or you mark every mirror beforehand, at which angle is is supposed to go.

Maybe the problem can be solved more easily by providing a quick way to enter the angle. A simple potentiometer with an appropriate scale will do the trick. you can even position the potentiometer vertically, so that the arrow on the knob of the potentiometer points towards the tower.

If you insist on determining the angle "automatically", then the big question is - how precise do you want it, and how much money do you want to spend?
Maybe use laser pointers, and detect the light, or the reflection?


If you attach a sighting tube or scope to the mirror you can use pots to steer the mirror until it points at the top of the tower. You can then store the values in EEPROM. The pots can be connected temporarily for setup so you need only one set of pots for all of the mirrors. Do you have a plan for orienting the mounts so the Arduino knows where true north and 0° elevation are?

Is each Arduino going to have its own precision time source (RTC or GPS) or will they be networked together somehow to get to a common time source like a Network Time Protocol server?