Shop Canada
Toll Free: 1-800-676-6123
How to control the PA-18 Track Linear Actuator with Arduino controls

How to control the PA-18 Track Linear Actuator with Arduino controls

Adam Morissette
Adam Morissette
PA Engineer

The PA-18 Track Linear Actuator is our largest fixed-length actuator and is commonly used in custom cabinetry, home automation, and robotics. Like many of our actuators, it can be controlled using our selection of Arduino control boards. This article will showcase how you can control the PA-18 with a simple setup that can be easily adapted to fit your application.



  • Arduino IDE

System Connections

The actuator used in this setup requires a 12VDC input voltage and up to 8A of current at full load, these values are much higher than what an Arduino microcontroller is capable of supplying. To avoid damaging the Arduino, the MegaMoto Plus H-bridge is used. The H-bridge can handle the actuators' power requirements and can be easily controlled using the Arduino.

For this system, there are connections from the Arduino to the MegaMoto Plus H-bridge, and to the two pushbuttons. Each pushbutton requires a single input, these are chosen from the Arduino’s available GPIO pins. The H-bridge has four connections to the Arduino, three outputs and one input. The pins used by the H-bridge are preset and cannot be changed.

Block Diagram

Progressive Automations - Blog


Arduino Commands

When connecting to an Arduino, the pins used must be set up in the beginning of the code. The pinMode command is used to define the pins as inputs or outputs. To change what signal the Arduino is sending to a specific pin the digitalWrite and analogWrite commands are used. Additionally, the digitalRead and analogRead commands are used when the Arduino needs to check the signal on a specific pin. In the program below the digitalWrite command is used to enable or disable the H-bridge, and to configure the pins used for the pushbuttons. The analogWrite command is used to set the value for the PWM signal in the range of 0 to 255 to the H-bridge. The digitalRead command is used to check if the pushbuttons have been pressed or released. The AnalogRead is used to measure the current draw by the actuator motor, this is used to verify when the actuator is at the end of its stroke.

Arduino Code

Program Definitions

Progressive Automations - Blog

Program Setup

progressive Automations

 Main Loop


Progressive Automations - Blog

Progressive Automations - Blog

Pushbutton Reading


Progressive Automations

The functionality of this system goes beyond what is showcased in this article, the Arduino microcontroller and MegaMoto Plus H-bridge can be used to implement much more complicated control routines. This setup is capable of variable speed control utilizing the analogWrite command to set the PWM signal. The actuator motor current could be monitored to be used for load sensing to trigger additional commands.

For additional information, please send us an email at, or give us a call at 1-800-676-6123.

Please wait...