Has anybody used Arduino motor shield to run a conventional control locomotive?
Replies sorted oldest to newest
The problem is the Arduino two-channel unit is limited to a maximum of 2 amps per channel. A dual-motor 0 gauge locomotive may pull up to 4 amps. For a small single motor trolley...sure. The answer is it "depends".
I've not used any of the ready-made shields, but have built a number of H-Bridge boards using TIP120/125 BJT transistors. These work very well up to about 5 amps, but require fairly large heat sinks. I'm currently looking at using some power MOSFETs, the same parts used in LionChief motor drivers, which are rated upwards of 17 amps, but I'm unsure how these will end up working out, In LionChief engines they are run without any heat sink at all, and I find this a little strange. Then again, these engines may be drawing only an amp or so through the H-Bridge.
For applications where less than 2 amps of current is needed the L298 is a fantastic choice, and you can find modules for under $2.00 on the auction site, shipped out of china.
JGL
I don't find the FET's with no heatsinks that odd John, they don't have any on the Legacy RCMC either, and they drive a lot larger motors.
Attachments
I've always wondered about this sort of approach: how well does it tolerate shorts on the track? Of course you've got it protected by a circuit breaker - but in those couple of seconds at high amperage will it turn the interface boards into toast?
As a side question: has anyone measured what the nominal amperage is, say with a PW ZW, in a full short situation? My DMM (or, rather, its fuse) only goes to 10A.
Well, I can tell you that a sudden shorted motor will take out the FET drives on the Legacy RCMC, I've seen it twice. A motor overload that is able to be sensed will apparently not damage them, but I've had two recent Legacy locomotives come in with a dead short internally in the Canon motor. In both cases it must have been sudden and the current sensing didn't react to it and shut the drivers down. I was able to replace the drivers on one of the RCMC boards, but the other one was too severely damaged by the heat to recover.
If you want to check the short amperage of a transformer, a clamp-on meter is the ticket, I have one that goes to 200A, so I think I have it covered.
Presumably this Arduino motor shield is to be used with an Arduino? Had to ask!
If so, you need to convert intermittent AC track voltage to 5V DC (or whatever) and maintains that DC voltage so the Arduino does not forget what state (Neutral, Fwd, Rev) it is in during Direction changes. I don't believe there is a AC-to-DC module that does this that tolerates the spikes and high-voltages seen in O-gauge. In other words I think there will be some hand-assembled circuitry.
So if you're soldering components anyway the circuitry for a 10 Amp bridge using 4 power FETs is of similar complexity as the AC-to-DC converter. The FETs are not being "modulated" or pulsed as in command control engines; for conventional mode they are simply turned on or off in pairs emulating the DPDT relay steering of the polarity of the rectified track voltage. There may even be a electro-mechanical relay solution. Presumably the Arduino is doing more than the direction control or we're back to the 50 cent flip-flop IC chip used in a Basic Reversing Unit.
gunrunnerjohn posted:I don't find the FET's with no heatsinks that odd John, they don't have any on the Legacy RCMC either, and they drive a lot larger motors.
gunrunnerjohn posted:Well, I can tell you that a sudden shorted motor will take out the FET drives on the Legacy RCMC...
...but the other one was too severely damaged by the heat to recover.
I have to wonder if these are related. I couldn't make out the part numbers of the FETs in the picture you posted, but even the small ones used in the LC engines could theoretically handle a shorted motor, if they had a proper heat sink. Unfortunately the amount of current they can handle drops in proportion to heat, ex: 17A@25C, 12A@100C on the ifr024. I would guess a couple pennies worth of aluminum would save some of those driver boards.
As for running conventional, there are several ways around the power drop-out problems. I used a couple of 4700uf caps to store enough energy to keep the arduino alive through direction changes, but a super cap will do the job, or a small battery. Having the board power off after 2 or 3 seconds actually works out pretty well if you want to mimic the normal operation of modern conventional engines, where they always power up in neutral. It may be worth adding a couple lines of code to use one analog input to monitor the voltage to the board and to go into an idle mode when the voltage drops below a stable level so you avoid any odd behavior.
Also for conventional it is probably a lot easier to use relays, if you're not using PWM to drive the motors. On the other hand, you can get some nice cruise control, by reading track voltage into the Arduino and outputting PWm for speed control, if you want to go through the work.
JGL