High Amperage Circut

Hello everyone.

I have had my Arduino Duemilanove for a bit over a year. I got a robo kit, put it togther, ran it for a few days, then tore it apart. I have been through most of the tutorials and have been absolutely ITCHING to build something that has a real use.

I am a software developer (albeit a little green), and I do not have any problems writing the programs that I am interested in. I have a strong grounding in digital logic. Analog circuts are a far different beast. It is a very different way of thinking and the math can get pretty complex (to someone who is new) for a seemingly simple circut.

So for my practical application. I have been getting back into model rocketry with my friends and their kids. My Estes ignition system finally bit the dust. I could probably repair it if I took the time to do it, but what fun would that be? I want to build a replacement that would be based on the arduino and I am having a little bit of a problem trying to figure out the circut.

I was figuring on using a relay that is turned on by a transister. I saw a diagram on this website (will post link below) - that shows how to hook up a transistor to the arduino to switch the relay on/off. It seems like a pretty straightforward thing. A 5v output going to a 2n222 NPN Transistor. That will switch the relay “on” and the relay will do what it does. I want to try to mimic the estes ignition system as close as possible.

With 4 AA rechargeable NiMH batteries in series, the launcher outputs 20mA to the igniter when the button is not pressed. It uses a lightbulb to restrict the current, and light up for a continuity check (this is not enough to light the igniter). When you press the button down, it bypasses the lightbulb and sends 5A to the igniter, setting it off.

For now, I am only interested in the base case of building a circut that will output the 5A on the relay, I will do the 20mA part of the circut later. I want to use a SPDT relay, default (relay “off”) will be the 20mA part of the circut. When the relay is on, it should be capable of sending the full 5A for a brief period of time, maybe .5s just to be sure

Here is where I am lost.

My current list of parts:

  1. 2n2222 NPN Transistor

  2. 5VRelay that can handle 5A I was thinking these might work?

  3. 1n4004 diode (Link Below)

  4. resistors, specifically a 1Kohm in my current circut

  5. a 4AA battery pack to power the relay and the 5A firing part of the circut

I am using a piece of software to simulate the circut before I purchase all of the stuff to build the circut (frugal I know). It is called CircutMaker and it is telling me different results than that I am expecting. IT is possible that the app is wrong, or that I am wrong, but something does not seem to add up. He is my attempt at the circut, borrowed mostly from the pdf mentioned above.

I have a “multimeter” reading the amps on that circut, and it is telling me about 5kA? That is probably not correct. Maybe that application is adding unneeded complexity. the 5V on the left is the arduino, the 5v on the top is the battery pack.

Does anyone here have any input on what I am doing wrong, or how I could do this better? I am open to any suggestion.

Thanks in Advance,

-Roaming_Builder

PS: Before you warn me of the dangers of playing with fire, I am well equipped and qualified to handle the materials =) I am quite careful.

It would not let me post links in my first post, so I am putting them here.

Circut PDF from this site: http://www.arduino.cc/playground/uploads/Learning/relays.pdf

Link to Relay in am interested in: http://www.virtualvillage.com/10-pcs-5v-dc-mini-power-relay-10a-003602-023.html?utm_source=googlebase&utm_medium=shcomp

Shoddy picture of my circut (PhotoBucket)

Full Size

So disconnect the -ve end of the battery from ground, put your igniter to the battery -ve and the other end of the ignitor to ground. To do the continuity check bit use a 330R resistor in line with an LED and place it across the relay contacts, so that it light up normally. That will give you the continuity checking.

Add the ignitor into your simulator as a 0.1 ohm resistor.

Doh, ok that makes perfect sense. I appreciate your very fast comments here.

I suppose blowing up the world would be bad eh? I added a resistor as you suggested and it is now bringing it back to normal ranges that makes sense. That is great.

So do you think that this circut is ok then? Does anybody have any comment on the parts, or how I have it wired up? If it looks good, and the parts should be able to handle the load, I will order the parts later today.

I am mainly concerned with the relay, and making sure I do not do anything foolish that will mess up the arduino.

If I am reading right, the relay can handle 5v across the coil and 10 amps across the switching contacts? I am not clear on this. I do nto want to fry anything.

You should NOT depend on the relay (or whatever) to provide safety switching.

I strongly agree with that, you need a switch in series with the igniter fuse?

Thanks for the input guys.

Yes. I will try to explain a little further. This is version one of my circut. I am not sure how the final product will end up. I do plan on building safety into the circut, for the porposes of this post, I was only trying to figure out if I was using the relay correctly. If you guys want to read my long winded posts and keep commenting, I would love to keep explaining.

My end goal will be as follows, I will get a WifiShield set up in ad-hoc mode with encryption. I will have a java program running on a laptop or a mobile phone. The app will have steps in place that will have to be completed in order for the system to arm and launch. I was thinking that:

1) a code will have to be entered, the arduino will verify the code and if good , send back a message to the java app, unlocking the arm button. This code could be hard coded, but most likely randomly generated each launch, and displayed on an led display on the launch box.

2) when the arm button is clicked, the circut will go to the continuity check part of the circut. I still have to figure this part out to make sure I am not blowing the igniter on accident. using a resister to pull it down to 20mA should be sufficient

3) then a launch button can be clicked, driving the relay. This should pop the igniter.

As far as safety, the entire units power will be controlled by a keyed switch. I was wanting to get one that had an off, on, and a momentary third state that will spring back to "on", exactly like the ignition switch in our cars. Turing the key on does not arm the circut, it just turns on the arduino. You have to push it to the momentary position to tell the arduino that it is ok to use the ignition circut (I would probably just read this on a pin). This could also be achieved with an on/off keyed switch and a momentary pushbutton switch in combonation. this momentary part of the keyed switch or pushbutton would only be good for one launch. It would have to be repeated at the box between every launch, and the code will have to be entered in the java app AFTER the button is pushed on the box. This should give those with any ounce of common sense enough time to get far enough away to launch. As this is only personal use, I am not worried about too foolish of people using it. I would always be there.

I was also going to put in a spst switch in the relay part of the circut that could be turned off at the box, before you got to the launchpad. This should not be a danger approaching the launchpad as the rocket would have already been launched or if there was a malfunction, you can disarm the circut from the java app, but I just want to be safe. The circut should never be stuck on, unless the relay fuses on. Hopefully this will not be an issue.

Also, at every point along the way, I wanted to be able to read the status of the circut and display the results to the java app. That will be implemented before the circut is actually used, I am just not sure how I will do that right now. It shoul not be difficult. I am assuming an analog read at various points in the circut? resistors protecting the arduino pins, of course.

If you see anything that I am missing, feel free to let me know. If you have any suggestions to make this better, also please let me know. Nothing is set in stone, and I will not even pretend to think that I am doing things the best way here.

Thanks again for all of your great input.

-Roaming_Builder

If it helps, here is a quick flowchart of how I see this playing out.

As you can see there is a switch in the circut that will supply the full current to the igniter. Even if that switch is off, pressing the launch button will cause the arming sequence to be reset, all of the way back to the momentary arming switch on the box.

Let me know if you have any ideas.

Suggest you might also want to include a "Time Out" function which interupts the procedure after a predetermined period has passed and a launch has not been initiated. This will prevent the system being left in a "Ready to Launch" mode if the operator becomes distracted by something nice passing across his line of vision.

Such a concept is quite common in industrial types of "initiation" control circuits

jack

I agree, and tha should be simple enough to add.

Does anyone have any comment on the circut or the components that I am using? Good/Bad? Right/Wrong?

Do you guys think that the relay will handle the load? Is that transister going to work?

Thanks again.

Oh, sorry, I forgot about that. The resistance of the fuse is only 1 ohm. I imagine that this may go up a tiny bit when I add a littlle more wire to it, but the length of the extra wire should be trivial.

The igniter itself will burn at 1A, so even if the resistance of the igniter is a tad higher, we should still have more than enough juice to light it off.

Sorry, I really need to word things better. The igniter only needs one amp to burn.

If I am understanding correctly, this means that I could power it with a single battery if needed 1.2v would equal 1.2 amp with a perfect 1ohm resistance, but I want to power some other stuff in there, plus the arduino itself, so a 5v power supply would make sense to me.

I am showing how nieve I am about these circuts right now. But I am having a hard time understanding some concepts.

If it will burn at 1A, is that all it will pull? The resistance is 1Ohm, and should stay there. I had assumed that since I was using a 5V battery pack, it would get 5A, but does it not work that way? Would it only pull 1A (what it needs)?

also, I found something cool on ebay. This might be right up my alley. It looks like relays, transistors and all built into one. Kind of cool, but building this circut on my own might be worth the lessons learned.

http://cgi.ebay.com/Two-Relay-Module-Board-8051-AVR-PIC-Project-5V-/260575103417?pt=LH_DefaultDomain_0&hash=item3cab7c89b9

I have no problem building this circut and testing and killing components and wasting a little $$ in the name of learning, I am just trying to figure out if a 2n2222 transister, a 1n4004 diode, and the relay listed above can handle all of this. If the circut will only pull the 1A (and not 5A) that the igniter needs to burn, I think that I will be ok.

Thanks again for your patience with a noob :)

basicall the igniter needs a minimum of 1A to burn. That is what I am operating off of.

The igniter will draw I = V/R amps. If the total circuit has a resistance of 1 ohm and the supply voltage is 6V (which is what I think you’re saying), then you’ll draw 6A. However, you won’t draw it for very long; as soon as the igniter goes the circuit will open and current will fall back to zero. I like that you chose a high side topology for your circuit. Shorts happen.

PS – I sell some integrated high current driver boards through my company.

I am actualy using rechargable NiMh AA's. They come in at 1.2V charged. That is giving me the 5V source. Normal AA's would give me 6.

So 5V source, the contacts of the relay should be able to handle the 5A current as far as I can tell (rated at 10A?). The 2n2222 transistor turning on should be able to pull 5V across the coil of the relay, switching the relay on. I will be protecting the arduino digital pin with a 1K ohm resistor. I think I might be ready to order some parts.

again here is my part list

npn 2n2222 transistor 1n4004 diode this relay (or similar one) http://www.virtualvillage.com/10-pcs-5v-dc-mini-power-relay-10a-003602-023.html?utm_source=googlebase&utm_medium=shcomp

I was going to order from digi-key. Is there a better place that I should look? Also ebay, but I am not sure about that, at least until I have some more experience.

Thanks again for all the help guys. If anyone is interested, I might write a blog about my build. I have always wanted to start blogging, but have never felt I had anything interesting enough to write about. I could post pictures and samples of how I did things.

Just in case anyone is interested, I am currently in the process of building this circut. I will let you know how it goes. Next, I will post some more information on what else I want to put in this circut.

Great news. Everything seems to be working so far.

I am attaching some pics for you to see.

Here is a view of the prototype. It is quite simple. Relay on the right, transistor on the left. This is just gettting a 5v Digital Write (Black wire to the left) to the base the 2N2222

I have my multimeter set up with some testing clips to measure the voltages and amperages at certain points. In this image, I am checking the current at the output of the relay. Granted, this does not have the igniter on it yet. It is still capable of putting out decent current.

Assuming that I have everything set on my multimeter correctly (it is a cheapo), I am reading anywhere from 4.5-6Amps in my current setup. This will change a little, but it should not drop too much.

And here is my idea for the next revision of the circut. I am not done yet, if you will bare(bear?) with me a little while longer.

You will see that I now want to have two relays, hooked up the exact same way. The first will be controlling the power to the second. This will allow me to have 2 pins that I ahve to set to high to fire the circut. If the top relay is off, nothing happens. When it switches on, it provides power to the lower relay. The normally closed side of the relay will be hooked up to the low-power side of the circut. Hopefully I will be able to use this for checking continuity of the igniter. If I turn the bottom relay on, it will provide full power to the igniter (indicated by the 1Ohm resistor).

There may be a more elegant solution, but I am working when the parts that I ordered for the first draft of the circut. I have 10 relays, 20 2n2222's, and more diodes than i will ever use.

Any Suggestions?

After I get this one working, I will probably be putting a keyed switch in the path of the power to the relay. The key will have to be turned on for power to ev3er reack the transistor. The switch is really cool. It is a triple pole, triple throw switch that has positions 1, 2, and 3. So position 1 can be off, position 2 can be on, but only allowing the top relay to fire (not allowing the bottom relay to turn on, firing the igniter. It would be stuck in the continuity testing), and position 3 can be full on, allowing the ignition to ocurr.

You will also see spst switches off to the left. Those are not going to be real switches. I added them to simulate turning the arduino digital pins high and low.

and I just saw that I forgot the diode on the top relay. Assume that is there =)

Goodnight all!

Maybe that will be a problem? The ammeter is not a real part of the circut. I just have it in there to read the current. It is set to have 1.000uOhm of resistance. Do you think that is skewing my results? It is only there for testing the simulation.

I appreciate all of your help.