Electronic – blink a led 10ms every 1 second

555ledtimer

I am currently looking at generating a signal to blink a led with a 10ms duration every 2 seconds. I was thinking to use a 555 timer to do so, but I don't see how to change the duty cycle to make that off time is different than on time.

I want to avoid the use of an MCU if possible to save energy.

Best Answer

So this is also from \$2V\$ to \$3V\$. Is this another question related to your MSP430 question, earlier, called "connect a 5mm led to a gpio without transistor"? Is this just another way of addressing your earlier question? If so, you really are better off just getting a high efficiency low current LED and doing this in software. You'll get precision control of timing and it's cheap and easy. Plus, using the existing MSP430 for this (which has fabulous sleep modes and very very fast re-start from sleep capability) then the power consumption is really at a minimum, too. In fact, even if you had to add another MSP430 for ONLY this purpose, it would still be a very very low energy alternative. Those things sleep on sub-microamp draw with a timer running and can fire up to full speed in about a microsecond. I can't see why it wouldn't be a solution here.

Honestly, I don't know why you don't stay with that solution. But I'm going to assume this is for a different purpose than that one.

Before moving on, the MSP430G2210 is an 8-pin part that costs about $1 in ones. It includes an internal VLO that, in LPM3, draws about \$0.5\mu A\$ and can wake up and have the DCO running in about \$1\mu s\$. (You may not even need to bother with the DCO, but the VLO might be \$250\mu s\$ cycles and the DCO can be much much faster and get the few instructions needed done in much shorter time, so it might be worth it to start the DCO anyway.) So you turn on the LED, go to sleep, turn off the LED, go to sleep. Etc. Assuming you fire up to \$12MHz\$ in \$1\mu s\$ and run for another \$4\mu s\$ before going back to sleep (draw about \$3mA\$), that's \$5\mu s\$ every \$2 s\$ at \$3mA\$ and the rest at \$0.5\mu A\$. Add to that, let's say 10mA for the LED during the \$10ms\$ period. Average of \$100.5\mu A\$ draw total. That's basically just the LED itself (\$100\mu A\$ average) with the MSP430 not counting for anything. And that's better than an LM3909 will do. Speaking of which:

There is an IC called an LM3909 which, if you can get one, would probably solve the need. They run off of as little as about \$1.2V\$ and they work fine running on up to \$6V\$. So that covers your range of \$2V\$ to \$3V\$. They will use more than \$1 mA\$ to get the job done, though. You don't even say how many \$mA\$ you want to drive through the LED during that 10mS period, so I will take some freedom there, too. (The LM3909 delivers a high initial current that will probably be more than \$20mA\$ and then let's that drop down to about \$20mA\$ over a period of \$5mS\$, for one combination of values I tested. Which might be fine for you. But who knows? You didn't say what you can accept.)

If you are serious about a completely separate circuit for blinking the LED and truly don't want to use the LM3909 for other reasons, then here is a workable LM3909 in discrete form:

schematic

simulate this circuit – Schematic created using CircuitLab

Again, the current consumption of a dedicated MSP430 is less.

You could also consider this circuit:

schematic

simulate this circuit

It's also extremely low power. It will not work at \$2V\$, though. I think you may be able to operate down to somewhere around \$2.5V\$, perhaps? Definitely at \$3V\$. So it may not be a fit. It was something I was considering attaching to the phone line to monitor the activity, as it converts voltage to frequency pretty well and with different values for \$R_1\$ and \$C_1\$ wouldn't exceed the phone company's maximum on-hook impedance for a phone attachment.

But you really do need to specify a LOT more than you do when you write. In general, you aren't disclosing yourself very well nor discussing a range of acceptable behaviors or constraints.