In this project we make a pulsating LED by adjusting the brightness. The LED pulsates on and off. The brightness changes by PWM. The PWM is a made by the software instead of hardware. The circuit is simply a LED connected to pin0 of PORTB and ground via a current limiting resistor.
Because it is a software PWM, the LED can be connected to any pin. The circuit can be build with the ATMega328 board and a breadboard. The ATMega328 board can be purchased at www.bizztronix.eu. A hyperflux LED is used, this LED draws 20mA current and is very bright.
Get a piece of paper of about A6 size (10cm by 15cm), roll it into a cylinder, then glue the edges together so it remains that way. Then place the cylinder over the top of the LED. This will diffuse the light from the LED.
The code is simple. It is made with WINAvr C-compiler.
// program name: PWM LED
void abc(unsigned char a,unsigned char status)
DDRB = 0xFF;