Multivibrator in theory and practice

We must admit that we’ve been guilty of using a microcontroller to make two LEDs blink alternately in the past. It’s not the worst transgression, but it stems from our discomfort with analog circuits. Luckily, [Ray] published an illustrated guide on building multivibrator circuits. This is a simple method of assembling a two-output oscillator. All it takes is a pair of NPN transistors, which are then switched by on and off based on a resistor-capacitor (RC) timer.

[Ray] does a good job of walking us through how the circuit works at each stage of one complete cycle. You’ll need to read carefully, but the supplementary schematics he uses to water down snap shots of the various electrical states really helped us understand.

Of course, blinking LEDs isn’t the sole purpose of a multivibrator. It is a method of producing a clean square wave which can be used as a clock signal for TTL logic chips.¬†Oh, who are we kidding, see the blinky goodness for yourself in the video after the break.

Comments

  1. A multivibrator, for those occasions when one vibrator is just not enough. ;-)

  2. dbear says:

    Base component cost (based on digikey)

    Multivibrator(all through hole) = $1.36

    Microprocessor (pic 10F200 through hole)= $0.41

    BUT you have to have some way to program the pic.

    And the discrete components should be at your local Radio Shack.

    • therian says:

      2 transistors and 4 resistors do not cost that much. unless you get stuff from radioshack

    • Will says:

      There is no PIC involved with this at all, so the need to program one does not exist :)

    • Ivan says:

      Now go make 100,000 products, half of them using the PIC and the other half using this. See which one goes cheaper. It’s all about quantity.

    • Ray says:

      Hi dbear, I use mouser more often. Here is the total unit price for purchasing two 2N3904, four resistors, and two 1uF capacitor, all through-hole: $0.3 for quantity 1, $0.228 for 100, $0.182 for 1000.

      10F200: $0.49 for quantity 1, $0.34 for 100, $0.34 for 1000.

    • dbear says:

      My point was that the micro is more expensive for low quantities. But the old way is very often the best way. Not everything needs a micro. And I cut my teeth on this stuff from old Forest Mims books.

    • Bill says:

      You’re forgetting 555 timers (in case you want a blinky-light technology in between multivibrators and microcontrollers), and you’re forgetting LEDs on the serial/parallel/USB port of a multi-core multi-GHz PC, and graphical emulations of LEDs as an iPhone app :-)

      For the 555 design contest (www.555contest.com) I built a multivibrator using a circuit pretty much like this one, and fed taps from both sides into the inputs of a 556 (dual 555) timer which drove some more LEDs. It turns out that the input impedance of a 555 isn’t very high, because it’s in fact three 5kOhm resistors, so even with a diode and resistor it slowed down the multivibrator a lot. I really need to try it with a CMOS 555 and see if that behaves differently than the silicon versions.

      • AussieTech says:

        Actually you’re talking about the CV point which is intended as a by-pass point, not an input. The actual inputs of a 555 are Trig and Thresh which are comparator inputs. The Trig input current is 0.5uA typ to 0.9uA max, and the Thresh input current is 0.1uA typ to 0.25uA max, which represents a much higher input resistance than the CV point (which is basically 5k in parallel with 2*5k). These figures are lower again for the CMOS 555.

        An astable flip-flop like this can be reasonably stable, provide reasonable mark/space or duty cycle, and oscillate up to MHz if required. The basic stability of a 555 is no better because it also depends on the same sort of external components, is harder to get equal mark/space, and limited in upper freq.

  3. dbear says:

    Or you can use an arduino for $30 ;)

  4. Darren says:

    In high-school, I generalized the circuit upwards to produce a three-state multivibrator.

    My electronics-genius friend didn’t like it because he expected it would transition between the three states with one LED on at a time… instead it transitioned between three states with one LED off at a time.

    Grad school limits my time for recreating it, but anyone out there want to do so and make a video?

    four-state? more-state?

  5. Darren says:

    Crud. It was a momentary-switch triggered multi-stable circuit, not a multi-vibrator.

  6. DerAxeman says:

    I used one of these circuits for a customer. Since I needed the high power transistors to drive the LED lights it was a no brainer vs microprocessor based solution. I finished the project with a total of 7 transistors. This raised and lowered a boom as well and kept the lights flashing while the boom was being raised and lowered. It also fit on a single layer PCB. Considering with a mcu you would have had to program every one or paid to have them all preprogramed, the entirely analog solution was the cheapest possible.

  7. Infidellic says:

    I wouldn’t rely on this for decent

  8. Infidellic says:

    as I was saying:

    I wouldn’t rely on this for a decent square wave. Unless the components are very tightly matched and exposed to the same thermal conditions etc your duty cycle will wander

  9. Carlos says:

    Finally a decent explanation.

    Man, if I had a penny for every time I’ve seen this circuit explained incorrectly…

  10. Microguy says:

    This circuit is easily modified with a center tap transformer, so you can make a nice little DC/DC converter when you need one. Isolated power, higher voltage, negative voltage….

    Not really efficient, but it works for powered applications.

    I’ve been using it for decades.

    Just put about 16 or more center tapped windings on a toroid, send one center tap to V+, it’s ends to the collectors. Then you have a center tapped winding free floating, depends on you how you hook it up.

    You might have to play with some values to get it working, but it works well.

    • Ray says:

      Very interesting to know that. In fact I first got interested in the multivibrator when I reverse engineered a boost converter that employs a multivibrator to generate boosting PWM signals. One interesting thing I noticed (which I’ve never seen elsewhere) is that it puts an inductor in series with R4 (i.e. T2′s collector resistor). This leads to a voltage boosting effect itself, producing a high-voltage pulse wave output from O2 (up to 13V from only 2.4V battery power). The high-voltage pulse is then fed to a simple boost converter to produce 24V output. This design has quite impressive efficiency, which I was never able to beat by either using the mcu’s PWM or even a monolithic booster converter.

  11. johndavid400 says:

    this is cool and useful… might add a dual pole potentiometer in place of those 100kohm resistors to create a delay control, making the LEDs blink faster/slower.

  12. gvelasquez85 says:

    I won’t rely my TTL logic to a Multibrivator… I would preffer a piezo-electric crystal oscillator as well, but the 2N2222 will be always my best-electronic-friend

  13. DjKiDD says:

    What is the fastest you could get a circuit like this to blink?

    The smaller the capacitor the faster it will blink?

    • space says:

      @DjKiDD That depends on transistors. You could probably get megahertz out of it with general purpose transistors.

    • Ray says:

      Yup, smaller resistors and capacitors will make it faster. Recall that the frequency is determined roughly by: 0.721/(R*C) (assuming R2=R3=R, and C1=C2=C).

      As space pointed out, there is a limit on the frequency imposed by the capability of a transistor. Say, if you want GHz waves, this is not going to work. But I can’t think of any reason why anyone would want to blink LEDs at that frequency.

  14. adam says:

    I built a multivibrator awhile back. I was looking for a very low power way to create a trigger pulse once a minute for 1 second. I got a pretty good prototype working, but it ended up drawing 20-30mA. Then i found the ICM7555 an ultra low power 555 that only uses 60uA!!! There is still a few mA draw from the resistors and capacitor but it was much lower power

  15. Johan says:

    A tip is to use some software to play around with this (LTSpice, ngspice or something like that) to see what happens. For some (me at least) it is a more accessible way to play with electronics.

  16. anyone says:

    well suck me sideways! this website with an analog circuit and no adrunio? i dont fucking believe it…

  17. p0e says:

    …. how do you program the transistors….?

  18. Jason says:

    Its funny I actually buit this circuit (i believe i got the info from his site) Anyway my goal however, was to ultimately replace the leds with electro magnets, for a type of clock I wanted to make. However, as soon as there is a load the current stops switching, Anyone know how I could modify it so that it works?

  19. raako71 says:

    I can just imagine anyone over the age of 30 would just crash into a defeated heap reading “it stems from our discomfort with analog circuits” … poor kids with their wireless phones that can play movies for fun

  20. Miroslav says:

    This circuit is marginal at best. With transistor gain of 100 it will barely saturate. Collector resistors must be larger, or base resistors smaller, for this to reliably work. 2N3904 has guaranteed gain less than 100 at low collector currents, I believe.

  21. Aaron says:

    So, If I wanted to use this circuit to run two sets of 12V led strips in place of the leds on the board,(So, 4 12v yellow/amber 1ft strips total) what changes would I need to make?
    I’m thinking of using it on my snow truck as warning lights.
    Thanks in advance!

    • Ray says:

      Use a MOSFET that can sustain the total current required by the LEDs. Connect the MOSFET gate pin to the multivibrator output (O1 or O2), source pin to ground, and drain pin to the led negative. The led positive should be connected to +12v.

      Note that if you want to power the multivibrator with the same 12v power supply, you need protecting diode (in series with the base or emitter) to avoid the transistors from being driven into reverse breakdown voltage (which is typically only 6V for 2n3904). Alternatively, you can step the 12V down to 5V (say, by using a 7805 regulator) to power the multivibrator.

  22. Aaron says:

    First off, I REALLY appreciate your help.
    On that link you sent, it shows this circuit (with slightly different resistors) accepting up to 20v; since my voltage doesn’t spike over 16, should I just give it a try?

    I have the circuit laid out and working, when I went to radioshack, they had a kit to do exactly this, but with a variable resistor. It was rated for a 9v battery. Right now I have a 5v current flowing into the kit, and it will flash the led strips, but only at half power. I wired the source of the the mosfet to -12v, the drain to the – side of the led strips, and the gate I have just been probing around the circuit with. When I touch the flat side of a led (negative?) it will flash at 1/2 or 1/4 brightness, if I touch it to the other side of the led, it goes to full brightness, but doesn’t flash.. any ideas?

    • Ray says:

      Yes the circuit should work for your voltage. The different resistor values just give you different frequency. You can adjust them based on your desired frequency. Also, note that D3 and D4 in Figure 13 of that webpage are optional — these two are used to make sure the frequency is accurate. If you don’t care about a small amount of error (2%) in the frequency calculation, you don’t need them.

      I don’t quite understand your current setup: where do you connect the MOSFET gate to? And where is the led positive connected to? When you say you ‘touch the flat side’ you mean connecting some pin to the flat side, or you mean using your hand to touch it.

      • Aaron says:

        The led strip positive is hooked to 12v positive.

        When I say flat side of an led, on most there is one side sanded flat to denote either the positve or negative pin, I forgot which it denotes.

        Right now, the mosfet gate is just connected to a wire I had and I was using it to probe different points on the board. I will post pics in a few minutes

      • Aaron says:

        This has everything labeled:
        http://dl.dropbox.com/u/837923/2011-12-08_22-32-16_429.jpg

        this is half power:
        http://dl.dropbox.com/u/837923/2011-12-08_22-32-44_254.jpg

        This is constant full power:
        http://dl.dropbox.com/u/837923/2011-12-08_22-33-09_608.jpg

        I know I need to actually solder them up for a final product, I just have not yet.

      • Ray says:

        I am not sure about the specific radioshack circuit you are using. But you should connect the MOSFET gate to the transistor’s collector, or the capacitor’s positive lead.

        Also, it seems that your battery has bipolar outputs: +12V, ground, and also -12V. Is that right? Given that the MOSFET source is connected to -12V, you are subjecting the LEDs to 24V when the MOSFET is turned on. You should check if this will exceed the LED’s spec.

      • Aaron says:

        Well here is the schematic of the radio shack circuit.

        http://dl.dropbox.com/u/837923/2011-12-11_15-43-29_653.jpg

        As far as bi polar outputs, that is just my stupidity. Its a regular 12v battery; Its going in my truck. Sorry for that confusion, and thanks for the concern. That is good to know though, because I would have just assumed 12V- was ground in a future project.

        You are saying connect where these red circles are, correct?

        Right now I have it going
        Battery > Circuit
        Transistor Collector> MOSFET Gate
        MOSFET Drain > LED
        MSFET Source > Battery
        the strips will flash about 1/2 power connected directly to the transistors, or they are staying in the full power position connected to Mosfets.

        I am using the IRF510 Mosfet.

        Here is a real quick video I shot just in case my description didnt make sense.

      • Ray says:

        All right, I guess the most productive way now is to draw a schematic. Here is the circuit with your added components (two IRF510 MOSFETS and two LED strips).

        http://dl.dropbox.com/u/9120042/multivibrator_leddriver.png

        Note that the LED strips are connected to +12V line, and the oscillator circuit uses +5V. You can either use a 7805 voltage regulator to produce 5V from 12V (as shown in the drawing), or use separate batteries/supplies as long as they share a common ground. From the video it looks like you are using a PC power supply. That’s ok, since you have both 5V (red wire) and 12V (yellow wire) sharing a common ground (black wire).

        Hopefully this can fix your problem.

  23. Aaron says:

    I actually had it hooked up that way in the video at one point.. The molex connection had ground, 12v and then the yellow and black that are next to each other are the connections to the transistors. It was easier to work with that way. I have tried it exactly as you have it set up, and for whatever reason, the mosfet did not seem to want to toggle.

    At this point, I think Im just going to go hook it up directly the truck without mosfets or the regulator, and see how bright it gets/if it blows up. if it works, it works. If it blows up, there went $3.

    I really appreciate your help, Ray!

    • Ray says:

      No problem. Just one quick note: in the video at one point you mentioned that the MOSFET gate pin is not connected to anything. Not sure when you would ever want to do that, but leaving the gate pin float is sort of letting the MOSFET lose control. The gate should always be connecting to something.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s