I’ve been using a single axis stepper with it’s own on board controller and interfaced by hypertermanil from a PC. From hyperterminal you can access a memory profile and with simple language you tell the motor how many steps, velocity, torque, acceleration and so on. Via keyboard commands you can start and stop the motor as well as vary the velocity within a pre set range.
For what I need it works well. The down side is running it from a PC. It is a unipolar motor so I’m not wanting to adapt that particular motor.
I’m looking to start fresh with a Dual Shaft Nema 34 CNC Stepper Motor 8.5Nm(1204oz.in) 34HS46-5004D
Motor Type Bipolar Stepper
Step Angle 1.8°
Holding Torque 8.5Ncm(1204oz.in)
Rated Current/phase 5.0A
Phase Resistance 1.0ohms
Recommended Voltage 24-60V
Without doing any real thinking on my own I was intending on using there recommended driver:
MA860H Stepper Motor Driver Max 80VAC or 110VDC with 2.4-7.2A
High performance, cost-effective
Supply voltage up to 80VAC or +110VDC
Output current up to 7.2A
Pure-sinusoidal current control technology
Pulse input frequency up to 300 KHz
TTL compatible and optically isolated input
Automatic idle-current reduction
16 selectable resolutions in decimal and binary, up to 51,200 steps/rev
Suitable for 2-phase and 4-phase motors
Support PUL/DIR and CW/CCW modes
Short-voltage, over-voltage, over-current and short-circuit protection
Last time I messed with a micro controller was 20 years ago. “P” basic was the language for the basic stamp. Anyhow, I don’t remember much so I feel like I’m starting over from scratch.
So some questions come to mind. The motor that I use has all its features built into it as a singe unit. The PC is needed to tell it what you want it to do, but does not run the motor per say.
Before I get to a question let me explain more what I need to do via Arduino Uno. As best I can tell the Uno has all the digital and analog I/O’s that I would need and I hope enough memory for the code.
Right now I run the motor by switching between three distinct profiles. Steps, torque, and acceleration are all the same. Direction of rotation and velocity are the only things that are different. And on one specific profile I have to adjust velocity on the fly via keyboard.
This is what I want from Uno: 3 start buttons, each connected to code that sets specific velocity and direction. Once pushed, the motor will run until it completes the number of steps OR I touch the stop button. One stop button. no matter what start button was used the motor will come to a stop.
Potentiometer input to slow the velocity down and speed it back up on the fly.
That covers the tasks. I would want some kind of instruction in the code so once a start button is touched and the motor is running it will not accept input from the other two start buttons until the motor has run the required number of steps or the stop button has been pushed.
So for the questions:
1 from the overview does this sound like it is within the abilities of the UNO?
2 Motor shield? I need to do more reading on it but would this be required?
3 UNO compatibility with the driver? The only distinction I understand right now on drivers is they have to be able to handle the amp need of the motor, beyond that they all look alike to me at this point.
4 would it be safer to develop the code and hardware on a cheap stepper / driver or are drivers unique enough that what is developed needs to be done specific to that driver?
My thanks to any one who has input on this project.