Download the AVRStudio assembly source for the program: T12astrobe081028A
Download the AVRStudio assembly source for the include file: T12astrobe081028A.hex
Find updates at www.projects.cappels.org
This was designed to flash a pair of LEDs to be mounted on the wing tips of a Parkzone Citabria R/C (remote control) airplane. The unmodified Parkzone Citabria only weights 20 grams (about 0.7 oz), so weight, and therefore the number and size of the electrical components for the flasher are critical.
Another major constraint was the range of power supply voltage and current draw. The battery in the Parkzone Citabria varies from 3.7 to 4.2 volts. which rules out circuits such as the Simplest LED Flasher Circuit, which requires a higher voltage. Current draw also needs to be kept low because the battery is tiny. The CMOS AVR controller handles both of these requirements beautifully.
I used the AVR ATTINY12 controller from Atmel because I have plenty left over from other projects. With some modification to the code, you can use the ATTINY13, which is also available in both 8 pin DIP and surface mount packages, or nearly any AVR or other small CMOS controller. See firmware discussion below.
Here is the pin assignment for the ATTINY12 and ATTINY13.
Pin 1 Battery +
Pin 2 PORTB3 4 Hz, 50 ms positive pulse
Pin 3 PORTB4 10 Hz 50 ms positive pulse (square wave)
Pin 4 Battery –
Pin 5 PORTB0 4 Hz 100 ms positive pulse
Pin 6 PORTB1 2 Hz 50 ms positive pulse
Pin 7 PORTB2 4 Hz 100 ms positive pulse
Pin 8 Battery +
In the photograph above, you can see the flash of a yellow LED inside the right wing tip
of the Parkzone Citabria.
The circuit is simply the micro controller connected to a battery and an appropriate bypass capacitor, and one or more LEDs with series current limiting resistor.
(This project should only be posted on www.cappels.org.) If you see this elsewhere, please email me at the address below.)
You can also invert the pulse. For example, you can invert the 2 Hz 100 ms wide pulse to light the LED for 400 ms by connecting the LED from the positive power supply to the output pin. The circuit below takes advantage of this phenomenon.
n the circuit above, the red and yellow LEDs alternate. I think this will probably pretty good with the 10 Hz 50% duty cycle. The nice thing about wiring this way it is that one LED or the other is on at any given time so the disturbance to the power supply, which might affect the R/C receiver, is minimal.
Since there are several outputs, it is possible wire many LEDs that blink at different rates and durations by connecting the LEDs in different arrangements between outputs and the battery positive terminal, outputs and the battery negative terminal, and between output pins.
For more detail: Remote Controlled (R/C) Airplane LED Flasher using ATTINY12 microcontroller
Remote Controlled (R/C) Airplane LED Flasher using ATTINY12 microcontroller