I am currently in the process of constructing a simple trash compactor project. I am planning to use the L16-P actuator to simulate the movement of the compactor from the top of the container.
As I understand from the Actuonix website, it is stated that the -P series of actuators are best used with the LAC board in order to fully utilize its functions. However, I would like to check if there are instances whereby such actuators can be used with an Arduino without requiring the LAC board.
I only need the actuator to function like a simple linear servo and I also have no access to an LAC board, which is why I am asking if it is possible to utilize the actuator without said board.
If so, may I know what would be the wiring requirements? I understand that the actuator has to b e powered seperately given its 12v requirement, but how would I wire the actuator to the arduino itself in this case? e.g Which colour wire will connect to the data pin of the arduino?
I would also like to mention that I am a beginner at electronics and Arduino. Therefore, I would really appreciate it if the information can be kept simple for my understanding haha
DrDiettrich:
Which model option do you use? The -P option is not described in the data sheet. The -R option is a (5V) Arduino compatible servo model.
Oh I am using the -P option. It is listed in the datasheet under Option P – Potentiometer Position Feedback.
The datasheet mentions the following:
The L16 –P actuator can be used as a linear servo by connecting the actuator to an external controller such as the LAC board offered by Actuonix. This control board reads the position signal from the L16, compares it with your input control signal then commands the actuator to move via an onboard H-bridge circuit. The LAC allows any one of the following control inputs: Analog 0-3.3V or 4-20mA, or Digital 0-5V PWM, 1-2ms Standard RC, or USB. The RC input effectively transforms your L16 into a linear servo, which is a direct replacement for any common hobby servo used in RC toys and robotics. Refer to the LAC datasheet for more details.
However, I would like to see if anyone has ever tried to run it as a linear servo without the LAC board
The actuator is just a geared, brushed D.C. motor driving a lead screw, with a potentiometer or encoder for position feedback.
You need an H-bridge motor driver at minimum, and some motor drivers, like the LAC board or Pololu's JRK controllers, have Arduino- or RC-compatible servo inputs.
jremington:
The actuator is just a geared, brushed D.C. motor driving a lead screw, with a potentiometer or encoder for position feedback.
You need an H-bridge motor driver at minimum, and some motor drivers, like the LAC board or Pololu's JRK controllers, have Arduino- or RC-compatible servo inputs.
Understood, I do have access to a L293D H-bridge chip, would this be able to drive the L-16P actuator?
Yes. The stall current of that actuator is 650 mA at 12V, which is well within the capability of the L293D. But the L293D won't interpret servo commands.
A simple approach would be to use the L293D to drive the actuator "full on" until the feedback voltage is "close enough" to the target position, or for a trash compactor, until an end-stop switch is set.
For more accurate positioning, most people would probably use the PID method.
jremington:
Yes. The stall current of that actuator is 650 mA at 12V, which is well within the capability of the L293D. But the L293D won't interpret servo commands.
A simple approach would be to use the L293D to drive the actuator "full on" until the feedback voltage is "close enough" to the target position, or for a trash compactor, until an end-stop switch is set.
For more accurate positioning, most people would probably use the PID method.
Thank you so much for the pointer!
I would also like to clarify when you mention about the feedback voltage being "close enough", can I do this by using analogWrite(pin,dirspeed)? In doing so, dirspeed would refer to duty cycle value which to my knowledge would be between 0 to 255. ( feel free to correct me if I am wrong )
I was thinking this would be possible since this is how I would usually control the speed of a typical DC motor when using the L293D.
Establish a relationship between the feedback voltage (analog input reading) and the position.
Decide on a target position
Set the motor driver to full on, in the desired direction
In tight loop, measure the feedback voltage, compute the current position and compare with target
4a. Stop the motor when the current and target position are "about equal".
I'll leave it to you to decide on the meaning of "about equal".
A motor cannot be stopped immediately. A (PID...) controller has to decrease the motor speed gradually when the desired position is to be reached soon. At some minimum voltage (duty cycle) the motor will stop, hopefully close enough to the intended position.