Electronics > Projects, Designs, and Technical Stuff
Traffic light circuit with 556 timer: UPDATE!
(1/1)
phennessey:
Original thread: https://www.eevblog.com/forum/beginners/traffic-light-circuit-with-556-timer/
Well...after much ado, here's my first functioning traffic light circuit! I tried (and failed) to build this circuit with a 556 timer. I was only getting two LEDs to blink. Hopefully, SmokeyTheElectrician can weigh in on this. I think my schematic was wrong, despite being told it was correct. Perhaps someone can take a look at my old schematic?
https://www.eevblog.com/forum/beginners/traffic-light-circuit-with-556-timer/?action=dlattach;attach=895598;image
Since I just wanted to make the damn thing work, I used an Attiny85 for now. Here's the result:
--- Code: ---#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
while(1)
{
DDRB= 0xff; // set all pins to output
PORTB=0b00000001; // set pin 1 high
_delay_ms(3000); // delay 3 seconds
PORTB=0b00000010; // set pin 2 high
_delay_ms(1000); // delay 1 second
PORTB=0b00000100; // set pin 3 high
_delay_ms(3000); // delay 3 seconds
}
}
--- End code ---
Wimberleytech:
Excellent!
ebastler:
:-+
And you have some pins to spare, so you could make a traffic light for both directions of an intersection. (With proper delays/safety times between the green phases for either side.) Or use one pin as an analog input to adjust the cycle time. Or cater to European tastes and implement a "red, red/yellow, green, yellow, ..." cycle. Or use two pins as a sensor input and a trigger output for a red-light camera. ;)
Microcontrollers are neat; loads of flexiblity in small, simple and cheap packages. :)
Navigation
[0] Message Index
Go to full version