Newbie! Arduino pulse output to industrial stepper driver?

Hello Sparkfun gang. Ok, after reading MAKE for the last 18 issues, I can’t hold off on getting an Arduino any longer. Problem is, I’m not exactly sure how to make it do what I need.

I have an industrial stepper motor drive, the Centent CNO 142 ( http://www.centent.com/cn0142.htm ) and a 1.8 deg 3.6A stepper motor that I pulled out of a piece of working equipment. The two were previously functioning together. I need something that will generate step and direction signals to feed into the CNO 142. Centent wants to sell me their driver circuit for this ( http://www.centent.com/cn0173.htm ) for $60, but I’d be willing to bet the Arduino can do the same thing and more for less $. The drive requires 20ma current sink for both step and direction, and since it’s a microstep drive, I’ll need to generate a lot of pulses, variable between 10 - 1000 pulses per second. Is this an easy task for Arduino? Any hints?

Thanks!

The Arduino can NOT drive the stepper motor directly. It can only source about 20mA of current and the stepper motor requires 3.6 Amp. The motor driver circuit takes the low current processor signals and current amplifies the low level signals to drive the motor. $60 sounds to be a good price for such a motor driver or if you can learn the electronics you could build your own driver circuit.

No no, I already have the separate motor driver, that’s the CNO 142. All I need is a step pulse generator to provide step and direction inputs to the driver, which then will power the motor.

Sorry, Got confused as to which box you have and which you wanted to replace with the Arduino.

The Arduino can produce the direction and step pulses required by the driver. The drive’s input current requirements are a bit high but the Arduino should be able to source/sink 20mA (do check the data sheet for the Arduino’s processor).

The basic code is rather easy to set the motor direction and then a series of pulses to step the motor. There should be lots of code examples showing how to do this. How you written any code for the Arduino yet? If not start with the simple blinking LED then the stepper motor.

No code yet, but I’ve found a ton of examples. So I’ll work on it. Thanks for your help!

I have the same situation, driving a Faldic-W amplifier from Fuji Electric.

Using the AccelStepper library makes it very easy to drive the motor, with velocity profile control. However, if the Arduino does only that, it can bearly reach 1000 pulses / second. In my case, I have 2 motors, plus some messaging. As a result, I can only get about 200 pulses per second, which is not enough for me.

I talked to one of my friends who is good at micro-electronics. He told me that I will never be able to achieve the speed I need (2kHz) by software alone, even with a more powerful controller. He told me a good solution would make use of the timers and counters of the chip, but that’s way beyond my ability (and I don’t even know if Arduino provides such a low level control).

I’d be grateful for any suggestion. I am open to using a different hardware.

Why not use a chiptkit - 32 bit arduino compatibility… with loads more speed

I have no problem generating 300Khz step and direction pulses for stepper motor drivers (Compumotor) from the ChipKIT UNO32 or MAX32 boards. So it is possible to do. And I do it almost entirely in software. Just one 300KHz ISR, and then inside there the code decides if a step should be taken or not each time the ISR fires. For two axis, we only use about 20% of the CPU.

Even with a far less powerful processor, 2Khz is no sweat, if you do it right.

*Brian

check out http://forum.arduino.cc/index.php?topic=226492.0 it may be useful to you