Arduino Nano - Actuador

Este tutorial te enseña cómo usar Arduino Nano para controlar un actuador lineal. En detalle, aprenderemos:

Hay dos tipos de actuadores lineales:

Este tutorial es para un actuador lineal sin retroalimentación. Si está interesado en aprender sobre un actuador lineal con retroalimentación, por favor consulte el tutorial Arduino Nano - Actuator with Feedback.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Actuador Lineal
1×Módulo Controlador de Motor L298N
1×Adaptador de Corriente 12V
1×Conector de Alimentación DC
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del actuador lineal

Actuador lineal Extender retraer

Pinout del actuador lineal

Un actuador lineal tiene dos cables, típicamente:

  • El cable positivo suele ser rojo
  • El cable negativo suele ser negro
Diagrama de pines del actuador lineal

Cómo funciona

Al comprar un actuador lineal, es esencial estar al tanto del requisito de voltaje. Por ejemplo, consideremos un actuador lineal de 12 V.

Cuando alimentes el actuador lineal de 12 V con una fuente de 12 V:

  • Conecte 12V al cable positivo y GND al cable negativo: el actuador lineal se extiende a velocidad máxima hasta que llega al límite.
  • Conecte 12V al cable negativo y GND al cable positivo: el actuador lineal se retrae a velocidad máxima hasta que llega al límite.

Cuando se corta la alimentación al actuador, mientras está en el proceso de extensión o retracción, el movimiento se detendrá.

※ Nota:

Para un motor DC, servomotor y motor paso a paso sin engranajes, cuando hay una carga y se corta la energía, no pueden mantener su posición. En cambio, un actuador puede mantener su posición incluso cuando ya no se suministra energía, mientras soporta una carga.

Si el voltaje de la fuente de alimentación de un actuador lineal es inferior a 12 V, el actuador lineal seguirá extendiéndose y retrayéndose, pero no a su velocidad máxima. Cambiar el voltaje de la fuente de alimentación puede alterar la velocidad del actuador lineal, pero este método no se suele utilizar debido a la dificultad para controlar el voltaje. Un enfoque más práctico es mantener fijo el voltaje de la fuente de alimentación y controlar la velocidad del actuador lineal utilizando una señal PWM. Cuanto mayor sea el ciclo de trabajo del PWM, más rápido se extenderá y se retraerá el actuador lineal.

Cómo controlar un actuador lineal

Cómo controlar un actuador lineal con Arduino Nano

Controlar un actuador lineal implica:

  • Extender el actuador lineal a su velocidad máxima.
  • Retractar el actuador lineal a su velocidad máxima.
  • (Opcional) Regular la velocidad de extensión y retracción.

Arduino Nano puede generar una señal para controlar el actuador lineal, pero tiene voltaje y corriente bajos. Por lo tanto, es necesario colocar un controlador de hardware entre Arduino Nano y el actuador lineal con el fin de:

  • Amplificar la señal de control desde Arduino Nano
  • Recibir otra señal de control desde Arduino Nano para invertir la polaridad de la fuente de alimentación para el control de dirección

※ Nota:

  • Este tutorial puede usarse con cualquier tipo de actuador lineal. Un actuador lineal de 12 V es solo un ejemplo.
  • Al controlar un actuador lineal de 5 V, aunque el pin del Arduino Nano suministre 5 V (que es la misma tensión que la del actuador lineal), aún se requiere un driver entre el Arduino Nano y el actuador lineal porque el pin del Arduino Nano no proporciona suficiente corriente para el actuador lineal.

Existen numerosos tipos de chips y módulos, como el L293D y el L298N, que pueden utilizarse para controladores de actuadores lineales. Para este tutorial, utilizaremos el controlador L298N.

※ Nota:

También puedes usar relés como controlador. Sin embargo, se requieren cuatro relés para controlar un único actuador lineal (tanto para extender como para retraer).

Acerca del controlador L298N

El controlador L298N puede utilizarse para controlar un actuador lineal, un motor de corriente continua y un motor paso a paso. Este tutorial te explica cómo usarlo para controlar un actuador lineal.

Pinout del controlador L298N

Pinout del controlador L298N

El controlador L298N tiene dos canales, etiquetados como A y B. Esto le permite controlar de forma independiente dos actuadores lineales simultáneamente. Supongamos que el actuador lineal A está conectado al canal A y el actuador lineal B está conectado al canal B. El controlador L298N tiene 13 pines en total.

Los pines comunes para ambos canales:

  • Pin VCC: Este pin proporciona energía para el actuador lineal y puede oscilar entre 5 y 35 V.
  • Pin GND: Este es un pin de tierra común y debe conectarse a 0 V (GND).
  • Pin 5V: Este pin suministra energía para el módulo L298N y puede ser alimentado por 5V desde un Arduino Nano.

Fijados del Canal A:

  • Pines ENA: Estos pines se utilizan para ajustar la velocidad del actuador lineal A. Al quitar el puente y conectar este pin a una entrada PWM, podemos controlar la velocidad de extensión y retracción del actuador lineal A.
  • Pines IN1 y IN2: Estos pines se utilizan para determinar la dirección de movimiento de un actuador lineal. Cuando uno de ellos está en HIGH y el otro en LOW, el actuador lineal se extenderá o retraerá. Si ambas entradas están en HIGH o LOW, el actuador lineal cesará su movimiento.
  • Pines OUT1 y OUT2: Estos pines están conectados al actuador lineal A.

Pines del Canal B:

  • Pines ENB: Se utilizan para controlar la velocidad del actuador lineal B. Al quitar el puente y conectar este pin a una entrada PWM, podemos ajustar la velocidad de extensión/retracción del actuador lineal B.
  • Pines IN3 e IN4: Estos pines se utilizan para controlar la dirección de un actuador lineal. Cuando uno de ellos está en ALTO y el otro en BAJO, el actuador lineal se extenderá o retraerá. Si ambas entradas están en ALTO o BAJO, el actuador lineal dejará de moverse.
  • Pines OUT3 y OUT4: Estos pines están conectados a un actuador lineal.

El controlador L298N tiene dos entradas de alimentación:

  • Uno para el actuador lineal (pines VCC y GND) con un rango de voltaje de 5 a 35V.
  • Uno para el funcionamiento interno del módulo L298N (pines 5V y GND) con un rango de voltaje de 5 a 7V.

Quita todos los jumpers del controlador L298N para simplificar.

Podemos gestionar dos actuadores lineales de forma independiente y al mismo tiempo utilizando un Arduino Nano y un controlador L298N. Para controlar cada actuador lineal, solo necesitamos tres pines del Arduino Nano.

※ Nota:

El resto de este tutorial se centrará en controlar un actuador lineal utilizando el canal A. Controlar el otro actuador lineal es similar.

Cómo controlar un actuador lineal

Este tutorial te enseña cómo controlar un actuador lineal utilizando un controlador L298N y un Arduino Nano.

Diagrama de cableado

Retire los tres jumpers del módulo L298N antes de conectar los cables.

Diagrama de cableado del Arduino Nano, actuador lineal y controlador L298N

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Cómo hacer que un actuador lineal se extienda y se retraiga

La dirección de movimiento del actuador lineal puede controlarse proporcionando un nivel lógico ALTO/BAJO a los pines IN1 e IN2. La tabla a continuación explica cómo controlar la dirección en ambos canales.

IN1 pin IN2 pin Direction
LOW LOW Linear Actuator A stops
HIGH HIGH Linear Actuator A stops
HIGH LOW Linear Actuator A extends
LOW HIGH Linear Actuator A retracts
  • Aumente la longitud del actuador lineal A.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Invierte el actuador lineal A
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Nota:

La orientación del actuador lineal puede invertirse conectando los pines OUT1 y OUT2 a dos pines del actuador en un orden distinto. Para hacer esto, es necesario cambiar los pines OUT1 y OUT2 o alterar la señal de control en los pines IN1 e IN2 en el código.

Cómo evitar que el actuador lineal se extienda o se retraiga

El actuador lineal dejará de extenderse o retraerse cuando alcance el límite. Además, podemos programarlo para que deje de extenderse o retraerse antes de haber alcanzado dicho límite.

  • Corta la energía

Hay dos métodos para detener un actuador lineal:

  • Reduce la velocidad a 0
  • Desconecta la fuente de alimentación
analogWrite(ENA_PIN, 0);
  • Asigna a los pines IN1 e IN2 el mismo valor, ya sea BAJO o ALTO.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • O
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

Cómo controlar la velocidad de un actuador lineal mediante el controlador L298N

Es fácil controlar la velocidad del actuador lineal. En lugar de establecer el pin ENA a un nivel alto, podemos generar una señal PWM para el pin ENA. Esto se puede hacer mediante:

  • Conectar un pin del Arduino Nano al ENA del L298N
  • Utilizando la función analogWrite() para generar una señal PWM en el pin ENA. El controlador L298N amplificará la señal PWM hacia el actuador lineal.
analogWrite(ENA_PIN, speed); // speed is a value from 0 to 255

La velocidad es un rango de 0 a 255. Si la velocidad es 0, el actuador lineal cesa su movimiento. Cuando la velocidad es 255, el actuador lineal se extiende o se retrae a su velocidad máxima.

Código de ejemplo para Arduino Nano

El código:

  • Aumenta el actuador lineal a su velocidad máxima
  • Detiene el actuador lineal
  • Disminuye el actuador lineal a su velocidad máxima
  • Detiene el actuador lineal
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-actuator */ const int ENA_PIN = 7; // The Arduino Nano pin connected to the EN1 pin L298N const int IN1_PIN = 6; // The Arduino Nano pin connected to the IN1 pin L298N const int IN2_PIN = 5; // The Arduino Nano pin connected to the IN2 pin L298N // The setup function runs once on reset or power-up void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } // The loop function repeats indefinitely void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // actuator will stop extending automatically when reaching the limit // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // actuator will stop retracting automatically when reaching the limit }

Pasos R\u00e1pidos

Retira los tres jumpers del módulo L298N.

Copie el código y ábralo en el IDE de Arduino.

Haz clic en el botón Subir en el IDE de Arduino para subir el código al Arduino Nano.

Observarás:

  • El actuador lineal se extenderá hasta alcanzar su límite, y luego se detendrá.
  • El actuador lineal permanecerá en esta posición durante un cierto período de tiempo.
  • El actuador lineal se retraerá hasta alcanzar su límite, y luego se detendrá.
  • El actuador lineal permanecerá en esta posición durante un cierto período de tiempo.
  • Este proceso se repetirá.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de Funciones

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!