My application consists of an orbital welding machine. I wonder if it would be possible to control a stepper motor with an Arduino board so that you can control a specific number of degrees and also regulate the speed. I am a beginner with Arduino and I'm finding codes that allow full turns but not a certain number of degrees that you can choose. Is there someone who can help me with this? I would be grateful if someone can give me any clues or share any code that can be modified to achieve this.
The main idea is being able to chose a certain number of degrees of rotation (steps of the motor) and the value of the speed.
Stepper motors work by moving one step at a time. There are frequently 200 steps per revolution which works out at 1.8 deg per step. It will be up to you to calculate how many steps are required for the angle that you need.
The speed of the motor is governed by the interval between successive step signals.
It will be important to choose a motor that can provide enough torque to move your device. Having identified a suitable motor you will then need to identify a suitable stepper driver.
Hi Victorhernaiz,
Yes what he said, don't think I can add any more. I have only played with steppers, but hope to use them in a robot soon, where I will need to know how many steps equal an half or quarter turn of the wheel, etc.
Hi,
A common practise is to make use of step/direction drivers.
They use binary signals for direction and pulses for moving. With no pulses at all they hold torque.
The frequency of the step pulses defines the speed and the amount of pulses the angle.
There are many drivers around which just need Step, Dir and Supply.
Thanks a lot for your time. I appreciate it. My application needs an important torque, 30 Nm, it's needed to use a gearbox considering the stepper motors I've seen don't give more than 9 or 10 Nm. Apart from this I would like to ask you few questions.
What is it a good driver for stepper motors? I don't understand well if you suggest using a driver or a driver and the arduino board at the same time. Do you know if there is any code that I can use for this application or a tutorial where I can learn how to make the proper connections between the arduino, driver and the stepper motor?
Sorry for all the questions.
Thanks again
victorhernaiz:
What is it a good driver for stepper motors? I don't understand well if you suggest using a driver or a driver and the arduino board at the same time. Do you know if there is any code that I can use for this application or a tutorial where I can learn how to make the proper connections between the arduino, driver and the stepper motor?
I thought I answered all those questions in stepper motor basics which I linked to in Reply #1
victorhernaiz:
Thanks a lot for your time. I appreciate it. My application needs an important torque, 30 Nm, it's needed to use a gearbox considering the stepper motors I've seen don't give more than 9 or 10 Nm. Apart from this I would like to ask you few questions.
What is it a good driver for stepper motors?
That's a huge amount of torque. Definitely gearing needed.
What is your speed requirement? Backlash?
Don't worry about the driver until you've chosen a motor and gearing combination,
they determine the driver and power supply. Its like asking "what's a good engine
for a vehicle?" before finding out if you will have a scooter or a bulldozer....
MarkT:
That's a huge amount of torque. Definitely gearing needed.
What is your speed requirement? Backlash?
Don't worry about the driver until you've chosen a motor and gearing combination,
they determine the driver and power supply. Its like asking "what's a good engine
for a vehicle?" before finding out if you will have a scooter or a bulldozer....
Regarding to this comment I would like to ask you if you know the limitations of arduino while running a stepper motor. I know that it works with 5 V and I have seen drivers from, for example the DRV8825 of pololu, that can operate till 45 V and deliver 1.5 A per phase. My question is:
No matter what are the working operations of the chosen stepper motor, are we able to control it using arduino and a more powerful driver? Could you please list the aspects to be taken into account to know this?
By the way the linear speed of my application is really low considering it is for welding, 100 mm/min. I don't know if by mentioning backlash you mean the gap between the gears of the gearbox or anything else. In any case it is needed a smooth movement because the process has to be really accurate. I have read that using a condensator and microstepping in the driver you can get a more accurate rotation of the motor.
victorhernaiz:
Regarding to this comment I would like to ask you if you know the limitations of arduino while running a stepper motor. I know that it works with 5 V and I have seen drivers from, for example the DRV8825 of pololu, that can operate till 45 V and deliver 1.5 A per phase. My question is:
No matter what are the working operations of the chosen stepper motor, are we able to control it using arduino and a more powerful driver?
The voltage that the Arduino works at (5v) is entirely separate from the voltage used to power the motor. Indeed, even if you have a small motor that could work at 5v it would need a separate power supply.
The stepper driver takes the signals from the Arduino (at 5v) and provides suitable power to move the motor at whatever other voltage is appropriate.
I have not seen any Post here about a stepper driver that could not be controlled by an Arduino.
victorhernaiz:
Regarding to this comment I would like to ask you if you know the limitations of arduino while running a stepper motor. I know that it works with 5 V and I have seen drivers from, for example the DRV8825 of pololu, that can operate till 45 V and deliver 1.5 A per phase. My question is:
No matter what are the working operations of the chosen stepper motor, are we able to control it using arduino and a more powerful driver? Could you please list the aspects to be taken into account to know this?
[/code]
Step-rate is one issue - if you go the route of reduction gears and microstepping you many have
to generate a high step rate, which may mean having to use interrupts for higher rates.
By the way the linear speed of my application is really low considering it is for welding, 100 mm/min. I don't know if by mentioning backlash you mean the gap between the gears of the gearbox or anything else.
[/quote]
Speed for a motor is in RPM or radians/second - those are requirements you'll have to work out
from the mechanism used to convert rotation to linear motion. Gears trade speed for torque, so
your low speed at the output might be a high speed at the input to the gears.
Backlash is important only if direction changes during a movement, which probably isn't the case here
(it is a vital parameter for general CNC machines of course)
[quote] In any case it is needed a smooth movement because the process has to be really accurate. I have read that using a condensator and microstepping in the driver you can get a more accurate rotation of the motor.
Thanks. Regards
[/quote]
Again, you need to turn "really accurate" into a requirement (that means numbers, not adjectives), so
you can work out these details.