Automatic control of street lights

Automatic control of street lights is deigned to turn on and turn of street lights automatically. This project check the amount of light. If light is 80 percent available, it automatically turn off street lights. But if amount of light is less than 80 percent, this project will automatically turn on street lights. one can also adjust it according to its requirement. Light sensor is used to detect intensity of light. PIC161F877A microcontroller is used interfaced with light sensor to sense amount of light available. Control signal is generated with the help of pic16f877a microcontroller after analyzing amount of light. Control signal generated by pic microcontroller is used to turn on transistor which in turn energize the relay coil and relay turn on the street light. I have used only one lamp in this project. Because this is just for demonstration purpose. To use it practically, you can use as many street lights as many you want to control through this automatic control of street lights.

This project have many applications. For example, you are too much lazy to turn on or turn off your street light manually and you forget to turn it on or off daily. So you easily use this project to save your electricity and in return your money. In countries where load shedding is a big issue due to short fall in electricity and less in resources to generate electricity. In these countries, load shedding issue can be resolved too some extent by saving as much as you can. By using automatic control of street lights, we can save maximum amount of energy which is useful for your nation and also beneficial for you. Because it will reduce you electricity bill and in return save your money.

Circuit description :

 Followings are the main components of automatic control of street lights :

Light sensor :

Light sensor is used to sense amount of light. There are many light sensors available in market but Light dependent resistor (LDR) is used as a light sensor. Because it is cheap in price, easily available in market and can be easily interfaced with microcontroller to sense intensity of light. LDR have property to change its resistance according to intensity of light. If light is high, LDR will have low resistance and if light is low, LDR will have high resistance. So microcontroller can easily read this resistance in the form of voltage and which can be back converted into proportional value of light by using a formula available in data sheet.I recommend you to have look in data sheet of LDR.

Relay interfacing with microcontroller :

As I have already mentioned above that microcontroller is used to analyze intensity of light and to generate control signal which in turn on or off transistor which in turn energize relay to turn street light on or off. NPN transistor is used as a switch and resistor at the base of transistor is used as current limiting resistor. Diode is used to avoid back emf voltage which may produce sparking across relay.

Circuit diagram :

circuit diagram of automatic control of street lights is shown below :

circuit diagram of automatic control of street lights
circuit diagram of automatic control of street lights


To check working of this project and to understand  code watch following video:

Automatic control of street lights using microcontroller by bilalmalikuet


Code :

Code for this project is written in Mikro C and 8Mhz crystal is used in this project.

//**************[email protected]*******************
int light;
void read_ldr()
unsigned int adc_value=0;
light = 100 – adc_value/10.24;
if(light>=80) // SWITCH of the light when light is 80 percent


void main()

while (1)

click here to buy proteus simulation

if you feel any issue after reading this article, comment on this post. Kindly don’t forget to share this article with your friends. thanks 🙂

70 thoughts on “Automatic control of street lights”

  1. The code is not working .. its giving error in line “light = 100 – adc_value/10.24;”

    these are the errors ..

    6 402 ; expected, but ‘–’ found street light.c
    6 424 ‘}’ expected ‘;’ found street light.c
    11 371 Specifier needed street light.c
    11 396 Invalid declarator expected'(‘ or identifier street light.c
    14 371 Specifier needed street light.c
    14 396 Invalid declarator expected'(‘ or identifier street light.c
    16 393 ” Identifier redefined street light.c
    16 300 Syntax Error: ‘(‘ expected, but ‘{‘ found street light.c
    25 1503 Result is not defined in function: ” street light.c
    0 102 Finished (with errors): 04 Jun 2015, 20:08:57 street light.mcppi

  2. The issue is resolved .. thnx

    one more thing to ask, it might look stupid but what is that component attached with resistor R3 .. i m not talking abt LDR the upper one ..

    thnx in advance ….

  3. actually i want it to work with the IR sensors so as to conserve more energy so please provide help for this
    1. how to connect IR sensor with this module.
    2. n wat will b the changes in code.

  4. Can you please answer me a of a district in which LDR is used for save power.. It’s need because of my school project.. Some may question it.. please be fast to me..

    • hi… Present I’m trying to get output in Proteus but it’s not coming… N may I know which part is troubling you?

  5. can you send me , the circuit diagram of “automatic street light based on vehicle moment” and its source code , im using microprocessor 8051…..!!!!

  6. Can u plz send me the brief description of the working principle of the circuit ???????? and why 8Mhz crystal oscillator is used here?????????? plzz help me…its urgent

  7. Sir the above ckt which you’ve given for ldr, doesn’t contain lcd for displaying output. so what if we want to put lcd there?? should we need right a program for lcd interfacing too???.
    please suggest. it would be better if you give a program for this.

  8. Will you please send me the code for ” auto intensity control of street lights using Atmega8 micro controller and which simulator I have to use?

Leave a Comment