I am comfortable with rudimentary 555 circuits and other basics, but I have something a little bit beyond me now.

I need to have three separate mosfets A, B, and C all turn on and off in sequence. I want to be able to control the timing of on state separately if possible, but it's not absolutely necessary. I would be fine with all of them having the same ON time so long as I can control the period of the entire cycle so that I can speed up or slow down the frequency.

enter image description here

I'd like to be able to do this in the 10Khz to 1Mhz range. I've been told there are basic integrated chips that will let me do exactly this sort of thing, but I haven't the foggiest what part number or catalog page to look up.

  • 1
    \$\begingroup\$ This requirement might lend itself excellently to a small microcontroller, say an ATtiny25 or a PIC16F505. Programming three IO pins to generate the sequence will be simple too. Are you open to the microcontroller approach? \$\endgroup\$ – Anindo Ghosh Apr 23 '13 at 4:21
  • \$\begingroup\$ Thank you to everyone who replied with answers! These are all very helpful! Thanks so much! \$\endgroup\$ – JamesHoux Apr 23 '13 at 13:36

As Anindo says, a small microcontroller (such as a PIC10F, 12F, 16F) is the perfect solution for this kind of task, so if you are up to trying this examples can be given. If you want to progress with modern electronics microcontrollers are pretty much a necessity.

To do it without one, there are a few ways you could approach this - for example you could set up a logic gate based circuit with a clock/counters/comparators, or you could use a 555/556 based approach. If you don't mind the timing being equal for each FET then a 3-bit ring counter could also be used - the timing for all could be adjusted still by changing the clock speed.

If you know 555s, then you could set up 3 555s in one-shot mode, then use NAND gates to trigger each one in turn. I think this should work okay.
For example, when B and C are low, A is triggered, when C and A are low, B is triggered, and when A and B are low, C is triggered. To adjust timing on each, use a potentiometer for the R part of the RC timing components on each 555.
If you need a diagram, let me know and I'll try and throw one together.

  • \$\begingroup\$ Oli, could you direct me to one of these 3-bit ring counters you mentioned? \$\endgroup\$ – JamesHoux Apr 23 '13 at 13:39
  • \$\begingroup\$ A ring counter is basically a shift register with it's output tied to it's input. Generally ICs are 8 or 4 bit, so you may have to make one from 3 flip flops. See the Wiki page for details - basically you just need to preload it with 100, then each shift it will turn the next FET on (e.g. 010, 001, 100, 010...) \$\endgroup\$ – Oli Glaser Apr 23 '13 at 13:52
  • \$\begingroup\$ Thanks. Is it possible to use a 4-bit counter and disable the fourth bit? \$\endgroup\$ – JamesHoux Apr 23 '13 at 17:43
  • \$\begingroup\$ @Jim - Not with a normal shift register, no, as the 4th flip flop would still take up a clock period even if not used. 3 is a little awkward as they come in powers of 2. Using a decade counter as suggested by jwygralak67 would achieve the same result, or do it with the 3 flip flop ICs as I suggest above. Either way it will be roughly the same price (< 1$) and complexity. If you need a rough example design to get you going let me know and I'll edit one into my answer when I get a few minutes. \$\endgroup\$ – Oli Glaser Apr 23 '13 at 22:10
  • \$\begingroup\$ Oli, I looked at your profile and it says "Also do the odd bit of freelance work, contact at the e-mail provided." I was wondering if I might hire you to do this project, assuming I can afford your rate. But your email isn't listed in your profile or on your web site, or I just can't find it. \$\endgroup\$ – JamesHoux Apr 24 '13 at 0:24

Another non-microcontroller option is a 4017 decade counter. This chip has 10 output pins. Each pin goes high, in turn, as you pulse the clock. In order to make it only pulse 3 outputs, just connect the 4th output pin to the Reset pin. As soon as 4 goes high, the counter will reset back to 1.

An astable 555 is a nice adjustable clock source for lower frequencies. I'm not sure how well they work up in the MHz range you mention.


There are quite a lot of hobbyist circuits to do this without microcontrollers, if you don't want to use one; the search term you need is "traffic light circuit". http://www.555-timer-circuits.com/traffic-lights.html

(Some of them generalise easily to more than 3 lights, some of them don't)


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.