Skip to Content

Driving A Linear Actuator Using An Arduino

Driving A Linear Actuator Using An Arduino

You can find linear actuators everywhere. They are found in industries, homes, offices, shopping malls and more.  The devices have applications in window automation, safety door locks, robotics, solar panel controller, agriculture machinery, and much more. 

Linear actuators are easy to use. There are several linear actuators, but the basic operation principle is similar. Linear actuators convert the electrical power into linear mechanical movement with the help of a motor and a pair of switches. 

En este artículo, te llevaré a través de los principios básicos de funcionamiento de los actuadores lineales, cómo construir un controlador de actuador lineal, y cómo utilizar los actuadores lineales con dispositivos Arduino. 

He incluido un diagrama de la interfaz del actuador lineal, un código de ejemplo y he respondido a algunas preguntas comunes que la gente suele tener.

Al final de este artículo, estarás seguro de trabajar con Arduino y actuadores lineales.

Empecemos.

Componentes necesarios para completar el proyecto de actuador lineal basado en Arduino

Componentes de hardware 

Software

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

¿Qué es un actuador lineal?

A Linear Actuator is an electromechanical device that converts circulatory motion into a linear motion. It consists of a motor, limit switches, gears, a lead screw, and a cylinder. The linear actuators come in various sizes and shapes depending on the intended applications.

En las siguientes secciones, le explicaré el principio de funcionamiento de un actuador lineal y los diferentes tipos de actuadores lineales disponibles. 

¿Cómo funciona un actuador lineal? 

A continuación se muestra un dibujo mecánico de un actuador lineal de tipo husillo.

He enumerado las partes críticas de los actuadores lineales y sus funciones. 

Motor - un motor de corriente continua es el corazón del actuador lineal. El motor se conecta a las diferentes partes de los actuadores, que finalmente traen el movimiento lineal. 

Lead Screw – The lead screw converts the rotary motion of the Dc motor into linear motion. I can give you a simple analogy. Think of a screwdriver sending a nail inside the wooden block. In this example, the screwdriver is rotated by a user in a circular fashion where s the screw moves linearly. 

Engranajes - Los engranajes son uno de los mejores inventos y mi máquina favorita. Los engranajes convierten la energía del motor de bajo par y alta velocidad en energía de bajo par y alta velocidad, que puede utilizarse para accionar el husillo. 

La disposición de los engranajes definirá la potencia máxima que puede soportar el actuador lineal y la velocidad.

Tipos de actuadores lineales

You can find various types of actuators based on space constraints and specific applications. All the images below are attributed to www.timotion.com. 

Accionamiento paralelo Tipo de actuador

Accionamiento paralelo Tipo de actuador

El motor de accionamiento será paralelo al husillo. Este tipo de actuadores se encuentran en todas partes.

Los actuadores pueden proporcionar una serie de cargas y movimientos lineales. 

Tipo L o un tipo de actuador en ángulo recto

Tipo L o un tipo de actuador en ángulo recto

Como su nombre indica, el motor irá en paralelo con el eje motriz. Los engranajes típicos que se utilizan son los de tipo desgastado. El mecanismo de engranaje helicoidal produce mucho menos ruido.

Los actuadores pueden autobloquearse gracias a la mecánica de los engranajes, lo que constituye una ventaja primordial.

Tipo de actuador en línea

Tipo de actuador en línea

El motor y el husillo estarán en línea en estos actuadores lineales. Puede montarlos en espacios estrechos.

Se sabe que estos generan un mayor ruido en comparación con los actuadores de tipo L.

Tipo de actuador de doble motor

Tipo de actuador de doble motor

Estos actuadores constan de dos motores que se pueden accionar por separado o de forma sincronizada. Las aplicaciones incluyen el mecanismo de accionamiento de una cama de hospital, ventanas y más. 

Existen otros tipos de actuadores que puede encontrar, como los deslizadores verticales (para armarios ocultos en la cocina, el suelo, etc.), los actuadores de deslizamiento lineal, etc.

En la siguiente sección, vamos a ver la lista de parámetros que debemos tener en cuenta al seleccionar un actuador lineal. 

  1. Fuerza de accionamiento de la carga
  2. Espacio disponible para el montaje
  3. Cantidad de sonido que hace el actuador
  4. Velocidad de funcionamiento, etc. 

Aquí hay una captura de pantalla de un actuador lineal encontrado en digikey.

captura de pantalla de un actuador lineal encontrado en digikey

A continuación, algunos aspectos de la hoja de datos

  1. A medida que aumenta la relación de transmisión, la velocidad máxima disminuye.
  2. Todos los actuadores tienen un punto de potencia máxima. Este es el punto en el que la entrega de potencia será máxima a una velocidad y fuerza determinadas. Usted ahorrará energía y obtendrá la máxima eficiencia si opera el dispositivo a esta velocidad con la carga especificada.
  3. Los actuadores deben funcionar dentro de su ciclo de trabajo especificado. Un ciclo de trabajo del 20% significa que debe accionar el actuador durante no más del 20% del tiempo. Por ejemplo, si usted opera el actuador durante un minuto. No debe hacer funcionar el actuador durante otros 4 minutos
  4. La fuerza es proporcional a la relación de transmisión

Accionamiento de un actuador lineal

Debe utilizar un controlador de motor de CC para accionar los actuadores lineales. Las tarjetas de controladores de motor de puente H están diseñadas para controlar los motores de CC de los actuadores lineales. 

El puente H es necesario porque se necesita controlar el actuador lineal en ambas direcciones, hacia delante y hacia atrás (empujar y tirar).

Depending on the type of H bridge driver you have, you need to plan the driving strategy. You will need two GPIOs to control the motor in two directions but you can use any of the GPIOs. We will use a PWM signal on the GPIO to control the speed of the linear actuator.

The duty cycle of the PWM signal will be proportional to the speed of the linear actuator. The PWM can vary from 0 to 255 (0 V to 5 V), corresponding to no movement to the maximum speed possible. 

Hay varias placas de controladores de motores de corriente continua que puedes encontrar en Internet.

DC motor driver boards
DC motor driver boards

Aunque varían en colores, tamaño u opciones, el principio básico de funcionamiento sigue siendo el mismo.

Instrucciones paso a paso para conectar una válvula de actuador lineal a un Arduino

En esta sección, te llevaré a través de los pasos para construir un simple proyecto de actuador lineal de base Arduino. ¡Empecemos!

¿Cómo conectar un actuador lineal a un Arduino?

Aquí están los detalles de conexión necesarios para completar el actuador lineal y la placa Arduino UNO.

Estoy usando Arduino UNO para este ejemplo, junto con el controlador de puente H entre Arduino UNO y el actuador. 

Paso 1: Empezar con el actuador lineal

Linear Actuator
Linear Actuator

El actuador lineal consta de dos cables. Positivo y negativo. Simplemente invirtiendo los voltajes aplicados a través de los dos cables se cambiará la dirección del movimiento. 

Paso 2: Conectar los terminales de los actuadores lineales

El cable rojo y los cables negros son intercambiables. La placa que estoy mostrando tiene dos conectores (para dos actuadores lineales). En esta demostración sólo utilizaremos uno.

Conecte los terminales de los actuadores lineales

Paso 3: Conectar la fuente de alimentación al controlador del puente H

Conecte la fuente de alimentación al controlador del puente H

Make sure you match the DC voltage to the actuator’s rating from the datasheet.

Paso 4: Conectar los pines GPIO del Arduino al IC controlador del puente H

Conecta los pines GPIO del Arduino al IC controlador del puente H

La selección de los pines es arbitraria. Si selecciona los pines compatibles con PWM, la generación de PWM se basará en el temporizador de hardware.

Si los pines tienen un símbolo "~"detrás del PIN, significa que son compatibles con PWM. 

Los pines de entrada 1 y entrada 2 corresponden al puente A. Puede ver el pinout del L298N en la tabla siguiente.

Ficha técnica del L298N
Ficha técnica del L298N

Paso 5: La conexión completa

La conexión completa

Puede verificar la conexión una vez más para estar seguro de la conexión.

¡Enhorabuena! Ahora ha completado las conexiones, así como una buena comprensión de los actuadores lineales.

La siguiente sección muestra el código básico de Arduino necesario para probar el circuito.

Código Arduino para el actuador lineal y el proyecto Arduino Uno

Here is a simple Arduino sketch you can use to program the Arduino. The author has mapped the control pins in the code below to pins 10 and 11. Both 10 and 11 are PWM compatible. In our connections above, we connected the input pins of the H bridge driver to pins 4 and 5.

Código Arduino para el actuador lineal y el proyecto Arduino Uno

Algunos actuadores lineales le proporcionarán retroalimentación sobre la posición, puede adaptar el código basado en eso.

#include "elapsedMillis.h"

elapsedMillis timeElapsed;

int RPWM = 10;
int LPWM = 11;
int sensorPin = A0;

int sensorVal;
int Speed = 255;
float strokeLength = 6.0;
float extensionLength;

int maxAnalogReading;
int minAnalogReading;

void setup() {
  pinMode(RPWM, OUTPUT);
  pinMode(LPWM, OUTPUT);
  pinMode(sensorPin, INPUT);
  Serial.begin(9600);
  maxAnalogReading = moveToLimit(1);
  minAnalogReading = moveToLimit(-1);
}

void loop() {
  Serial.println("Extending...");
  sensorVal = analogRead(sensorPin);
  while (sensorVal < maxAnalogReading) {
    driveActuator(1, Speed);
    displayOutput();
    delay(20);
  }
  driveActuator(0, Speed);
  delay(1000);

  Serial.println("Retracting...");
  sensorVal = analogRead(sensorPin);
  while (sensorVal > minAnalogReading) {
    driveActuator(-1, Speed);
    displayOutput();
    delay(20);
  }
  driveActuator(0, Speed);
  delay(1000);
}

int moveToLimit(int Direction) {
  int prevReading = 0;
  int currReading = 0;
  do {
    prevReading = currReading;
    driveActuator(Direction, Speed);
    timeElapsed = 0;
    while (timeElapsed < 200) { delay(1); }
    currReading = analogRead(sensorPin);
  } while (prevReading != currReading);
  return currReading;
}

float mapfloat(float x, float inputMin, float inputMax, float outputMin, float outputMax) {
  return (x - inputMin) * (outputMax - outputMin) / (inputMax - inputMin) + outputMin;
}

void displayOutput() {
  sensorVal = analogRead(sensorPin);
  extensionLength = mapfloat(sensorVal, float(minAnalogReading), float(maxAnalogReading), 0.0, strokeLength);
  Serial.print("Analog Reading: ");
  Serial.print(sensorVal);
  Serial.print("\tActuator extension length: ");
  Serial.print(extensionLength);
  Serial.println(" inches");
}

void driveActuator(int Direction, int Speed) {
  switch (Direction) {
    case 1:  //extension
      analogWrite(RPWM, Speed);
      analogWrite(LPWM, 0);
      break;

    case 0:  //stopping
      analogWrite(RPWM, 0);
      analogWrite(LPWM, 0);
      break;

    case -1:  //retraction
      analogWrite(RPWM, 0);
      analogWrite(LPWM, Speed);
      break;
  }
}

Preguntas frecuentes sobre el actuador lineal y el proyecto Arduino UNO

He recopilado las preguntas más frecuentes sobre el Arduino UNO y los proyectos de actuadores lineales.

Si tiene más preguntas sobre los actuadores lineales, publíquelas en la ventana de comentarios.

1) ¿Puede Arduino controlar un actuador lineal?

Arduino puede controlar un actuador lineal. Arduino no puede accionar el actuador lineal directamente. La corriente y los requisitos de voltaje están más allá de las capacidades de Arduino UNO. 

Lo que puedes hacer es esto. Te ayudaría si utilizas un CI de puente H o una placa de controlador de puente H para accionar el actuador. Lo mejor sería que también tuvieras una fuente de alimentación externa. 

Debe utilizar el circuito de puente H para accionar el motor en ambas direcciones. 

2) ¿Cómo se controla la velocidad de un actuador lineal en Arduino?

Puedes controlar la velocidad del actuador lineal modulando la velocidad del motor. Puedes utilizar una señal PWM del Arduino UNO para mantener la velocidad del motor.

El PWM es una técnica estándar para variar el ciclo de trabajo para controlar la velocidad del motor. 

En algunos actuadores lineales, también obtendrá información sobre la posición del brazo móvil.

Puede utilizar la información de posición y tiempo para controlar la velocidad del actuador lineal. 

3) ¿Cómo se controlan 4 actuadores lineales?

Cómo se controlan 4 actuadores lineales

Un IC L298D puede controlar dos actuadores lineales. Dos controlan cuatro actuadores lineales. Usted puede utilizar dos de estas placas.

Cuidado con el consumo total de corriente.

La corriente total consumida por ambos actuadores lineales debe ser inferior a la capacidad de corriente del L298N.

4) ¿Cómo se programa un actuador lineal?

La programación de un actuador lineal es similar a la de un motor de corriente continua. Ayudaría si utilizas un driver externo (L298D) para suministrar suficiente energía al actuador lineal. 

La dirección y la velocidad se controlan fácilmente mediante los pines GPIO del Arduino UNO.

Puedes consultar el artículo anterior para conocer los detalles de la conexión y los ejemplos de proyectos. 

Conclusión

En este artículo, he presentado el principio básico de funcionamiento de un actuador lineal junto con los diferentes tipos de actuadores disponibles. 

Estoy seguro de que tiene suficiente información para construir su próximo proyecto de actuador lineal con confianza.

Me encantará conocer los proyectos que ha creado utilizando actuadores lineales.

Puedes compartir tus proyectos en los comentarios. 

Por favor, publique sus preguntas en la sección de comentarios. Estaré encantado de responder y proporcionar más apoyo si es necesario. 

Me gustaría conocer sus comentarios sobre el artículo. Por favor, comparta sus comentarios junto con sugerencias para mejorar la presentación.

No olvides compartir el informe con tus amigos y otros entusiastas de Arduino.