Background:
I am considering a project to use a treadmill motor to run a table lift mechanism - heavy work table that will hang by one edge when stored. The motor is permanent magnet dc motor with brushes, rated at 130 vdc, 21 amps. I have run the motor on the bench with the original MC-60 motor controller, using 5K pot to control speed. The controller uses PWM to drive the motor.
The motor would be run at the lowest possible speed, and only momentarily while it raises/lowers the mechanism 15 inches.
Question:
I wanted to use Arduino-controlled relays to control direction of the motor. Start, stop and speed could be done with the pot or switched resistors, I'm sure and I think I could manage that. But for direction, I was thinking of reversing the motor wires thru a relay shield. But, it seems the heftiest shields I can find are rated AC250V 10A ; DC30V 10A. Maybe that's sufficient when I find out what the equivalent voltage and current draw is at the low speed I plan to use. But, I'm not clear on that - anyone know how they would go about controlling higher DC voltage/current?
PS - I am aways from actually being able to work on this, so I probably won't be able to pursue an active dialogue here for a while. I'm still collecting my thoughts.
DC motors have almost no power at low speeds.
treadmill motors are often 3,000 plus RPM
you would be well served to add pulleys or gearing to allow the motor to operate in a range of the motor that will allow for efficient use.
also, once you add any pulleys or gears, the delivered torque will increase proportionally.
you may find a much smaller motor with gearing would be better suited to the application.
Also, when you apply power to your motor, the motor will spin up to speed. when you remove power, it will continue to spin until the internal flywheel effects complete their transfer of power. you may find that you will get more than a few revolutions from the drive train after you remove power.
All: Thanks for your comments - got me thinking a little deeper. I'll confess my situation that has me held up temporarily from actually experimenting with ideas: I blew out my motor controller a couple weeks ago by connecting my scope ground to MC logic ground and discovered that was a bad idea - sparks and smoke! I have found faulty parts (I hope all) which I will replace the weekend. Either that fixes it, or I will get another cheap/free treadmill on Craigslist. This is to explain any unresponsiveness I may have in the near future.
dave-in-hj:
That shield looks beefier so more promising than the others I've seen. I haven't learned why relay contacts are rated for lower dc voltage than ac - e.g., this one is 240vac/30vdc - but hope this will still be OK for my situation.
My plan is for the Arduino to control speed by manipulating or simulating the pot, and only switching motor direction when speed is zero. Your comment to this effect is what led me to think a little deeper about relay requirements: Does the contact current rating mean maximum that should be switched, or maximum that should be conducted? I have been assuming max conducted - like wire size is.
As for mechanical advantage, I will be driving a scissors jack with the motor which should allow for some rpms.
DrDiettrich:
That's where I have been pulled, too based on this high power requirement. As soon as I can experiment with this, I want to see if in reality the effective voltage and current draw are well within ratings of these readily available shields.
Again, thanks for your insights.
PS - Can I ask one quick misplaced question here? In this forum, how do I quickly find my own post(s)?
I hope this thread's not dead. I'm back - got my mc60 motor control board fixed. Now, back to the original question: use Arduino to reverse direction on a treadmill motor used to operate a table lift mechanism.
Since last time here, I have checked the motor drive current, and found it to run at .6 amps with no load, and when I apply brakes to shaft, goes up to 3.5 amps. This is running at low end of speed, where I will operate it.
This leads me to think I can use any of these relay shields that have a 10 amp rating on the contacts. I would run the motor with up & down buttons (hold down to run). Additionally, program the Arduino so that a run signal (up or down) would force a short stop before running. So, there would be no "hot" switching of direction.
Does this sound feasible? Or, any suggested improvements?
Oh, that's true, but I forgot to mention that to operate this lift, I have to be guiding the table at the same time - out of reach from where circuitry would be. That's why I'm hoping to use an infrared remote to have the UNO do the switching.
gpaCook:
I hope this thread's not dead. I'm back - got my mc60 motor control board fixed. Now, back to the original question: use Arduino to reverse direction on a treadmill motor used to operate a table lift mechanism.
Since last time here, I have checked the motor drive current, and found it to run at .6 amps with no load, and when I apply brakes to shaft, goes up to 3.5 amps. This is running at low end of speed, where I will operate it.
This leads me to think I can use any of these relay shields that have a 10 amp rating on the contacts. I would run the motor with up & down buttons (hold down to run). Additionally, program the Arduino so that a run signal (up or down) would force a short stop before running. So, there would be no "hot" switching of direction.
Does this sound feasible? Or, any suggested improvements?
Thanks
Glad you got it fixed. If you think about treadmills for a minute, you will realize the motor needs to apply the same torque at low speed as it does at high speed. It needs to move the belt with a 200+ lb weight on it, no matter what speed. You will discover the controller uses pulse with modulation to control the speed. What ever meter you are using shows less current because it is averaging the current over time. You need to watch the current with your oscilloscope powered through an isolation transformer so it doesn't short out the treadmill controller.
As noted in another post, you cannot interrupt the motor current while the motor is running. It must be stopped before you reverse + and -.
OK - I have tried to go with the advice I got here, and have attached my input/output plan to use Arduino to control this treadmill motor. I got the relay - a hefty 12v, 20amp dpdt, 100 ma coil. I will use 500ma wall wart to power it.
For background, I have been in electronics from 1950-1980, software development (programmer) 1980-2010. So, I have background to understand this technology, but haven't been messing with anything for like 25+ years. I never even heard of Arduino until I started pursuing this project. So, there will be a mix of experienced & newbie as I go through this.
So, the specific questions I have now are:
The plan look all right as far as Arduino input/output? I'm assuming it can be programmed to know when to start/stop and change direction of motor safely.
Any ideas on how to provide a sensor that would indicate the motor is blocked in transit from lower to higher limit? (It is a shop, and any kind of interference could happen)
If this works in prototype, I was planning to use strip board to make the circuit permanent. But, what about the Arduino connections? It looks like you just push wires in. Are they reliable to support a working device such as this?
You can't drive the relay coils directly from an arduino output - they'll only output 5v/20mA and will burn out if you connect them via a relay coil to 12v.