This curtain controller uses a microcontroller to control the opening of  curtain veils, thus enabling the control of light intensity in the room. It features both automatic mode and manual override mode. In the automatic mode, we can set the preferred intensity level in the room using a pot and the control system will adjust the veils suitably to maintain the user set intensity level always. As the name indicates, in the manual override mode the user is free to choose any opening of the veils.
Circuit Diagram

The working of the circuit is fairly simple. When the mode switch is open, the system is in automatic mode. In this mode, the analog voltage at ADC1 which is set by the pot R3 is compared with the analog voltage output of the LDR-R2 voltage divider.If the output of the LDR is lower than the pot, this means that the light intensity inside the room is less than the value required. So the veil should open up till these two values mathches. Similar is the case when the output of LDR is higher than pot, thus causing the veil to close till the equilibrium reaches.
When the mode switch is in closed position the system is in manual override. Now the control algorithm is disabled and the user can set the veil to any position of his/her choice.
All the codes and schematics are hosted in github
Here are a few pictures of my system, just after assembling on a vero-board.

The complete system