I need some help figuring out how to control several stepping motors with arduino.
before i ask:
1- The motor specifications are 3.25V, a1.3A, and 2.5 Ohms
2- i don't actually need to control the step of the motor, i pretty much want to do a simple on/off triggers to either rotate left or right, and yeah i have to use this exact motor, (it's a project from my boss where he wants to use an old machine with few modifications)
3- I tried to look online for motor drivers but what I found is for high voltages
4- I have a main power source which is 12 volts, i will have two step down regulators to bring one for the Arduino and one to supply to all motors in parallel
My questions are:
Am i approaching point number 4 correctly? Or do you have another way to bring down the voltage for the motors?
How to drive these motors if i can't find any suitable motor driver module online that works with this low voltage? Any other way to deal with it? can i actually not use the driver and use something else instead (like a MOSFET)?
I have minimal (if any) knowledge in electronics and circuits, any help would be so much appreciated
EDIT: here is a picture of the motor i'm using, unfortunately, I couldn't find the datasheet of this motor or actually any information about it online
You need to control steps to move a stepper motor.
The higher-voltage stepper motor drivers can use PWM to limit the average voltage and current through the motors to spec. Use one of the higher voltage stepper motor drivers, and adjust the current to match your motor.
So basically I could use the L298N for example?
But how would PWM change the voltage? these drivers are powered by the external power supply and they operate at 5-35V range.
How would I use this for my motor that operates at 3.25v?
Can't I simply control as if it was a DC motor? I don't care about speed/torque i just want an on/off right/left kinda control
No, you cant control it as a normal DC motor. Stepper motors do not have a built-in commutator so they need external logic to switch the power through their coils as they turn.
No, a stepper motor needs a certain sequence to the motor coils to make it move. The sequence is provided by a driver. The driver will receive step pulses and output the sequence to the motor coils.
Please reconsider that. The L298 is an ancient, inefficient and not very good DC motor driver. They are even worse stepper drivers.
Modern stepper motors use current controlled drivers. The voltage rating on the motor is not really relevant. You can use 12V (or up to the limit of the driver) and you would set the driver to limit the motor coil current.
What is 'several' ? How many do you want to drive in parallel. And what rpm do you want to achive?
Can you tell e little bit more about this PSU? What power can it deliver?
As already stated, the rated voltage of the motor is fairly unimportant. Modern stepper drivers control the current through the coils, and they even work better with higher voltage ( within their the specs, of course ). To select a suitable current control stepper driver, the current is important - forget about the voltage of the motor.
Don't use the ancient L298 driver. It's very inefficient and not a suitabel driver for your steppers.
There are libraries, that make it nearly as easy as controlling a DC motor.
What Arduino board are you using?
Seven motors should be powered in parallel but not necessarily on altogether at the same time all times. For example, based on user input, I might switch on only 3 or maybe only 6 of them or maybe all of them.
12V 20A DC
I will use the A4988 Stepper Motor Driver, as it is available easily where I live and I found many tutorials on how to wire it with Arduino and with a capacitor and a 12V power supply
Arduino Mega 2560, Can you share the names of these libraries with me please?
If it is possible that all run in parallel, you must design your project accordingly. No matter if they allways run im parallel.
You did not answer the question about the rpm you want to achieve. This is especially important when running up to 7 motors in parallel. And do you intend to use microstepping? This reduces the possible max rpm too.
That should be more than enough.
If you don't need the full torque of the motors, you should adjust the current to less than 1.3A. Driver and motor will stay cooler.
The most commen used library is AccelStepper. But especially with 7 motors the max rpm is fairly low. An alternative could be my MobaTools library. But by default it can handle only a max of 6 steppers. When using more than 2 steppers it is faster than Accelstepper. If you don't use other features of the lib, you can drive 7 steppers by changing a define in MobaTools.h. Simply turning a stepper is really easy with MobaTools. See the MinimumStepper example.
If running with no microstepping, you may find that, at certain step rates, the motors will chatter and miss steps. That could be from resonance. Microstepping is one way to help to mitigate the resonance effects.
A peristaltic pump may be well enough damped, but be aware of the possibility.
@arta_botak, it's not so ideal to hijack an already solved topic. You're better of if you start your own topic with some more details (including your code).