Best method for powering/controlling these two linear actuators?

Hi all,

I'm currently preparing for my first Arduino project. I'd like to convert my standard desk to an adjustable standing desk with the use of two linear actuators. This is the actuator I will be using Actuator. I know progressive automations provides a motor control box that would easily accomplish what I desire, but I figured it'd be neat for me to get into Arduino!

For the linear actuators, I don't require speed control. All I want to do is, with the press of a button, raise the desk platform to the height which I find most comfortable, and then be able to reset the height back to 0 with the press of another button.

My problem lies within the DC motors in the actuators and how much voltage and current they will require. The motors require 12V and 12A under full load. I'm pretty ignorant when it comes to what all types of electrical components there are, so I sure would appreciate some help with getting started on the power situation.

I'm planning on using the Uno R3.

Also, I've attached a picture of the desk with the actuators in place.

Thanks!

Are you wanting simple up or down positions or completely variable in between top and bottom?

You need to be able to reverse the power connection to the motors so a bridge control would be needed. It will need to be able to carry the rated current plus a safety factor.

You can set a top position via switches and drive to that position then stop.

Suitable sensors for variable height would be

Weedpharma

"Are you wanting simple up or down positions or completely variable in between top and bottom?"

I was originally planning on just having two height settings, but now that you mention multiple heights, I don't think it'd be that difficult to set up. I'm sure I could program a couple buttons so that each click raises or lowers the desk by two inches or so. Then maybe have another couple buttons that aren't variable, and just go to my maximum preferred height and back to zero for the other.

I mainly require help in the power department. These actuators would need to be in parallel so that they run at the same speed. This means that I would need a minimum of 24A and 12V output on my power supply, right?

You will need a large power supply for those actuators.

You will need a motor drive circuit, probably an H-bridge, with enough load current capacity to supply those motors, and the ability to be controlled by an arduino.

You will probably need some position feedback sensors, such as limit switches, to detect the position of your desk. Otherwise, it will be difficult, if not impossible, to keep the two actuators synchronised with each other, and you would end up with a crooked or tilted desk.

For the power supply, see if you can find a server power supply. These have high current capability at 12v. Some need minor mods to turn them on. There is a fair amount of information on the net.

I have some that are rated ate 70A.

Weedpharma

A switch like below might be all you need.

http://comingsoon.radioshack.com/dpdt-20-amp-momentary-flip-switch/2750709.html#.VWK2I9LbLiw

You'll need a level sensor to keep the actuators in sync so if one starts to get ahead the controller can slow it down a little or throw a fault and E-Stop.

Use only one actuator and provide a mechanical linkage to keep the desk horizontal.

That way you won't need sensors or an Arduino!

These actuators have been designed so that they always stay in sync, so assuming they get a signal at the same time, they should stay with each other, I believe. I'd feel way too nervous about using only one actuator. My desk measures 75 inches by 35 inches, so it's a fairly decent sized platform, which I believe justifies two actuators. Also, the actuators have built in limit switches at both ends of the range of motion, so even it they managed to get a little out of sync, they'd automatically end up level. I'd obviously prefer them to be in sync, however.

@zoomkat - That switch's current rating is below that which I would require, isn't it? It's rated for 20A, I think I'd be sending 24A through it.

@Archibald - As I stated originally, I know there are much easier ways to accomplish what I want. I want to get into Arduino, though, and I figured this is as good of a project as any.

Those actuators draw 12 amperes continuously only when they are pushing or pulling the full load (either 100 or 400 pounds, depending on which gear ratio you choose). They will draw quite a bit less moving a desktop up and down, however the startup current will momentarily be the full load current, and your driver and motor power supply must be able to handle that.

I use these drivers for very similar actuators, and am very pleased with their performance.

jremington:
. . . . . . however the startup current will momentarily be the full load current, and your driver and motor power supply must be able to handle that.

I believe the starting current could be higher than the full load current but I'm not an expert on motors.

I think I've found a power supply that will be sufficient for my needs. Here is the link: Power Supply

@Archibald - Yes, I've read that a DC motor could require much, much more current than what it's full load current rating is. How do I account for something like that? If I have a 30A power supply, as is the one linked, and I have two actuators that require 12A each when under full load, the initial current requirement would likely be much greater than 30A if the combined required amperage under full load is 24A. Will the motors just move slower, or would the lack of current result in the motors stalling?

All of my electronics knowledge comes from a physics 2 class I just finished in college. That class is mainly theory, so I'm definitely unsure of how motors act and such.

@jremington - I'm sure I'll be forced to use motor drivers like that. All of the motor drivers I've found that can control two bidirectional motors cannot support the amperage that I'd need to drive through them. I'll continue searching because I'd like to only have to use one driver, but I'll keep your suggestion in mind. Thank you.

Edit: I just found a motor controller that fits my needs, I think. A little expensive, but I'd say it's worth it. Link: Sabertooth Dual 12A 6V-24V R/C Regenerative Motor Driver - RobotShop

You are way ahead of yourself. You need to fix your mechanical design before you even try to get the electronics working. That desk is not a good design from what we can see from what you have shown us.

Plus you need someway to hold up the desk while extended or the motors will turn when no power is applied.

TehPl0x:
I think I've found a power supply that will be sufficient for my needs. Here is the link: Power Supply

That power supply would have to be put inside a suitable enclosure to meet electrical safety standards.

TehPl0x:
@Archibald - Yes, I've read that a DC motor could require much, much more current than what it's full load current rating is. How do I account for something like that?

It's accounted for by back-EMF when the motor is rotating:
[http://en.wikipedia.org/wiki/Counter-electromotive_force[/emf]

TehPl0x:
If I have a 30A power supply, as is the one linked, and I have two actuators that require 12A each when under full load, the initial current requirement would likely be much greater than 30A if the combined required amperage under full load is 24A. Will the motors just move slower, or would the lack of current result in the motors stalling

That power supply has overload protection which could come into play but I expect the motors would start. As you are controlling this by an Arduino you could start the actuators at slightly different times. That's a good excuse to use an Arduino for this project!

TehPl0x:
I just found a motor controller that fits my needs, I think. A little expensive, but I'd say it's worth it. Link: Sabertooth Dual 12A 6V-24V R/C Regenerative Motor Driver - RobotShop

The Pololu driver seems to offer better protection against inductive spikes.](Counter-electromotive force - Wikipedia)

Plus you need someway to hold up the desk while extended or the motors will turn when no power is applied.

I doubt that applies to these linear actuators.

zoomkat:
I doubt that applies to these linear actuators.

I agree. I expect the lead screw inside the actuator has a fairly fine pitch so would not turn.

cbrunnem:
You are way ahead of yourself. You need to fix your mechanical design before you even try to get the electronics working. That desk is not a good design from what we can see from what you have shown us.

The design will be fine. I didn't take the time to draw any of the supports that will secure the bottom of the desktop to the end of the linear actuators. I'm not a fan of taking risks, especially when it comes to expensive electronics. The actuators will be inside two wooden "shells", if you will. As shown in the picture, the outer shell will support the inner shell as it rises upwards with the desk. I might add some extra support, but the dimensions of those shells are pretty big, so I think they'd provide a lot of support even alone.

Archibald:
That power supply would have to be put inside a suitable enclosure to meet electrical safety standards.

I wasn't planning on having this ugly thing visible. I'll definitely come up with some sort of box for it. Thanks.

Archibald:
That power supply has overload protection which could come into play but I expect the motors would start. As you are controlling this by an Arduino you could start the actuators at slightly different times. That's a good excuse to use an Arduino for this project!

Depending on how long the initial spike in current demand is, this may be a good idea. I'll likely control how far the actuators go with a time input, so either way they'll end up even, I suppose.

Archibald:
The Pololu driver seems to offer better protection against inductive spikes.

I would have to use two of the Pololu drivers. I'm unsure of how I'd need to wire them. This is why I wanted a driver that handled two motors. I'll do some more searching, maybe I can find a wiring diagram.

Edit: I found another dual motor driver, this one by Pololu. Pololu - Dual VNH2SP30 Motor Driver Carrier MD03A

@zoomkat - You're correct. I'm getting the 400lb gearing for these actuators. They go slower, but I'd prefer the power. They can hold the maximum 400lbs at any point throughout the range of motion, powered or not.

TehPl0x:
I would have to use two of the Pololu drivers. I'm unsure of how I'd need to wire them. This is why I wanted a driver that handled two motors. I'll do some more searching, maybe I can find a wiring diagram.

For two Pololo drivers, if you want both actuators to start and stop at the same time, connect one output from your Arduino to both INA inputs and another output from your Arduino to both INB inputs. You would probably want to connect both PWM inputs to 'high' as described in the datasheet. However if you want to start and stop the actuators at slightly different times, make individual connections from four Arduino outputs to each of the INA and INB inputs.

Looking quickly at the data for the Sabertooth driver, it seems to be aimed firmly at the model radio control (RC) market. The data is rather lacking but I'm fairly sure the input signals have to be pulse-width-modulated (PWM) as obtained from an RC receiver. Each motor is driven by a PWM waveform at higher "ultrasonic" frequency to give speed control. So to use the Sabertooth driver I think you would need to get your Arduino to emulate PWM signals from an RC receiver. That's not difficult but is something you may wish to avoid.

TehPl0x:
I'm getting the 400lb gearing for these actuators. They go slower, but I'd prefer the power. They can hold the maximum 400lbs at any point throughout the range of motion, powered or not.

Four adults could stand on your desk at it will still go up!

You might check out the below H-bridge. You probably could parallel the actuator motors from this H-bridge. Your actuators appear to not have internal position feedback pots or encoders, so you may have to rely on some type of timed movement for desk positioning.

http://www.ebay.com/itm/Semiconductor-BTS7960B-Motor-Driver-43A-H-Bridge-Drive-PWM-For-Arduino-F5-/291352694364?pt=LH_DefaultDomain_2&hash=item43d5f94e5c

Archibald:
For two Pololo drivers, if you want both actuators to start and stop at the same time, connect one output from your Arduino to both INA inputs and another output from your Arduino to both INB inputs. You would probably want to connect both PWM inputs to 'high' as described in the datasheet. However if you want to start and stop the actuators at slightly different times, make individual connections from four Arduino outputs to each of the INA and INB inputs.

Ah, okay. That's pretty simple actually. Thanks!

Archibald:
Looking quickly at the data for the Sabertooth driver, it seems to be aimed firmly at the model radio control (RC) market. The data is rather lacking but I'm fairly sure the input signals have to be pulse-width-modulated (PWM) as obtained from an RC receiver. Each motor is driven by a PWM waveform at higher "ultrasonic" frequency to give speed control. So to use the Sabertooth driver I think you would need to get your Arduino to emulate PWM signals from an RC receiver. That's not difficult but is something you may wish to avoid.

Oh wow. I can't believe I did this, but I accidentally linked the RC variant of the Sabertooth 2x12 driver. Here's the correct one Sabertooth. Yeah, the RC one probably wouldn't work well for me. Lol, my apologies.

zoomkat:
You might check out the below H-bridge. You probably could parallel the actuator motors from this H-bridge. Your actuators appear to not have internal position feedback pots or encoders, so you may have to rely on some type of timed movement for desk positioning.

Other than the cost difference, are there any significant differences between this H-bridge and what @Archibald is suggesting? If there are no performance sacrifices or extreme difficulties with the H-bridge, I'd probably rather go that route just for the simple fact that it's nearly five times cheaper.
If the linear actuators are in parallel, they should move at the same speed. I watched a youtube video produced by progressiveautomations, and the guy said they will always move at the same rate. I'm not sure how they manage to produce this consistency, but that's just what he said.