Archivo de la etiqueta: Motores

Diseños de bases y accesorios para robots con impresora 3D

Soporte de motores, por zi3d
https://www.thingiverse.com/thing:750963
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:750963/zip

Este soporte permite fijar los motores estándar de los kits más comunes con más firmeza, sin fijaciones que se rompen con facilidad, y sobre cualquier placa base del material que usted desee, sin necesidad de comprar las cortadas con láser.






DotBot por Dotbot-io
https://www.thingiverse.com/thing:1441937
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:1441937/zip






Chassis para robot por metshein
https://www.thingiverse.com/thing:1011890
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:1011890/zip






Chassis compacto por makerhacks
https://www.thingiverse.com/thing:2320298
Enlaces para los archivos (distintos modelos)
https://www.thingiverse.com/thing:2320298/zip


Montaje para motor con tacómetro por b2vn
https://www.thingiverse.com/thing:1473508
Archivos para impresión 3D
https://www.thingiverse.com/thing:1473508/zip


Montaje para motor, ruedas y orugas por edwardchew
https://www.thingiverse.com/thing:3228395
https://www.thingiverse.com/thing:3228359
Descargar todos los archivos para chassis y ruedas https://www.thingiverse.com/thing:3228395/zip
Descargar todos los archivos para orugas https://www.thingiverse.com/thing:3228359/zip






Chassis para robot por Malathar
https://www.thingiverse.com/thing:1316755
Enlaces de los archivos para impresión 3D
https://www.thingiverse.com/thing:1316755/zip


Seguidor de línea JJ1 por AndrewLinden
https://www.thingiverse.com/thing:2831729
Enlace para los archivos de impresión 3D
https://www.thingiverse.com/thing:2831729/zip

Es un chasis de robot para construir un robot seguidor de línea utilizando los motores amarillos de engranajes y un Arduino.

En lugar de los tres módulos de sensor de línea, también puede usar un conjunto de sensores de 8 canales.

El chasis tiene agujeros para esta placa de sensores también. Esta matriz tiene salida analógica y necesitas un Arduino Nano que posee pines adicionales A6 y A7 usar los 8 canales del sensor, que tiene salida analógica. También puede optar por agregar al Arduino uno un CD74HC4067, multiplexador de 16 canales.

Cuando use paquetes de batería LiPo sin protección, también debe usar un sensor de bateria Lipo con beeper como el de la imagen que sigue, o una protección similar.

Utilice un tornillo de cabeza redonda en uno de los orificios frontales. La parte frontal del robot se deslizará sobre ese tornillo.


Por supuesto, se pueden encontrar varios diseños más en el repositorio de diseños 3D https://www.thingiverse.com/



EasyDriver – Controladora de motor paso a paso con modos de micropaso

La EasyDriver nos da la capacidad de manejar motores paso a paso bipolares con consumos entre 150 mA a 700 mA por fase. Permite el control motores bipolares con mucha facilidad de programación en modo estándar de paso directo, y en modos de micropaso de 1/2, 1/4 y 1/8 de paso.

Con respecto a cuestiones de hardware, se pueden soldar cables directamente al EasyDriver, o utilizar conectores en la alimentación, motores y señales de control para poder realizar cableados de prueba. La mejor opción para usted dependerá de su aplicación.

Lecturas sugeridas

Si usted no está familiarizado con los siguientes conceptos, se recomienda revisarlos antes de empezar a trabajar con la EasyDriver.

Instalar el entorno de desarrollo integrado de Arduino (IDE)
Motores paso a paso
Video motor paso a paso

Descripción general del hardware

La placa EasyDriver fue diseñada por Brian Schmalz, y su núcleo principal es el circuito integrado A3967. Este integrado permite manejar motores paso a paso bipolares con configuraciones de 4, 6 u 8 cables. La placa puede trabajar controlado desde sistemas de 3,3 V o 5V, por lo que es extremadamente versátil. Dos agujeros de montaje en la placa le dan al usuario la opción de sostener la EasyDriver con tornillos o postes de sujeción.

Descripción de las entradas y salidas de la placa

Vamos a echar un vistazo a todos los pines perforados que conectan hacia el exterior el circuito integrado A3967 en la EasyDriver.

Conexiones de la parte superior de la placa

Si se observa a lo largo de la parte superior de la placa, podrá ver varias perforaciones de conexión.

Funcionan de la siguiente manera:

Coil A+ : Salida del puente-H, polo + de la conexión para la bobina A del motor bipolar.
Coil A- : Salida del puente-H, polo – de la conexión para la bobina A del motor bipolar.
Coil B+ : Salida del puente-H, polo + de la conexión para la bobina B del motor bipolar.
Coil B- : Salida del puente-H, polo – de la conexión para la bobina B del motor bipolar.
PFD : Voltaje de entrada que selecciona el modo de descenso de la corriente de la salida. Si PFD > 0,6 Vcc, activa el modo de descenso de corriente lento. Si PFD < 0,21 Vcc, activa el modo de descenso rápido. Si el valor está en 0,21 Vcc < PFD < 0,6 Vcc se produce un descenso intermedio de la corriente. RST : Entrada lógica. Cuando está en BAJO, todos los comandos son ignorados y todos los transistores de salida se desactivan. Debe ser puesto en ALTO para habilitar el control de los pasos.
ENABLE : Entrada lógica. Permite que funcionen los transistores de salida dentro del puente H que maneja el motor. Si se pone en ALTO, desactiva los transistores, y el chip no manejará el motor. Si se pone en BAJO, los transistores de salida son habilitados, lo que permite el control del motor.
MS2 : Entrada Lógica. Ver tabla de verdad de abajo para los ALTOS y BAJOS que definen la funcionalidad.
GND : Tierra.
M+ : Fuente de alimentación. 6-30V, corriente 2A.

Conexiones de la parte inferior de la placa

También hay conexiones en la parte inferior de la placa. Sus funciones son:

GND : Tierra.
5V : Salida. Este pin puede ser utilizado para alimentar un circuito externo. Se pueden utilizar como máximo 70 mA para asegurar la funcionalidad del controlador.
SLP : Entrada lógica. Cuando pone a BAJO, las salidas están desactivadas y el consumo de energía se reduce al mínimo.
MS1 : Entrada lógica. Ver tabla de verdad de abajo para los ALTOS y BAJOS que definen la funcionalidad.
GND : Tierra.
STEP : Entrada lógica. Cualquier transición en este pin de BAJO a ALTO activa el motor para que avance un paso. La dirección y la extensión de los pasos se controla por la configuración de los pines DIR y MSx. Esta podrá ser de 0 a 5 V, o de 0 a 3 V en base al nivel lógico que se ha seleccionado.
DIR : Entrada lógica. Esta línea determina la dirección de rotación del motor. Los cambios en el estado de ALTO a BAJO, o BAJO a ALTO solo tienen efecto en el siguiente flanco de subida de la línea de comando STEP. Esta podrá ser de 0 a 5 V, o de 0 a 3 V en base al nivel lógico que se ha seleccionado.

Puentes de soldadura

Hay dos conjuntos de puntos de soldadura para soldar puentes de configuración en la placa. Estos proporcionan las siguientes elecciones para el usuario:

3/5 V – Este puente permite que el usuario defina la configuración de VCC entre 3,3 V o 5 V. Con el puente abierto, VCC será de 5 V. Si el puente está cerrado, VCC es de 3,3 V. El valor de VCC define los niveles lógicos que aceptará la placa en sus entradas.

APWR – Este puente habilita que la fuente VCC entregue + y GND en los pines de alimentación de hardware externo.

Potenciómetro de ajuste de corriente

El potenciómetro que se incluye en la placa permite que los usuarios puedan ajustar la corriente máxima que se suministra al motor. El rango de ajuste va de 150 mA a 750 mA. Esto requerirá saber qué valores de corriente puede manejar su motor. Revise la hoja de datos del motor para una calibración correcta.

Si usted no puede encontrar esta información, no se preocupe: todavía puede encontrar el ajuste adecuado de este potenciómetro. En primer lugar, establezca el potenciómetro en su valor mínimo. Tenga en cuenta que el potenciómetro es delicado, así que no fuerce el potenciómetro más allá de los topes mecánicos que lo detienen en ambos extremos de su giro. Aumente lentamente la corriente observando el movimiento del motor. Una vez que el motor se mueva a una velocidad lenta pero constante, gire poco a poco el potenciómetro y preste atención al comportamiento del motor. Usted debe encontrar un punto justo en el que el motor no salte o se observen tirones entre los pasos.

Conectar los cables de las bobinas del motor

Usted tendrá que determinar cuáles son los pares de cables de cada bobina del motor que va a utilizar. El método más fiable para hacerlo es observar la hoja de datos del motor, donde indicará los colores de los cables o la posición de los puntos de conexión.

Diagrama de bobinas de un motor paso a paso NEMA 16 con cables


Sin embargo, si usted va a utilizar cualquier otro motor paso a paso de 4 o 6 cables, es posible determinar los pares correctos de cables de cada bobina a conectar sin tener la hoja de datos.

Determinación de los cables de un motor paso a paso

En un motor de 4 cables, tome uno de los cables y compruebe con un multímetro su resistencia contra cada uno de los tres cables restantes. Aquel cable que muestre el menor valor de resistencia contra el primer cable es el que está apareado con él. Los otros dos cables deben mostrar resistencia similar entre ellos.

Para un motor de 6 cables, usted tendrá que determinar cuáles son los tres cables que están unidos a una bobina. Escoja un cable y pruebe su valor de resistencia contra todos los otros cables. Dos de los cables deben mostrar algún valor de resistencia entre ellos y el primer cable escogido, mientras que los otros tres no mostrarán conexión en absoluto. Una vez que se han determinado cuáles son los tres cables de una bobina, busque a dos entre estos tres que muestren la mayor resistencia entre sí. Estos serán los cables a usar de esta bobina. Repita el procedimiento para el segundo grupo de tres cables.




Una vez que haya determinado los pares de cables de la bobina, debe unirlos a la placa EasyDriver. El par de cables de la primera bobina debe ser conectado a la conexión Coil A+ y el otro a Coil A-. El par de cables de la segunda bobina se conecta a Coil B+ y a Coil B-. Las bobinas no tienen polaridad, así que usted no debe preocuparse de conectar una bobina al revés en la placa. En nuestro ejemplo, estamos usando un motor de 4 cables. Las conexiones entre la EasyDriver y el motor son como sigue.

Conexión EasyDriver al motor (Nema 14, 16 o similar)

Conecte una fuente de alimentación

Una vez que el motor está cableado, puede conectar una fuente de alimentación para la EasyDriver. Se puede utilizar cualquier tipo de fuente de alimentación (de escritorio, adaptador de pared, una batería, etc.), pero compruebe que cualquiera sea la opción que se utilice debe ser capaz de entregar hasta 2 A y estar en el rango de 6 V a 30 V.

Conecte la fuente de alimentación a M+ y GND. Recuerde desconectar la alimentación antes de conectar o desconectar el motor.

Conectar a un microcontrolador

Necesitaremos:

Cables

Arduino UNO R3

Conectores

Motor paso a paso bipolar con corriente de bobina hasta un máximo de 700 mA

Para este ejemplo, vamos a utilizar un Arduino UNO. Sin embargo, cualquier microcontrolador que funcione con una lógica de 3,3 V o 5 V, y que posea entradas / salidas digitales con capacidad de trabajar en modo PWM sirve para utilizar con este ejemplo de circuito.

Aquí están las conexiones para nuestro ejemplo:

Circuito final

Una vez que está todo conectado, el circuito debe tener el siguiente aspecto:

Ejemplo de código básico para el Arduino

Ahora que usted tiene el hardware conectado y listo para funcionar, es el momento de obtener el código y cargarlo. En primer lugar, descargue el programa de ejemplo.

DESCARGAR EL PROGRAMA DE DEMOSTRACIÓN DE LA PLACA EASYDRIVER
DESCARGAR PROGRAMA COMPLETO CON COMENTARIOS Y NOMBRES EN ESPAÑOL

Para obtener el código más actualizado que esté disponible, se puede consultar el repositorio de GitHub. Si usted necesita un recordatorio en cuanto a cómo se instala una biblioteca en el IDE de Arduino, por favor vea este tutorial aquí.

La primera sección del programa define todas las conexiones entre el Arduino y la EasyDriver. También establece estos pines como salidas, y los pone a los niveles lógicos adecuados para comenzar a manejar el motor.

Una cosa que debemos señalar es que el código también inicializa la conexión serie a 9600 bps. Esto permite que el usuario dé las indicaciones para controlar la funcionalidad del motor y depurar las conexiones, si es necesario.

El bucle principal del código es bastante simple. Arduino comprueba el puerto serie para ver si hay una orden ingresada por el usuario. Cuando lo recibe, compara con las cuatro posibles funciones para el motor, que inicia su funcionamiento cuando llega la entrada del usuario. Si se escribe una entrada que no sea una de las opciones posibles, Arduino imprime una indicación de error en el puerto serie.

Después de que la solicitud de una función se ha completado, la EasyDriver se restablece a los valores predeterminados.

La primera de las cuatro funciones que se habilita en este programa de demostración es un ejemplo básico que muestra el motor girando en un sentido. El pin de dirección (DIR) se coloca en BAJO (LOW), que para nuestro programa se define como la dirección «Adelante». A continuación, pone el pin STEP a ALTO (HIGH), hace una pausa y, a continuación, lo coloca en BAJO.

Recuerde: el motor da pasos cuando hay transiciones en el pin STEP de BAJO a ALTO, por lo que hay que cambiar el estado del pin una y otra vez. Esto se repite 1000 veces y, a continuación, Arduino solicita una entrada de usuario para determinar la siguiente actividad del motor.

La función de giro inverso funciona exactamente de la misma forma que la anterior, la única diferencia es que en lugar de poner el pin de dirección a BAJO, lo establecemos en ALTO, por lo tanto cambiará la dirección de giro del motor.

Una cosa que usted puede probar en cualquiera de estas dos funciones es modificar la velocidad del motor al cambiar el valor pasado a delay(). Está establecido en 1 microsegundo, haciendo que el pulso para cada paso sea de 2 microsegundos. El aumento de la demora reduce la velocidad del motor, mientras que al disminuir el retardo aumenta la velocidad del motor.

La tercera función demuestra las diferentes opciones de micropasos (microstepping) que proporciona la EasyDriver. Para habilitar el motor paso a paso a 1/8 de paso, debemos establecer MS1 y MS2 en ALTO. Esto establece la lógica de la placa al modo de 1/8 de paso.

Si usted quiere probar el motor paso a paso con diferentes modos de paso, cambie la configuración de uno de los pines MS#. Compruebe la tabla en la sección de Descripción de Hardware, si usted necesita recordar qué modo se habilita al configurar los diversos estados de las entradas.

La última función de movimiento disponible muestra cómo el motor puede cambiar de dirección en un instante. La función trabaja como en el avance y retroceso de las funciones anteriores, pero cambia entre los estados con rapidez. Este ejemplo de prueba del motor paso a paso le hace dar 1000 pasos hacia adelante y, a continuación, invertir 1000 pasos. Esto permite, precisamente, mover algo con el motor en una dirección, y volver exactamente a la posición inicial.

El control preciso de posición es una gran ventaja de los motores paso a paso.

Una vez que la acción concluye, los pines de entrada se deben volver a establecer en el estado predeterminado para evitar comportamientos inesperados del motor, o no deseados. Hacemos uso de la función resetEDPins() para lograr esto.

Programa completo

Ejemplos adicionales

Además el ejemplo presentado aquí, también se puede instalar la biblioteca AccelStepper. Hay algunos ejemplos adicionales en esta biblioteca que pueden ser beneficiosos para utilizar con su EasyDriver. Descargue e instale la biblioteca en su carpeta de bibliotecas Arduino.

Usted también puede encontrar algunos ejemplos adicionales sobre la EasyDriver en la página aquí.

Recursos Adicionales

Eche un vistazo a estos recursos adicionales para obtener más información y otras ideas para sus proyectos.

Página de Schmalz Haus sobre el Easy Driver
Repositorio de GitHub
Hoja de datos del integrado A3967



Arduino: Motor paso a paso 28BYJ-48 y módulo ULN2003

Un motor paso a paso es un dispositivo electromecánico que convierte pulsos eléctricos en movimientos mecánicos exactos. El eje de un motor paso a paso gira en pasos de ángulos fijos cuando se le aplican impulsos eléctricos en la secuencia correcta. La dirección de rotación del eje del motor se relaciona directamente con la secuencia de los pulsos. La velocidad de la rotación del eje está relacionada con la frecuencia de los pulsos de entrada y la duración de la rotación está relacionada con la cantidad de pulsos que se aplican a la entrada.

Una de las ventajas más importantes de un motor paso a paso es su capacidad de ser controlado con precisión en un sistema de lazo abierto, es decir, sin necesidad de ninguna realimentación que indique su posición. Este tipo de control elimina la necesidad de costosos dispositivos de detección y ajuste, como los codificadores ópticos.

Para ampliar su conocimiento en más detalle sobre motores paso a paso ver aquí.

28BYJ-48 y su módulo controlador asociado ULN2003

El motor 28BYJ-48 tiene un ángulo de paso de 5,625 grados (64 pasos por vuelta usando half-step). El reductor interno tiene una relación de 1/64. Combinados, la precisión total es 64 x 64 = 4096 pasos por vuelta, equivalente a un paso de 0,088°, que resulta en una precisión muy elevada. Debido a alguna razón mecánica que el fabricante no explica, no son exactamente 4096: es necesario aclarar que la cantidad verdadera de pasos para dar una vuelta completa de 360° —como verán en el programa— es de 4076.

Los parámetros de este motor paso a paso son:

  • Modelo: 28BYJ-48 – 5V
  • Tensión nominal: 5V (o 12 V, valor indicado en la parte trasera).
  • Cantidad de fases: 4.
  • Reductor de velocidad: 1/64
  • Ángulo de paso: 5,625° / 64
  • Frecuencia: 100Hz
  • Resistencia en CC: 50Ω ±7 % (25° C)
  • Frecuencia con tracción: > 600Hz
  • Frecuencia sin tracción: > 1000Hz
  • Torque con tracción: >34,3mN.m (120Hz)
  • Torque en autoposicionamiento: >34,3mN.m
  • Torque con fricción: 600-1200 gf.cm
  • Arrastre en torque: 300 gf.cm
  • Resistencia de aislación > 10MΩ (500V)
  • Aislación eléctrica: 600VAC/1mA/1s
  • Grado de aislación: A
  • Aumento de temperatura: < 40K (120Hz)
  • Ruido: < 35dB (120Hz, sin carga, 10cm)

El integrado ULN2003

Consiste en un conjunto de 7 pares de transistores en configuración Darlington, con diodo de protección de contracorriente. Cada salida es capaz de manejar 500 mA y hasta 50V en sus salidas.

Diagrama en bloques:

Diagrama interno de cada circuito:

Los circuitos de transistores Darlington tienen un resistor en la entrada, de modo que se los puede conectar directamente a la salida de un microcontrolador. También tienen protección con un diodo para evitar daños en las entradas, si accidentalmente se les aplica un voltaje negativo.

¿Cómo se acciona?

El motor tiene cuatro bobinados que son excitados en una precisa secuencia para hacer girar el eje.

En el modo elegido, de medio paso, o “half step”, primero se excita una bobina, luego dos a la vez, luego la siguiente… Y así hasta completar la secuencia. Para cambiar el sentido de giro, simplemente se invierte el orden de la secuencia.

Diagrama de las dos secuencias usadas habitualmente

Por eso, en la secuencia de medio paso (half step, en inglés), la variación de señales necesaria para el funcionamiento en uno u otro sentido tiene 8 combinaciones, tal como lo muestra el cuadro.

Vista del conector al motor y las salidas A, B, C, D y E (entrada de alimentación):

Diagrama de la placa de control:

A (Azul), B (Rosa), C (Amarillo), D (Naranja), E (Rojo)

La conexión entre el módulo y el motor no requiere mucha atención ya que tiene un conector con ranuras para guiar la unión entre los dos dispositivos.

El módulo posee cuatro leds que indican qué bobina está activada (dibujo de arriba) en cada momento.

La salida de 5V de la placa Arduino es suficiente para un motor, pero si su proyecto tiene más elementos conectados, debe usar una fuente de alimentación externa de 5V, debido a que se puede exceder la corriente que es capaz de suministrar el microcontrolador.

Los pines IN1, IN2, IN3 e IN4 se conectan a cuatro salidas digitales del Arduino (pines digitales del 8 al 11 empezando, por el IN1 con el 8).




Programa

El programa tal como se ve está preparado para el modo de medio paso, o half-step, ya que es el que recomienda el fabricante. Sin embargo, cambiando los signos // de comentario en el programa de un bloque de código a otro, es posible probar los tres modos en el motor.

Este programa hace girar al motor dos vueltas completas en un sentido, y luego dos vueltas en el otro sentido. Es posible cambiar algunos parámetros para ver su funcionamiento en tres modos diferentes.



Presento aquí un interesante diseño realizado con cuatro de estos motores como tracción y cuatro servos para darles dirección. Su creador lo ha llamado Stepperbot. He aquí una foto del proyecto (al que, sin duda, habría que quitarle una buena cantidad de peso acortando los cables al mínimo). Con menor peso podía moverse más rápido, utilizando ruedas de mayor diámetro.

Lo interesante es la gran flexibilidad de movimientos que ha logrado. Agrego un video para mostrar su desplazamiento.


Uso de la placa L298N para motores de CC

Este artículo es el paso 1 para ir adelantando explicaciones sobre el funcionamiento de un robot navegador con dos sensores de obstáculos al frente y uno en la parte trasera, que publicaré en breve. Nos muestra cómo se debe utilizar la placa de manejo (doble puente H) L298N para controlar un motor de CC.

Este módulo tan común en el Mercado, basado en el chip L298, permite controlar dos motores de corriente continua, o un motor paso a paso bipolar, en ambos casos de hasta 2 A por salida.

Diagrama de circuito del circuito integrado L298

El módulo es autosuficiente para funcionar en el control de los motores, sin que sea necesario disponer de elementos adicionales. Ya tiene los diodos de protección de contracorriente y un regulador LM78M05 interno que suministra 5V a la parte lógica del integrado L298.

La salida en la bornera A esta compuesta por las líneas OUT1 y OUT2, y la salida B por OUT3 y OUT4.

En la parte inferior se encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4. A los lados de estas señales encontramos un pin de 5V preparado para colocar puentes de selección (jumpers) que habilitar cada una de las salidas del módulo, A y B). Los pines de habilitación son nombrados, respectivamente, ENA y ENB (por la palabra en inglés Enable = habilitación).

Conexión de alimentación

Este módulo se puede alimentar de dos maneras: utilizando o no el regulador LM7805 integrado en la placa.

El módulo permite ingresar una alimentación para los motores y lógica de entre 6V a 12V CC (7,5V a 12V si se está utilizando el regulador interno, 78M05).

Cuando el puente de selección de 5V se encuentra activo, dado que de esta manera el regulador se encuentra activo, el pin marcado como +5V tendrá un voltaje de salida de 5V CC. Este voltaje alimenta dentro de la placa la lógica del chip, y también se puede usar para dar alimentación a la parte de control del módulo, ya sea un microcontrolador de otro tipo o una placa Arduino, pero recomendamos que el consumo externo que se tome de la placa L298N no supere los 500 mA.

Cuando el jumper de selección de 5V es retirado, el módulo admite una alimentación más amplia para los motores: de entre 12V a 35V CC. Como en este caso el regulador interno 78M05 no se utiliza, tendremos que conectar el pin de +5V a una tensión de 5V externa, regulada, para alimentar la parte lógica del L298N. Usualmente esta tensión puede ser la misma de la parte de control, ya sea un microcontrolador de otra línea o una placa Arduino.

No se debe conectar una tensión de entrada al pin de +5V cuando se encuentre colocado el puente de selección de 5V. Esto provocaría un conflicto entre ambas fuentes de alimentación y podría dañar permanentemente el módulo.

Control de un motor de CC

Como demostración, vamos a controlar un motor de CC usando la salida B del módulo. El pin de habilitación ENB se mantiene en ALTO por medio de la conexión al pin 3 del Arduino, puesto en ALTO por el programa. Opcionalmente se puede conectar ENB a +5V con el jumper (marcado amarillo en los diagramas) —como se observa en la imagen de abajo—, aunque luego deberemos modificar la conexión para el segundo ejercicio.

El ejemplo fue desarrollado en Arduino UNO, pero el código es compatible con cualquier Arduino.

Esquema de conexión del ejemplo 1

Tabla de señales de control

Código en el Arduino – Ejemplo 1

El programa activará el motor en un sentido por cuatro segundos, luego detiene el motor por medio segundo, después activa el motor en sentido inverso por cuatro segundos, y por último detiene el motor durante cinco segundos. Este ciclo se repite indefinidamente.

Control de un motor CC con variación de su velocidad

Si queremos controlar la velocidad del motor, debemos hacer uso de una salida PWM, en este ejemplo la salida digital 3 del Arduino Uno. Esta señal PWM será aplicada a los pines de activación de cada salida, ENA y ENB respectivamente, de manera que en este caso los jumper de habilitación a +5V no deben ser colocados.




Esquema de conexión del ejemplo 2

Código en el Arduino – Ejemplo 2

Este programa controla la velocidad de un motor CC aplicando una señal PWM al pin ENB del módulo L298N. Se observará un ciclo de tres velocidades diferentes. Usted puede probar diversos valores de velocidad, pero nunca baje el valor 55 porque un motor que no esté libre (con caja de engranajes, por ejemplo) pude quedar sin girar pero alimentado, lo que producirá una corriente elevada.

Diagrama de circuito del módulo

Diagrama de ejemplo para un robot

Artículos relacionados:
Uso de la placa L298N para motores de CC
Puente H: Placa controladora de motores L9110S
Guía rápida de placas de control de motores
Manejo de potencia para motores con el integrado L293D
Control de motores de CC por Ancho de Pulso (PWM)



Puente H: Placa controladora de motores L9110S

La placa L9110S está diseñada para que los microcontroladores o circuitos lógicos puedan controlar con sencillez motores de corriente continua.

Driver de motores L9110S

El circuito está diseñado en base al chip controlador L9110, fabricado en la clásica cápsula DIP8 o en un diseño SOP8 SMD y basado en transistores MOSFET.

Circuito integrado L9110S

La tensión de alimentación para los motores puede variar de 2,5 a 12 V.

Diagrama de conexión

Como se observa en el siguiente diagrama, el control con el cableado típico no requiere componentes adicionales.

Conexión básica

Las entradas se pueden conectar directamente al microcontrolador. Si se conectan a un circuito que tiene salidas OC (Open Colector, o Colector Abierto) se requiere una resistencia pull-up conectada a la alimentación de 5V. Si bien en la hoja de datos del chip indica que el valor adecuado es ?1 k?, el módulo en sí incluye en su circuito resistores de 10 k? conectados al voltaje de alimentación de la lógica, o Vcc.

El circuito tiene dos entradas: una que puesta en ALTO hará que el motor avance, y una que puesta en ALTO hará que retroceda. Si se desea que el motor esté detenido, ambas entradas deben estar en el mismo valor: las dos en estado BAJO (LOW), o ambas en estado alto (HIGH). La placa tiene dos salidas, con bornera, que se conectan directamente al motor.

Las entradas que no se conectan a un circuito son tomadas como nivel BAJO (L, o Low) sin que ingrese ruido. Con un nivel ALTO (H, o HIGH), la corriente en esa entrada será de alrededor de 1 mA. El nivel de tensión para que el chip detecte la entrada en estado lógico BAJO o L es como máximo de 0,7 V.

Típicamente, para el nivel ALTO o H, la tensión en el pin de entrada debe ser de alrededor de la mitad del valor de alimentación o más (hasta, como máximo, el valor de la tensión de alimentación).

La corriente del motor se puede mantener constantemente desde 0,75 hasta 0,8 A (750 a 800 mA), y el circuito soporta picos de 1,5 a 2 A.

La hoja de datos ofrece una lista de los valores lógicos de las entradas y salidas.

nuevo-5

Esta tabla se puede ampliar para situaciones no típicas. Si sólo hay una entrada en el nivel H y la otra está en nivel L, el motor gira. Pero si ambas entradas están en H, o ambas entradas están en L, las salidas están en un tercer estado, o “flotante” (ningún voltaje), y no ambas en 0 volt, o “L”, como se muestra en la tabla.

Las salidas están conectadas internamente a diodos que protegen al circuito de los pulsos de contracorriente.




El L9110 gestiona dinámicamente frecuencias de hasta 40 kHz, mientras que el tiempo de conmutación más breve para la regulación por ancho de pulso (PWM) es de alrededor de 15 uS.

Diagrama de conexiones

Conexiones

Diagrama eléctrico

Circuito Eléctrico

Ejemplo práctico para controlar un robot

Ejemplo práctico - Control de un Robot

Ejemplo de programa para Arduino: prueba de movimientos

L9110S como amplificador de sonido para su robot

El control de un motor no es la única aplicación posible. El circuito también se puede utilizar como un sustituto de amplificador de potencia para una salida de audio digital de un microcontrolador.

En lugar de conmutar corriente a través del parlante como se realiza habitualmente, con un transistor, este circuito proporciona una doble amplitud de los impulsos de salida y, por lo tanto, aporta una potencia significativamente mayor.

Para una fuente de alimentación de 5 V es conveniente conectar un altavoz con una impedancia de 8 ? (o superior), mientras que con una entrada de 3 voltios puede utilizarse un altavoz adaptado a un voltaje menor. Para controlar el altavoz es necesario utilizar dos salidas en las que el nivel H alternará en cada media onda de la frecuencia del sonido.

En la siguiente figura hay una conexión que es normal con una salida, y funciona bien de 5 Hz a aproximadamente 30 kHz. Es importante mantener la condición de salida del microcontrolador en un nivel H cuando no se emite sonido, de lo contrario circulará corriente constante por el parlante.

Amplificador

Artículos relacionados:
Uso de la placa L298N para motores de CC
Puente H: Placa controladora de motores L9110S
Guía rápida de placas de control de motores
Manejo de potencia para motores con el integrado L293D
Control de motores de CC por Ancho de Pulso (PWM)