I would highly appreciate it if someone could guide me to a helpful schematics or document where I could learn how to and with which boards to build a system that I could control 120 DC motors.
I want to be able to control the motors' direction and keep the speed to the max.
I am not worried about the code because I am a programmer and I can figure it out. I just need help with finding the right hardware and instructions for wiring them.
Sincerely,
Henry
Controlling 120 DC motors with one Arduino board.
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- Hdemirchian
- Posts: 3
- Joined: Sun Oct 10, 2021 5:26 pm
- sj_remington
- Posts: 1021
- Joined: Mon Jul 27, 2020 4:51 pm
Re: Controlling 120 DC motors with one Arduino board.
Will each motor be controlled individually?
Brushed or brushless motors?
It is usually not possible to instantaneously switch motor direction without damaging the motor, so the condition of maximum speed at all times is unrealistic.
Is there a feedback signal from each motor? If so, what type?
What type of motor controller and/or type of control signal will you be using?
Note that the "right hardware" for motor control depends entirely on the voltage and current or power rating of the motor, so please specify those parameters, or post a link to the motor data sheet or product page.
Brushed or brushless motors?
It is usually not possible to instantaneously switch motor direction without damaging the motor, so the condition of maximum speed at all times is unrealistic.
Is there a feedback signal from each motor? If so, what type?
What type of motor controller and/or type of control signal will you be using?
Note that the "right hardware" for motor control depends entirely on the voltage and current or power rating of the motor, so please specify those parameters, or post a link to the motor data sheet or product page.
- Hdemirchian
- Posts: 3
- Joined: Sun Oct 10, 2021 5:26 pm
Re: Controlling 120 DC motors with one Arduino board.
Sorry for not including the motors' specs with my question.
Here they are:
Will each motor be controlled individually?
Yes. Some of them will go up, while others will go down. Some will not move at all. And some will stop halfway, while others will move all the way to the end of the screw length.
Brushed or brushless motors?
Brushless motors. They are DC 6V GA 12-N20-M4 500RPM Micro Speed Gear motors with a metal gearbox.
It is usually not possible to instantaneously switch motor direction without damaging the motor, so the condition of the maximum speed at all times is unrealistic.
That's fine. They will either be moving up or down and will stop at the end. They will not change direction on a fly.
Is there a feedback signal from each motor? If so, what type?
No feedback signal. It only has 2 inputs.
What type of motor controller and/or type of control signal will you be using?
I am not sure about the controller. I am a newbie. I have an Arduino board and a bunch of Onyehn 16 Channel PWM Servo Motor Driver PCA9685 IIC Module 12-Bit to be able to connect 120 motors.
Here they are:
Will each motor be controlled individually?
Yes. Some of them will go up, while others will go down. Some will not move at all. And some will stop halfway, while others will move all the way to the end of the screw length.
Brushed or brushless motors?
Brushless motors. They are DC 6V GA 12-N20-M4 500RPM Micro Speed Gear motors with a metal gearbox.
It is usually not possible to instantaneously switch motor direction without damaging the motor, so the condition of the maximum speed at all times is unrealistic.
That's fine. They will either be moving up or down and will stop at the end. They will not change direction on a fly.
Is there a feedback signal from each motor? If so, what type?
No feedback signal. It only has 2 inputs.
What type of motor controller and/or type of control signal will you be using?
I am not sure about the controller. I am a newbie. I have an Arduino board and a bunch of Onyehn 16 Channel PWM Servo Motor Driver PCA9685 IIC Module 12-Bit to be able to connect 120 motors.
- sj_remington
- Posts: 1021
- Joined: Mon Jul 27, 2020 4:51 pm
Re: Controlling 120 DC motors with one Arduino board.
Those are BRUSHED D.C. motors, basic specifications here: https://abra-electronics.com/electromec ... 6v500.html
For bidirectional travel and stop, you need an H-bridge for each motor, capable of easily handling the start/stall current of the selected motor (up to 1 Ampere). That means at least two digital outputs per motor, or at least 240 digital outputs total, connected to 120 single or 60 dual H-bridge chips.
How will the end be detected, and the "stop" be accomplished? You can't just run a motor into an end stop and leave it to cook.
If end detection is done digitally by the Arduino, you will need at least 120 digital inputs for the system, plus another 120 digital inputs if both ends of the travel must be individually detected. So, more than 480 port pins total for the project.
This is not possible with a single Arduino. It could be done with a few dozen Arduinos (say, one Arduino per four motors), using port expanders. The project is guaranteed to generate splitting headaches for anyone involved.
For bidirectional travel and stop, you need an H-bridge for each motor, capable of easily handling the start/stall current of the selected motor (up to 1 Ampere). That means at least two digital outputs per motor, or at least 240 digital outputs total, connected to 120 single or 60 dual H-bridge chips.
and will stop at the end
How will the end be detected, and the "stop" be accomplished? You can't just run a motor into an end stop and leave it to cook.
If end detection is done digitally by the Arduino, you will need at least 120 digital inputs for the system, plus another 120 digital inputs if both ends of the travel must be individually detected. So, more than 480 port pins total for the project.
This is not possible with a single Arduino. It could be done with a few dozen Arduinos (say, one Arduino per four motors), using port expanders. The project is guaranteed to generate splitting headaches for anyone involved.
- Hdemirchian
- Posts: 3
- Joined: Sun Oct 10, 2021 5:26 pm
Re: Controlling 120 DC motors with one Arduino board.
Thanks for your help.
I am planning to use a timer (programmatically) to figure out if the motor is at the end or not.
If we go with that route (in other words without extra port usage for detecting the end of the screw), do you think I can use just one Arduino and a bunch of Onyehn 16 Channel PWM Servo Motor Driver PCA9685 to connect all of my 120 motors and control them?
I actually started connecting those drivers and running them, but I was losing the power of the motors. They were going much slower than if they were connected directly to the power source.
I am planning to use a timer (programmatically) to figure out if the motor is at the end or not.
If we go with that route (in other words without extra port usage for detecting the end of the screw), do you think I can use just one Arduino and a bunch of Onyehn 16 Channel PWM Servo Motor Driver PCA9685 to connect all of my 120 motors and control them?
I actually started connecting those drivers and running them, but I was losing the power of the motors. They were going much slower than if they were connected directly to the power source.
- sj_remington
- Posts: 1021
- Joined: Mon Jul 27, 2020 4:51 pm
Re: Controlling 120 DC motors with one Arduino board.
No. You need an H-bridge for each motor.a bunch of Onyehn 16 Channel PWM Servo Motor Driver PCA9685 to connect all of my 120 motors
A timer won't work reliably to determine motor travel endpoints, leading to probable destruction of the motor.
- sj_remington
- Posts: 1021
- Joined: Mon Jul 27, 2020 4:51 pm
Re: Controlling 120 DC motors with one Arduino board.
Perhaps brushed DC motors are not the best or even a good choice to solve your mechanical problem.
Consider explaining the actual goal of the project to forum members, and this thread might progress along more useful lines.
Consider explaining the actual goal of the project to forum members, and this thread might progress along more useful lines.
- adafruit_support_bill
- Posts: 88154
- Joined: Sat Feb 07, 2009 10:11 am
Re: Controlling 120 DC motors with one Arduino board.
I agree that more information about the application would be helpful. As sj_remington says, open-loop control via timers is not a good way to go. Motor speed will vary due to numerous variables and will either come up short of the destination position, or stall out against the physical limits.
There are some tricks you can do with limit switches that don't require actual feedback to the processor. e.g. https://www.hamradio.me/station/elevato ... tower.html
There are some tricks you can do with limit switches that don't require actual feedback to the processor. e.g. https://www.hamradio.me/station/elevato ... tower.html
Please be positive and constructive with your questions and comments.