Arduino Solar Day Night Controller


This is an Arduino controlled light sensing switching unit. Its main use is to control solar lights to turn on when it is dark outside, but it can work in many more applications. This guide will walk you through every aspect of the building process. Prior knowledge of the Arduino unit is not necessary since the code and schematic have been supplied for you. This project would be fairly complex to build without an Arduino; it is a good example of how a microcontroller can make a circuit far less complex, with less hardware trial and error.

Input Voltage Range: 7 to 18 Volts DC
Switching Power: 3 Amps*
Light Range: Variable, Very Bright to Dark
*Adding a Relay can greatly increase the switching amperage


This project has three main sections, the Arduino unit, the software, and the circuit.

The Circuit is composed of two sections, the light sensing and the power switching. The light sensing part consists of a photo-resistor R4, connected like a voltage divider to R2. Since the resistance of the photo-resistor changes depending on the amount of light that is shining on it, the voltage divider’s voltage ratio changes depending on the amount of light present. The voltage going through this part of the circuit is 5 volts dc, supplied from the Arduino board to J4 of the circuit. So the voltage divider is dividing the voltage between the maximum 5 volts, to the minimum 0 volts. The Arduino senses this voltage on its "Analog Pin 0" that connects to J3 on the circuit. This is called "analogRead," it divides the 0 to 5 volts by 1024 (10 bits, or 2^10) so it can sense a change in voltage as small as .0048 of a volt.

The power switching section of the circuit is quite simple; it uses a NPN switching transistor Q1, that is digitally controlled by the Arduino board from ’Digital Pin 3’ connected to the circuit through J2. It switches the negative leg of the supply voltage from J1. J5 is where a low voltage light or anything you want turned on and off is connected.

There is no R3 on the schematic, my apology I labeled the photo-resistor R4 on accident, sorry. I included two different PCB bottom copper designs, one has a ground plane and the other does not. Use whichever you prefer. 

I won’t go into the parts of the Arduino, mainly because it is already a well-documented unit. The picture at the top should make it fairly obvious to see how it is connected. The main thing to look out for is the PWR SEL jumper between the USB and the PWR connector, needs to be switched to EXT, if it is not powered from the USB. If there is something you don’t understand, you will get much more help from their homepage:

The software is in a zipped folder called ’’ and it works like this:

Parts List






1k Ohm 1/8 Watt Resistor



10k Ohm 1/8 Watt Resistor



Photo-Resistors (276-1657)



TIP122 Darlington Transistor



TO-220 Heat Sink





Helpful Links


Sorry, comments are closed!