📅 Tal día como hoy 21 de noviembre... ¿QUÉ PASÓ?
Cursos Gratis Stories
Ganar Dinero Internet
Android Stories
Windows Stories
iOS Stories
MacOS Stories
Linux Stories
Facebook Stories
Amazon Stories
Netflix Stories
Whatsapp Stories
Twitch Stories
Instagram Stories
YouTube Stories
Gmail Stories
TikTok Stories
Arduino Stories
Telegram Stories
Raspberry Pi Stories

¿Cómo programar un motor en Arduino fácil y sencillo? Guía paso a paso

ACTUALIZADO ✅ ¿Quieres programar un motor para tu proyecto Arduino sin errores? ⭐ ENTRA AQUÍ ⭐ y Aprende Todo ¡DESDE CERO!

Un pin de Arduino puede tener una potencia de hasta 5 voltios y de 40 mA, lo cual es insuficiente para mover un motor. Por lo que será necesario incorporar un driver para amplificar la corriente y hacer que la placa pueda mover el motor.

Si quieres saber cómo programarlo te invitamos a que continúes leyendo. Te explicaremos qué tipo de motor puedes programar y cuáles son los modelos que debes usar.

Pero eso no es todo, también encontrarás los pasos que debes hacer para programar un motor desde cero. No te pierdas de nada y comienza con los mejores proyectos motorizados.

publicidad

¿Se puede programar cualquier motor en cualquier placa de Arduino?

Una placa de Arduino no tiene la suficiente potencia para mover un motor (tal como te mencionamos en la introducción en las primeras líneas de este post), por lo que necesitarás de un amplificador que permita mover un actuador. Los motores que puedes usar en Arduino son los de tipo CD, servomotor, motor DC Brushless, driver L293D, driver L298, Board L298N Breakout, motor Shield. Dentro de este listado se encuentran los amplificadores de corriente para que los actuadores puedan trabajar de manera correcta.

publicidad

Tipos de motores para usar en Arduino ¿Cuáles son todos los que existen?

Puedes elegir para tus proyectos los siguientes motores para que lo uses en una placa de Arduino.

Conoce a cada uno de ellos en sus detalles:

Motor CD

Motor CD

Es un motor de corriente directa, al cual también se lo denomina CC por ser de corriente continua. Su característica principal es convertir la energía eléctrica en mecánica por medio de un campo magnético. Esto quiere decir que el motor gira de manera constante en ambos sentidos, si es que se cambia la polaridad de la corriente.

Está compuesto por un estator; que sirve para generar los polos y se construye, por lo general, con imanes o hilos de cobre; y por un rotor. Este último componente es el que recibe la corriente directa y se fabrica de manera cilíndrica por grafito u otras aleaciones. Su uso principal son los motores de línea, los de paso a paso y los servomotores. Es muy común encontrarlos en juguetes debido a que se puede controlar su velocidad.

Motor Servo

El servomotor es un tipo especial de motor que se utiliza para mantener el eje en un mismo lugar, de esta manera se pueden girar a 180° o realizar un giro completo. Se caracteriza por tener un gran torque que lo genera su potenciómetro, el cual trabaja con un motor CD y se utiliza para mover los engranajes.

Por lo tanto, un motor servo es una caja que está compuesta por una placa Arduino, un potenciómetro, un motor CD y engranajes. Se lo utiliza principalmente en la robótica, por lo que se lo puede ver en fábricas, juguetes y hasta en ascensores.

Driver L293D

El trabajo que tiene este dispositivo es el de controlar otros motores, por lo que se convierte en una pieza ideal para proyectos de Arduino. Puede trabajar con 4 motores de tipo DC o con 2 motores paso a paso o, si lo prefieres, con 2 servomotores. Lo que implica que puede haber una combinación de estos, según lo permita sus borneras. Al incluir 4 circuitos individuales se puede controlar el tipo de carga que recibirá cada motor.

Se puede utilizar en una placa Arduino UNO de acuerdo con estos pines:

  • Digital 3 – PWM_Motor2
  • Digital 4 – DIR_CLK
  • Digital 5 – PWM_Motor4
  • Digital 6 – PWM_Motor3
  • Digital 7 – DIR_EN
  • Digital 8 – DIR_SER
  • Digital 9 – Servo_1
  • Digital 10 – Servo_2
  • Digital 11 – PWM_Motor1
  • Digital 12 – DIR_LATCH

Driver L298

Driver L298

Este componente es el encargado de controlar la velocidad y el sentido en que girarán los motores cuando estén funcionando. Se caracteriza por ser compatible con un amplio rango de temperatura de operación, 20°C ~+ 135°C. La corriente de salida que genera por canal puedes llegar hasta 2 amperes.

La conexión de los pines es la siguiente:

  • Pin IN1 - MOTOR A
  • Pin IN2 - MOTOR A
  • Pin IN3 - MOTOR B
  • Pin IN4 - MOTOR B
  • Pin ENA - PWM
  • Pin ENB - PWM

Motor DC Brushless

Es conocido también como motor sin escobillas porque no necesita de anillos rozantes para producir un cambio de polaridad. Se caracteriza por ser livianos, no necesitar de mucho mantenimiento y ser más baratos en su coste de fabricación.

La complejidad de su manejo se fue disminuyendo en los últimos tiempos, por lo que es una herramienta muy usada en la tecnología. Para encontrar la polaridad correcta se utiliza por medio del rotor la detección del campo magnético. Se puede encontrar su mecanismo en bandejas de lectores de DVD y coolers de discos.

¿Qué debo tener en cuenta al elegir el motor ideal para mi proyecto Arduino?

Antes de elegir un motor para tu proyecto de Arduino deberás tener en cuenta estos factores: 

  • La velocidad del tiempo de girado. Es decir, vas a tener que interpretar cuál es la velocidad óptima que necesita el motor para tu proyecto.
  • La fuerza aplicada a la masa, también conocido como torque en los motores rotativos. Debes tener en cuenta si el peso que tendrá el objeto que deseas mover es mayor o menor a la capacidad que tendrá el motor para moverlo.
  • Capacidad para entregar la carga eléctrica. Es decir, debes considerar la cantidad de energía qué el motor es capaz de dar en un tiempo determinado.
  • Posibilidad máxima de trabajo. Esto se relaciona con la carga qué tiene el motor para trabajar sin que se rompa debido al esfuerzo que realiza.
  • El nivel de precisión es otro factor a tener en cuenta, ya que los movimientos que necesitarás en tu proyecto pueden requerirse más o menos precisión.
  • Tensión de alimentación. En la parte electrónica es importante que sepas que un motor funciona a diferentes voltajes, por lo que la placa de Arduino tiene que ofrecer la misma capacidad nominal de tensión.
  • Corriente nominal. Este elemento se refiere a la intensidad de corriente que necesitan motor para trabajar. Hay que tener en cuenta la resistencia y la tensión nominal para establecer los valores lógicos de funcionamiento.
  • Energía absorbida por el motor en un momento determinado. Esto es lo que se conoce como potencia eléctrica y mide el rendimiento general del motor en la placa Arduino.

Además de los valores mencionados tendrás que considerar, las dimensiones del motor para saber si quepa en el lugar, los soportes para la fijación, el peso y la vida útil, entre otros factores. Con esto queremos decir que para elegir el motor ideal en tu proyecto de Arduino debes tener en cuenta muchos factores, ya que puedes encontrar un actuador que tenga un mayor valor que otro, lo cual no implica que sea el mejor o el correcto para ti.

Aprende paso a paso cómo programar un motor en Arduino desde cero

Para programar un motor DC Brushless en Arduino con variación de velocidad y de rotación tendrás que realizar este paso a paso:

Monta todos los componentes

Monta todos los componentes

Lo primero que tendrás que hacer es conectar el Arduino con el controlador, luego la batería al controlador y este último al motor. No debes olvidarte que todo esto lo tendrás que unir por medio de cables. Puedes seleccionar el tipo de alimentación que deseas, es decir, si quieres de 5 o de 12 volts. Para esto tendrás que utilizar un jumper para acceder de manera directa a la placa Arduino. Luego tendrás que conectar el pin 3 y el pin 4 con los extremos de cable hembra que has usado.

Asigna las bobinas a los pines

Al saber que el motor paso a paso tiene un movimiento de par máximo, o sea en cada paso usa 2 bobinas consiguiendo el consumo máximo; un par menor, ya que se puede elegir una bobina a la vez y obtener consumos moderados; y un movimiento de medio paso, lo cual es la combinación de ambas situaciones. Será necesario entonces asignar las bobinas a los pines.

Para esto tendrás que utilizar:

  • Pin 8 - BOBINA A
  • Pin 9 - BOBINA B
  • Pin 10 - BOBINA C
  • Pin 11 - BOBINA D

Programa el motor

Lo que tendrás que hacer ahora es programar de manera manual el motor.

Para ello tendrás que ingresar para la configuración y realizar estos pasos para un movimiento normal:

*/

#define IN1 8

#define IN2 9

#define IN3 10

#define IN4 11

int paso [4][4] =

{

{1, 1, 0, 0},

{0, 1, 1, 0},

{0, 0, 1, 1},

{1, 0, 0, 1}

};

void setup()

{

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

}

void loop()

{

for (int i = 0; i < 4; i++)

{

digitalWrite(IN1, paso[i][0]);

digitalWrite(IN2, paso[i][1]);

digitalWrite(IN3, paso[i][2]);

digitalWrite(IN4, paso[i][3]);

delay(10);

}

}

Los códigos para programar un par menor son:

#define IN1 8

#define IN2 9

#define IN3 10

#define IN4 11

int paso [4][4] =

{

{1, 0, 0, 0},

{0, 1, 0, 0},

{0, 0, 1, 0},

{0, 0, 0, 1}

};

void setup()

{

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

}

void loop()

{

for (int i = 0; i < 4; i++)

{

digitalWrite(IN1, paso[i][0]);

digitalWrite(IN2, paso[i][1]);

digitalWrite(IN3, paso[i][2]);

digitalWrite(IN4, paso[i][3]);

delay(10);

}

}

Mientras que deberás ingresar estos códigos para que el motor realiza el movimiento de paso medio:

#define IN1 8

#define IN2 9

#define IN3 10

#define IN4 11

int paso [8][4] =

{

{1, 0, 0, 0},

{1, 1, 0, 0},

{0, 1, 0, 0},

{0, 1, 1, 0},

{0, 0, 1, 0},

{0, 0, 1, 1},

{0, 0, 0, 1},

{1, 0, 0, 1}

};

void setup()

{

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

}

void loop()

{

for (int i = 0; i < 8; i++)

{

digitalWrite(IN1, paso[i][0]);

digitalWrite(IN2, paso[i][1]);

digitalWrite(IN3, paso[i][2]);

digitalWrite(IN4, paso[i][3]);

delay(10);

}

}

Los mejores proyectos Arduino motorizados que puedes hacer tú mismo desde cero

Los mejores proyectos de Arduino motorizado los podrás encontrar en esta lista:

Control de motor DC Brushless

Control de motor DC Brushless 

Necesitarás para este proyecto una placa de Arduino Nano de tipo R3, luego un motor DC Brushless y hélices para unir al actuador.

Los códigos del transmisor son:

# incluye < Servo.h >

Servo esc;

SoftwareSerial hc12 ( 2 , 3 ); // RX, TX

int thr, ail, ele, rud;

configuración vacía ()

{

adjuntar ( 10 );

pinMode (A0, ENTRADA);

De serie. comenzar ( 9600 );

comenzar ( 9600 );

}

bucle vacío ()

{

thr = mapa ( analogRead (A0), 0 , 1023 , 0 , 180 );

imprimir (thr);

De serie. imprimir (thr);

retraso ( 100 );

}

Tendrás que utilizar los siguientes códigos de programación para el receptor:

# incluye < Servo.h >

Servo esc;

Entrada de cadena;

int acelerador, th;

configuración vacía ()

{

adjuntar ( 10 );

De serie. comenzar ( 9600 );

comenzar ( 9600 );

escribir ( 170 );

retraso ( 2000 );

escribir ( 90 );

retraso ( 2000 );

escribir ( 140 );

retraso ( 2000 );

escribir ( 90 );

retraso ( 2000 );

}

bucle vacío ()

{

si (Serie. disponible ())

{

acelerador = Serie. readStringUntil ( ' \ n ' );

si (entrada. longitud ()> 0 )

{

escribir (acelerador);

retraso ( 10 );

}

}

}

Motor con potenciómetro

Motor con potenciómetro

Para este proyecto motorizado de Arduino necesitarás una placa Arduino UNO, un motor, un potenciómetro giratorio, una placa de inserción, resistencia de 10K ohmnios, leds y cables.

Una vez que una todos los componentes tendrás que ingresar estos códigos:

#define MOF_PIN 6

#define POT_PIN A1

int pot  =  0 ;

configuración vacía () {

pinMode ( MOF_PIN , SALIDA );

pinMode ( POT_PIN , ENTRADA );

Serial . comenzar ( 9600 );

}

bucle vacío () {

bote =  analogRead ( POT_PIN );

Serial . println ( bote );

analogWrite ( MOF_PIN , pot / 4 );

}

Controlador de motor L293D

Controlador de motor L293D

En una placa L293D podrás crear este proyecto en el cual necesitarás un encabezado de 8 posiciones por una fila, bloque de terminales, un macho de 36 posiciones de una fila, y una placa Arduino de tamaño nano y de tipo R3.

Vas a tener que ensamblar todos los componentes y luego ingresar a estos códigos al IDE de Arduino:

// L293D

// Motor A

const int motorPin1 =  5 ;

const int motorPin2 =  6 ;

// Motor B

const int motorPin3 =  10 ;

const int motorPin4 =  9 ;

configuración vacía () {

pinMode ( motorPin1, SALIDA ) ;

pinMode ( motorPin2, SALIDA ) ;

pinMode ( motorPin3, SALIDA ) ;

pinMode ( motorPin4, SALIDA ) ;

digitalWrite ( motorPin1, HIGH ) ;

digitalWrite ( motorPin2, BAJO ) ;

digitalWrite ( motorPin3, BAJO ) ;

digitalWrite ( motorPin4, LOW ) ;

retraso ( 2000 ) ;

digitalWrite(motorPin1, LOW);

digitalWrite(motorPin2, HIGH);

digitalWrite(motorPin3, LOW);

digitalWrite(motorPin4, LOW);

delay(2000);

digitalWrite(motorPin1, LOW);

digitalWrite(motorPin2, LOW);

digitalWrite(motorPin3, HIGH);

digitalWrite(motorPin4, LOW);

delay(2000);

digitalWrite(motorPin1, LOW);

digitalWrite(motorPin2, LOW);

digitalWrite(motorPin3, LOW);

digitalWrite(motorPin4, HIGH);

delay(2000);

digitalWrite(motorPin1, LOW);

digitalWrite(motorPin2, LOW);

digitalWrite(motorPin3, LOW);

digitalWrite(motorPin4, LOW);

}

void loop(){

}
Ebooks de IPAP
Ebooks IPAP

🔥ÚNETE🔥 A LA NUEVA COMUNIDAD DE IP@P ¡APÚNTATE AQUÍ!

Si te quedaste con alguna duda, déjalas en los comentarios, te contestaremos lo antes posible, además seguro que será de gran ayuda para más miembros de la comunidad. Gracias! 😉

Temas

Félix Albornoz
Autor: Félix Albornoz

Llevo más de 20 años trabajando en el sector tecnológico ayudando a empresas y usuarios a desarrollarse y formarse en este campo. Siempre aprendiendo cosas nuevas.

Publicidad

Relacionadas

Deja un comentario