1
\$\begingroup\$

I've managed to adapt a basic multivibrator circuit to contain 3 LEDs that blink in sequence, but I want to be able to control which LED lights first when it's turned on, so the same LED lights first every time.

Is it possible to bias which transistor turns on first by tweaking the values of the resistors or capacitor slightly on that part of the circuit?

Update 1

As requested, here is a crudely drawn circuit diagram:

enter image description here

R = 4.7k, r = 1k, C = 100uF, NPN Transistors

Update 2

So I downloaded LTSpice and figured out how to use it, but the 3 LED multivibrator doesn't work in it. Here's the 2 LED version, which works as expected:

enter image description here

But when I extend it to add in the 3rd LED, it stops working:

enter image description here

However, I've built this on a breadboard and it works perfectly.

\$\endgroup\$
  • \$\begingroup\$ Can you post the schematic \$\endgroup\$ – EE_socal Mar 1 '18 at 16:39
  • 1
    \$\begingroup\$ I recommend you using a sim tool to gain a better understanding and try out different solutions to get an even better idea what is going on and why. LTSpice is free. Micro-cap student edition is free. Eventually (or sooner) you will see this as really useful advise despiting you cursing everyone for the steep learning curve. \$\endgroup\$ – Andy aka Mar 1 '18 at 17:07
  • \$\begingroup\$ I agree simulating this in Ltspice would be a good idea and very easy to do. \$\endgroup\$ – EE_socal Mar 1 '18 at 18:19
  • \$\begingroup\$ Try small cap across one R or two Vbe \$\endgroup\$ – Sunnyskyguy EE75 Mar 1 '18 at 18:34
  • \$\begingroup\$ Check the polarity of your capacitors! \$\endgroup\$ – Oldfart Mar 1 '18 at 19:15
1
\$\begingroup\$

The way to solve such problems is to slightly alter the symmetry of the circuit in such a way that, at power-on, there is a chosen BJT that is off while the other two are in saturation, as Tony Stewart implicitly suggested. You could achieve this by placing a resistor \$R_{set}\$ in parallel to the base resistor R of the two BJTs you want to be in saturation "immediately after" power-up:

schematic

simulate this circuit – Schematic created using CircuitLab

However this method causes the slight decrease of two of the three time constants of the circuit. If you do not want to do that, another method is to use a \$R_{set}\$ base resistor to keep the chosen BJT out of saturation at power-on:

schematic

simulate this circuit

Knowing resistor tolerances and the transistor parameters and parameter spreads, you can calculate the maximum/minimum values required for the resistor \$R_{set}\$: a basic procedure is described below.

A quantitative description

At power-up, in the case of perfectly identical circuits, each transistor \$Q\$ sees the capacitor \$C\$ as a short circuit. Thus, for each transistor we have $$ V_{BE}=V_{CE}\:\text{ at }\:t=t_0 \tag{1} \label{1} $$ i.e. every transistor at power up is in the active region (i.e. not in saturation). As times goes, each capacitor \$C\$ is charged by the resistor \$R\$ in an approximately (but up to a high precision) linear way with a charging current \$I_\mathrm{crg}\$ whose value is $$ I_\mathrm{crg}\approx\frac{V_{CC}-V_{BE}}{R}\approx\frac{4.5V-0.7V}{4700\Omega} \tag{2} \label{2} $$ Since \$V_{BE}\$ cannot vary too much, \$C\$ rises the voltage between its plates at the expenses of the \$V_{CE}\$ until $$ V_{CE}=V_{CE_\mathrm{sat}} \tag{3} \label{3} $$ In the standard two-BJTs circuit, as the one you analyzed in your first simulation is, this is the start-up of the oscillation: the positive feedback of the two cascaded BJT stages amplifies the ubiquitous noise and brings one of the BJTs in saturation, while the other goes off. Therefore, to make sure that a chosen device is off (and thus, in this case, light the LED) when the others have been in saturation, you have to be sure that the condition \eqref{3} is verified for it only after it has been verified for the other. You can satisfy this requirement in two ways,

  1. by slightly increasing \$I_\mathrm{crg}\$ \eqref{2} for the remaining devices: this is simply accomplished by placing a resistor in parallel to \$R\$ for all other base biasing circuits,
  2. or by slightly increasing the \$V_{CE}\$ voltage of the chosen one, putting a resistor in series to its base terminal in order to have $$ V_{CE}=V_{BE}+R_{set}I_B\:\text{ at }\:t=t_0, \tag{4} \label{4} $$ thus verifying \eqref{3} at later times, due to the higher initial value of \$ V_{CE}\$. In this last case you can chose \$R_{set}\$ to be $$ R_{set}\geq\frac{V_{BE_\mathrm{sat}}-V_{CE_\mathrm{sat}}}{I_\mathrm{crg}}, \tag{5} \label{5} $$ the "\$\geq\$" sign meaning that this value should be greater than the uncertainty on \$R\$ due to the unavoidable resistor tolerances.

Some notes

  • The values \$V_{BE_\mathrm{sat}}\$ and \$V_{CE_\mathrm{sat}}\$ should be read from the datasheet of \$Q\$ and depend on \$I_{B_\mathrm{sat}}\$ and on \$I_{C_\mathrm{sat}}\$. However you can safely assume that $$ V_{BE_\mathrm{sat}}=0.7V\quad V_{CE_\mathrm{sat}}=0.25V $$ I advice you to put the value of \$R_{set}\$ calculated by \eqref{5} in series to the SPICE circuit of the two-BJTs circuit in order to see the above described behavior.
  • There is a problem in your three-BJTs circuit: as the spice simulation confirm, the feedback is negative at DC to low frequency, therefore it cannot start oscillating. Your breadboard prototype works because it probably behaves like a phase-shift oscillator, each of the three stages providing a phase shift of nearly 60° to a (very) approximatively sinusoidal oscillation, which is clamped by the LED diodes. If you want it to behave like a multivibrator, you have to add a further BJT stage (without timing tank i.e. without \$C\$, if you need to light only three LED) in order to have a DC positive feedback.
\$\endgroup\$
  • \$\begingroup\$ @littlecharva: I though about my answer and I realized it is too "qualitative". If you can wait a few days, I'll try to expand it in a way its content is more useful and "quantitative". \$\endgroup\$ – Daniele Tampieri Mar 5 '18 at 17:49
  • \$\begingroup\$ That would be great. I've also updated my question with details of how the circuit doesn't work in LTSpice. If you could explain how I calculate the appropriate resistors to use, then that would be great. \$\endgroup\$ – littlecharva Mar 6 '18 at 8:10
  • \$\begingroup\$ Apologies, I'm not great at the maths side of all this. I can see from your explanation above that Icrg calculates to 0.000809, but I have no idea what IB, VCE (OR VBEsat/VCEsat) are, or how to calculate them. \$\endgroup\$ – littlecharva Mar 14 '18 at 13:43
  • \$\begingroup\$ You're welcome. using the generic values I suggested, \$R_{set}=(0.7-0.25)V/0.000809A\approx 560\Omega\$: try this value and see what happens. \$\endgroup\$ – Daniele Tampieri Mar 14 '18 at 13:57
  • \$\begingroup\$ @littlecharva: did you tried the value? If yes, what happened? \$\endgroup\$ – Daniele Tampieri Mar 16 '18 at 6:16
2
\$\begingroup\$

I would use a C or an RC combined with a diode in one of the bases to influence the initial symmetry on startup. Once the C charges, the diode latches it out of the circuit. Maybe two diodes: one to the transistor base, and another one to discharge the C against the supply rail when you remove power (so that the circuit starts again reliably on short blackouts).

I would use a signal diode such as the 1N4148 (or if you have something yet finer, such as a transistor B-E circuit or a signal Schottky) so that it still functions as a diode against kiloOhm-range resistors in the base circuit, and so that its parasitic capacity doesn't matter in the timing.

Choose the C or RC such that it gets charged in a cycle or two of your circuit. Or maybe even a much shorter timing constant is enough to disbalance the circuit in the desired way.

BTW I got the very same idea and implemented a similar "threefold multivibrator" circuit some 30 years ago as kid. Only I guess I used some CMOS gates. Added some triacs (or was it relays? not sure) and used it to drive three sections of christmass tree lights on a spruce tree in front of our house :-)

===== EDIT =====

Looking at Mr. Tampieri's fine answer, I have another idea (I do not think this is what he suggests): use a trivial RC timing circuit to drive an extra transistor (a fourth T in the schematic) that briefly shorts one of the three vibrating bases to GND on startup :-) Once your RC cell (dis)charges, the extra transistor will go "open circuit" = vanishes from the topology. Let it be your homework to figure out how to connect the R and C to +Vcc and GND. The R will also guarantee a fast enough "reset" on circuit power-down.

Whether you use diodes or an extra transistor, my point is that the "bootstrap timer" vanishes from the circuit soon after startup, so that the symmetry of the three-fold multivibrator is not impaired during normal operation.

\$\endgroup\$
  • \$\begingroup\$ Your suggestion works in every condition: mine is probably the most economical and, depending on component tolerances, may require \$R_{sat}\$ tuning. \$\endgroup\$ – Daniele Tampieri Mar 14 '18 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.