Using encoders

Hello, A few months ago, I started a project using a Gator Plus microprocessor (Arduino compatable). My project was to feed flat wire into a cut off machine and cut that wire to 6 different lengths within ±.015 tolerance on length. I used the above mentioned processor, a stepper motor and motor controller, and other components to get the job done. For me, this was the third most complex piece of equipment I've built, and to be honest, I'm concerned about it's accuracy due to slippage and some rather peculiar motor behavior. From time to time, when I power up the system, the stepper motor jumps, when I turn the motor off during an operation cycle, it will rotate backwards up to approx 5 degrees.....very strange. Motor and motor controller are from http://www.anaheimautomation.com/ and from what I can see, their quality is top notch. I'm thinking electrical noise maybe some of the problem in regards to motors jumping and reversal, but I do have a problem with slippage of the wire between the diamond coated pinch rollers powered by the stepper motor. The stepper motor and controller will handle a lot more force than this system is requesting, so I'm not over taxing the motor and its controller. Slippage is because of a loss of traction that can happen when there there is an excessive amount of coil set, that I'm trying to remove by drawing the wire through a set of 5 straightening rollers.

Here is my question: I want to integrate a separate system to read the amount of wire being pulled into the straightener. I figure I can use an optical encoder, another Arduino based processor, and send the number of pulses to a LCD to be read by the operator, and at some point, send this information to to my Gator Plus and have it compare the number of pulses against what I've determined to be adequate in order to produce a proper length part. Can anyone recommend a brand and model of encoder to use? Low rpm (10 rpm or so), but a lot of usage (will run an 8 hour shift). My motor controller uses micro steps and they range from approx 700 to 1600 to cover the various lengths of wire I have to cut. I might want the encoders read Arduino to notify the Gator that delivery has been met. This is a "checks and balances" concept. I do not like using interrupts as my experience with that has shown that when an Arduino receives an interrupt signal, it shuts down everything else its controlling to process the instruction set the interrupt requests. Any idea's are welcome...

Thank you, Cris

From time to time, when I power up the system, the stepper motor jumps, when I turn the motor off during an operation cycle, it will rotate backwards up to approx 5 degrees.....very strange.

This is somewhat expected. Imagine if the stepper motor is in the "11" position (i.e., in the 3rd position of the sequence 00-->01-->11-->10). If you just turn the power off then "11" can quickly go to "00" which represents two motor steps. If one motor step is 3.6 degrees then this could explain up to 7.2 degrees of motion.

Not sure on the encoder issue. I'm trying to puzzle out how many encoder pulses per revolution you'll need based on your numbers but can't figure it out. Are you looking for something like this?

http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=516-2030-ND

-- The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

RuggedCircuits, That would work, but I'm thinking more in live with with a sealed unit. I can mount a friction roller on encoders armature and have it rotate using a small amount of pressure against the wire using a pinch roller. I guess what you are saying about the stepper motor movement is it seeking a position when energized. I was always under the impression that when not being pulsed, all coils are energized and act like a brake.

Thanks, Cris

I guess what you are saying about the stepper motor movement is it seeking a position when energized. I was always under the impression that when not being pulsed, all coils are energized and act like a brake.

Yes, that's true, but you mentioned the unexpected movement happens when you first power on or when you power off.

-- The DIN Rail Mount kit for Arduino: quickly attach your Arduino to standard DIN rail

How about a relay to the stepper power that energizes a moment after the Arduino is fully powered up.

Mark