Los motores eléctricos son cada vez mÔs demandados, de entre ellos quizÔs destacan los que funcionan con corriente continua, de los mÔs populares dentro de los proyectos de los makers con Arduino, ya que aportan movilidad. Entre ellos, destacar los motores paso a paso que se usan para múltiples aplicaciones, especialmente para la robótica, como actuadores, etc.
Coches eléctricos, pequeños robots autónomos, aplicaciones industriales para la automatización, aparatos de repetición de movimientos, etc. El motivo de que los servomotores y motores paso a paso sean tan buenos para estas aplicaciones es que pueden realizar movimientos lentos o rÔpidos, pero sobre todo controlados. AdemÔs, los accionamientos son continuos para aplicaciones en las que se requieren muchas paradas y arranques con mucha precisión.
Tipos de motores elƩctricos
Dentro de los motores elƩctricos se pueden destacar los siguientes tipos:
- Motor DC o CC: los motores de corriente continua funcionan con este tipo de corriente, como su propio nombre indica. Pueden ir desde unos mW de potencia hasta algunos MW en los mĆ”s potentes y grandes, que se usan para aplicaciones industriales, vehĆculos, ascensores, cintas transportadoras, ventiladores, etc. Se puede regular su velocidad de giro (RPM) y par de fuerza aplicada segĆŗn los alimentes.
- Motor AC o CA (asincrono y de rotor bobinado): funcionan con corriente alterna, con un rotor muy especĆfico que funciona gracias a las fases que aporta este tipo de corriente para generar el giro mediante repulsión magnĆ©tica del electroimĆ”n de forma similar a como lo hacen los de CC. Son muy baratos y llegan hasta varios kW. Se pueden regular en velocidad de giro, pero los elementos de regulación son mĆ”s caros que los de CC. Estos se suelen usar para electrodomĆ©sticos.
- Motor paso a paso: tambiĆ©n conocidos como steppers, son similares en muchos sentidos a los de CC, pero con velocidades de giro y potencias bajas. AquĆ lo que destaca es el posicionamiento del eje, es decir, la precisión para ponerlos en una posición concreta. Se puede controlar mucho su Ć”ngulo de giro y velocidad, por lo que se solĆan usar en disqueteras, en discos duros (HDD), robots, automatización de procesos, etc.
- Servomotor: se puede decir que es una evolución del motor paso a paso, trabajando con pequeñas potencias y velocidades que van hasta los 7000 RPM en algunos casos. Este motor incorpora una caja reductora de engranajes y un circuito de control. Tienen la misma precisión para colocarse en una posición como los paso a paso y son muy estables en cuando al par de fuerza aplicados, lo que los hace ideales para algunos robots y aplicaciones industriales.
Motores paso a paso y servomotores
Ya sabes quĆ© son estos dos tipos de motor electrónico, pero me gustarĆa decir algo mĆ”s sobre los steppers. El giro que realizan no lo hacen de forma continua, sino en pequeƱos pasos, de ahĆ su nombre. El rotor (parte que gira), tiene forma de rueda dentada, mientras que el estator (parte que no gira) se compone de electroimanes polarizados de forma intercalada. De esa forma, cuando uno se Ā«activaĀ» los de sus lados no lo estĆ”n, lo que atrae al diente del rotor hacia Ć©l, permitiendo el avance preciso por el que se caracterizan.
Dependiendo de los dientes del rotor, se podrÔ avanzar mÔs o menos en el giro. Si tienes mÔs dientes, mÔs pasos se necesitan para completar una vuelta, pero los pasos serÔn mÔs cortos, por lo que serÔ un motor mÔs preciso. Si tienes pocos dientes, los pasos serÔn saltos mÔs bruscos, sin tanta precisión. Por tanto, los pasos que tendrÔ que dar un motor paso a paso para completar una vuelta, dependerÔ de los pasos angulares.
Esos pasos angulares estĆ”n estandarizados, aunque puedes encontrar algunos motores que tienen paso no estĆ”ndar. Los Ć”ngulos suelen ser: 1.8Āŗ, 5.625Āŗ, 7.5Āŗ, 11.25Āŗ, 18Āŗ, 45Āŗ, y 90Āŗ. Para calcular cuĆ”ntos pasos necesita un motor paso a paso para completar un giro completo o vuelta (360Āŗ), solo tienes que dividir. Por ejemplo, si tienes un motor paso a paso de 45Āŗ, tendrĆas 8 pasos (360/45=8).
Dentro de estos motores tienes los unipolares (mÔs populares), con 5 o 6 cables, o los bipolares, con 4 cables. Según esto, se realizarÔn unas u otras secuencias de polarizacion haciendo pasar corriente por sus bobinas:
- Polarización para los bipolares:
Paso | Terminal A | Terminal B | Terminal C | Terminal D |
---|---|---|---|---|
1 | +V | -V | +V | -V |
2 | +V | -V | -V | +V |
3 | -V | +V | -V | +V |
4 | -V | +V | +V | -V |
- Para los unipolares:
Paso | Bobina A | Bobina B | Bobina C | Bobina D |
---|---|---|---|---|
1 | +V | +V | 0 | 0 |
2 | 0 | +V | +V | 0 |
3 | 0 | 0 | +V | +V |
4 | +V | 0 | 0 | +V |
El funcionamiento en ambos casos es igual, ir polarizando las bobinas para ir atrayendo al rotor a donde quieres que se posicione el eje. Si quieres mantenerlo en una posición, deberĆ”s mantener la polarización para dicha posición y listo. Y si quieres que avance, polarizas al siguiente imĆ”n y darĆ” otro paso, y asĆ sucesivamenteā¦
Si usas un servomotor, ya sabes que bĆ”sicamente es un motor paso a paso, por lo tanto, todo lo dicho funciona tambiĆ©n para ellos. Lo Ćŗnico que incluye esos engranajes reductores para obtener muchos mĆ”s pasos por giro y asĆ tener una precisión mucho mayor. Por ejemplo, puedes encontrar un motor de 8 pasos por giro que si tuviera una reductora de 1:64, pues quiere decir que cada paso de esos ocho se subdivide en 64 pasos mĆ”s pequeƱos, lo que darĆa un mĆ”ximo de 512 pasos por vuelta. Es decir, cada paso serĆa de unos 0.7Āŗ.
Agregar tambiĆ©n que deberĆas usar algĆŗn controlador con el que controlar la polarización, velocidad, etc., con, por ejemplo, H-Bridge. Algunos modelos son los L293, ULN2003, ULQ2003, etc.
Dónde comprar
Puedes comprarlo en varios sitios online o en tiendas de electrónica especializadas. AdemÔs, si eres principiante, puedes usar kits en los que se incluye todo lo necesario e incluso la placa Arduino UNO y manual para comenzar a experimentar y crear tus proyectos. En esos kits se incluye todo lo necesario, desde el propio motor, los controladores, placas, protoboard, etc.
- Comprar Kit Arduino Starter
- No products found.
- Comprar servomotor
- No products found.
Ejemplo de motor paso a paso con Arduino
Para terminar, mostrar un ejemplo prĆ”ctico con Arduino, usando un controlador ULN2003 y un motor paso a paso 28BYJ-48. Es muy sencillo, pero serĆ” suficiente para que comiences a familiarizarte con el funcionamiento para que comiences a hacer algunas pruebas y ver cómo se comportaā¦
Como se aprecia en el esquema de conexionado, las bobinas A (IN1), B (IN2), C (IN3) y D (IN4) del motor se han asignado a las conexiones 8, 9, 10, y 11 respectivamente de la placa Arduino. Por otro lado, la placa del driver o controlador la debes alimentar en sus pines de 5-12V (al GND y 5V de Arduino) con el voltaje adecuado para que Ʃsta a su vez alimente al motor conectado en el conector de plƔstico blanco que tiene este driver o controlador.
Este motor 28BYJ-48 es un motor paso a paso de tipo unipolar con cuatro bobinas. Por tanto, para que te hagas una idea de cómo trabaja, puedes enviar desde la placa Arduino valores HIGH (1) o LOW (0) a las bobinas de la siguiente manera para los pasos:
Paso | Bobina A | Bobina B | Bobina C | Bobina D |
---|---|---|---|---|
1 | HIGH | HIGH | LOW | LOW |
2 | LOW | HIGH | HIGH | LOW |
3 | LOW | LOW | HIGH | HIGH |
4 | HIGH | LOW | LOW | HIGH |
En cuanto al sketch o código necesario para programar su movimiento, pues serĆa el siguiente usando Arduino IDE (modifĆcalo y experimenta para probar cómo se altera el movimiento):
// Definir pines conectados a las bobinas del driver #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos a par mƔximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes int paso [4][4] = { {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}, {1, 0, 0, 1} }; void setup() { // Todos los pines se configuran como salida, ya que el motor no enviarƔ seƱal a Arduino pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } // Bucle para hacerlo girar 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); } }