Millisecond trigger to deliver 9VDC pulse

Hi all,

Just getting started on this project, and wanted opinions on whether an Arduino Uno is appropriate.

I am designing an adjustable timing circuit that will deliver a 9VDC @ ~200mA pulse for a variable amount of time from ~10-2000ms. I would like the timing of the pulse length to be accurate to +/- 1ms. Ideally this will be combined with a multi-segment LCD and rotary encoder push button switch to set the pulse length and trigger a pulse.

I may also want to eventually add more complexity to the pulses (eg fire a 200ms pulse every 5 seconds for 5 mins), so something microcontroller based where I can update the code would be idea.

Will the 16MHz crystal on an UNO R3 be able to deliver this resolution for these pulse lengths? I have read several threads about the limitations of using timer and delay code, and it seems like for these pulse lengths it should be accurate enough depending on how I implement the timer.

Any thoughts? Is this feasable? Any recommendations on a starter kit to buy? Or is there another platform that would be better suited for this?

Thanks in advance!

At 16MHz you are clocking every 62.5 nanoseconds. 1 millisecond is like an eternity. The Arduino would have no problem at all with that as long as you write your code well.

Use micros(), can achieve 4uS resolution without doing anything special.

Great, thanks for the confirmation. And thanks for the tip on micros().

Is the Arduino the best choice for this project, or is there something simpler I should consider?

ot0tot:
Great, thanks for the confirmation. And thanks for the tip on micros().

Is the Arduino the best choice for this project, or is there something simpler I should consider?

What is your definition of ‘best’?

The Arduino, as mentioned, will be able to do what you want.

For 9v, you will need a transistor circuit along with the Arduino.

.

I guess my question was whether the Arduino was overkill, but I think it's a good fit.

Thanks for the advice!

The question might be, is an UNO the best?
Have you seen the Arduino Pro Mini ~$3.00, (you would need a FTDI to program it)?

.

ot0tot:
I guess my question was whether the Arduino was overkill, but I think it's a good fit.

Thanks for the advice!

Once you add a display, an entry level Arduino with 328P (Uno, Nano, Micro) may be just right.

If you're handy with solder and have components, you can use the Arduino to program a bare 328P and DIY a board. Advantage is you get to keep your dev board and leave stand-alone chips in projects.

Thanks for the replies!

Any suggestions on a suitable 5v logic level MOSFET to switch the 9V <1A load?

This looks like it will fit the bill: http://www.sparkfun.com/products/10213

Are there any other considerations in the design of the circuit to keep the pulse as square as possible and/or reduce noise or feedback from the load?

High side or low side switch?

Jiggy-Ninja:
High side or low side switch?

5V to switch a 9V supply so low side.

ot0tot:
Any suggestions on a suitable 5v logic level MOSFET to switch the 9V <1A load?

IRL540 is a good one for 5V TTL levels though there are much smaller ones that can handle your 200 mA just fine.
The BSS123N and PMV16XN are examples of 3.3V switching MOSFETs, both can handle 200 mA just fine. Beware: they’re tiny, literally the size of a grain of rice, and SMD only.

Are there any other considerations in the design of the circuit to keep the pulse as square as possible and/or reduce noise or feedback from the load?

Check the data sheet of those to see which switches fastest. The big delay is probably the gate capacitance, so you have to look into how to charge/discharge the gate as fast as possible.

2N700 comes in through-hole and rated 200mA continuous. I just used them to pulse 250mA 12V 1ms on/off no problem.

That's a low-side, connect where the circuit grounds to the FET drain, connect FET source to ground, connect Arduino pin directly to the FET gate, 2N7000 gate capacitance is not enough to wreck an AVR pin. Works fine.

Thanks again for the replies. I picked up some FQP30N06L to test with before I received the replies, so they should be more than sufficient for this application. Under the worst case scenario, I'd be switching 9V@1A, so the extra current capacity of the larger MOSFET is welcome.

The load I am triggering is a solid-state Gunn-effect diode, but I plan on using a diode as flyback protection against any inductance from cabling, etc.

The other thing I am concerned about is static electricity buildup from the switched Gunn-effect diode. In regular operation I have noticed it build up quite a bit of static charge, and I would like to prevent this from feeding back into the Arduino. Any ideas?

Lastly, how do I go about properly sizing a pull-down resistor for a MOSFET? With the FQP30N06L being switched by an Arduino I have read everything from 200 to 10K ohms and beyond, and have been unable to find any clear guidance.

Really appreciate all the great suggestions and ideas!