MD49 es un circuito de control de motores de corriente continua mediante bus serie, capaz de controlar hasta 2 motores de 5 amperios a 24V. Este circuito
es el mismo empleado en nuestro kit de locomoción S300374 que esta especialmente indicado para robots de 3 a 20 Kg. El circuito no solo controla
los motores, sino que además es capaz de controlar los codificadores de cuadrante de los motores (encoders) y actuar en consecuencia, permitiendo
al controlador saber exactamente la distancia recorrida y el sentido de la misma. También se puede hacer que el circuito controle la dirección
haciendo que los motores se muevan en modo diferencial y que la potencia aplicada a los motores sea proporcional a la energía requerida por el motor
para hacer un movimiento. La alimentación única a 24V y el control desde cualquier microcontrolador con salida serie a 5V hacen del MD49
una solución idónea para cualquier robot de mediano tamaño. El circuito esta protegido contra cortocircuitos en los motores, excesos
de consumos o sobretensiones que son detectadas y reportadas por el puerto serie. No se puede conectar directamente a un puerto RS232 de ordenador. Velocidad
9600 o 38400, nivel TTL de 5V.
Descripción General
El MD49 es un potente controlador dual de motor serie, diseñado para su uso con nuestro motor EMG49 (MOTOR DC REDUCTOR 24V 122 RPM CON ENCODER
EMG49 S330105). Las características más destacadas del circuito son:
- Lee los codificadores de cuadrante (encoder) de los motores y proporciona recuentos en los registros para determinar la distancia cubierta y la dirección
de la rotación.
- Puede controlar dos motores de forma independiente o conjunta.
- La corriente del motor puede leerse a través de los registros.
- Utiliza una única fuente de alimentación de 24 voltios.
- Permite controlar no solo la velocidad, sino la dirección según el modo de funcionamiento deseado.
- La regulación de la aceleración variable y de la potencia es también posible.
- La protección contra la salida de cortocircuitos, sobrecorriente y tensión incorrecta. También incluye un indicador LED de error
y un byte de error para el diagnóstico de los fallos.
Conexiones
Regulación automática de velocidad
El controlador MD49 puede aumentar de forma dinámica la potencia recibiendo la información de los codificadores según sea necesario.
Si no se lograse la velocidad requerida, el controlador MD49 aumentará la potencia de los motores hasta alcanzar la velocidad deseada o hasta que
se alcance la salida máxima. La regulación de velocidad puede desactivarse a través del comando REGULATOR DISABLE.
Pausa automática del motor
El controlador MD49 detendrá automáticamente los motores si no hay comunicaciones serie en 2 segundos. Esta función sirve para evitar
que su robot pierda el control en caso de que el controlador falle. Esta función puede desactivarse, si se desea, con el comando DISABLE TIMEOUT.
Control del MD49
El módulo MD49 está diseñado para funcionar con un bus serie de nivel TTL (niveles de 5 voltios) con unos baudios de 9600 o 38400
en función de la selección del jumper y admite uno o dos bits de parada. Se ha incorporado un jumper para establecer la tasa de baudios por
defecto a 38400. No conecte el módulo MD49 a RS232 directamente; si desea conectarlo a RS232, deberá utilizar un convertidor de nivel de
voltaje como un ST232 o MAX232.
Comandos del MD49
Un conjunto de comandos de fácil uso que proporciona todas las funciones que ofrece el módulo MD49. Los comandos se envían con un
byte de sincronización de 0 al comienzo y después el comando seguido de cualquier byte de datos. El MD49 responderá entonces si el
comando es el adecuado.
Comando |
Nombre |
Bytes enviados a MD49 |
Bytes devueltos por MD49 |
Descripción |
0x21 |
Velocidad 1 |
2 |
1 |
Devuelve la velocidad de la corriente requerida del motor 1 |
0x22 |
Velocidad 2 |
2 |
1 |
Devuelve la velocidad de la corriente requerida del motor 2 |
0x23 |
Leer Codificador 1 |
2 |
4 |
Recuento del codificador motor 1, 4 bytes devueltos primero el de mayor bytes ( con signo) |
0x24 |
Leer Codificador 2 |
2 |
4 |
Recuento del codificador motor 2, 4 bytes devueltos primero el de mayor bytes ( con signo) |
0x25 |
Leer Codificadores |
2 |
8 |
Devuelve 8 bytes - recuento codificador 1, recuento codificador 2 |
0x26 |
Leer Tensión |
2 |
1 |
Devuelve el nivel de entrada del voltaje de las baterías |
0x27 |
Leer Corriente 1 |
2 |
1 |
Devuelve la corriente consumida por el motor 1 |
0x28 |
Leer Corriente 2 |
2 |
1 |
Devuelve la corriente consumida por el motor 2 |
0x29 |
Leer Versión |
2 |
1 |
Devuelve la versión del software MD49 |
0x2A |
Leer Aceleración |
2 |
1 |
Devuelve el nivel de aceleración de la corriente |
0x2B |
Leer Modo |
2 |
1 |
Devuelve el modo de la corriente seleccionada |
0x2C |
Leer VI |
2 |
3 |
Devuelve los voltios de las baterías, la corriente del motor 1 y entonces la corriente del motor 2 |
0x2C |
Leer ERROR |
2 |
1 |
Devuelve 1 byte cuyos bits indican los estados de error |
0x31 |
Establece Velocidad 1 |
3 |
0 |
Establece una nueva velocidad1 |
0x32 |
Establece Velocidad 2 / GIRO |
3 |
0 |
Establece nueva velocidad 2 o giro |
0x33 |
Establece Aceleración |
3 |
0 |
Establece nueva aceleración |
0x34 |
Establece Modo |
3 |
0 |
Establece el modo |
0x35 |
Borrar Codificadores |
2 |
0 |
Borra los recuentos de los dos codificadores |
0x36 |
Deshabilita la Regulación |
2 |
0 |
La salida de los motores no cambia por la retroalimentación del codificador |
0x37 |
Habilita la Regulación |
2 |
0 |
la salida de los motores es regulada por la retroalimentación del codificador |
0x38 |
Deshabilita el TimeOut |
2 |
0 |
El MD49 continuará funcionando aunque no reciba comandos en 2 segundos |
0x39 |
Habilita la regulación |
2 |
0 |
El MD49 se parará después de 2 segundos sin comunicación |
Por ejemplo, para leer la tensión de la batería, envíe los comandos:
0x00 - byte de sincronización
0x26 - READ VOLTS
y el MD49 respondería con
0x18 - byte devuelto (24 decimal) 24v
Registro de Velocidad1
Dependiendo del modo en el que esté trabajando, este registro puede afectar a la velocidad de uno de los motores o de ambos. El modo 0 ó 1
sirve para establecer la velocidad y la dirección del motor 1. Cuanto más grande sea el número escrito en este registro, mayor será la
potencia aplicada al motor. El 2 ó 3 sirve para controlar la velocidad y dirección de ambos motores (puede afectar al registro de giro).
Registro de Velocidad2/Giro
El modo 0 ó 1 sirve para definir la velocidad y dirección del motor 2. En el modo 2 ó 3, la Velocidad2 se convierte en el registro de
Giro, y cualquier valor en este registro se combinará con los contenidos de Velocidad1 para controlar la dirección del dispositivo (vea a continuación).
Modo de Giro
El modo de Giro comprueba el registro de velocidad para decidir si la dirección es hacia adelante o hacia atrás. Entonces suma o resta el valor
de giro en cualquiera de los dos motores.
Por lo tanto, si la dirección es hacia adelante
la velocidad1 del motor = velocidad - giro
velocidad2 del motor = velocidad + giro
mientras que si la dirección es hacia atrás la
velocidad1 del motor = velocidad + giro
velocidad2 del motor = velocidad - giro
Si alguno de los motores no pudiera alcanzar la velocidad requerida para el giro (más allá de la salida máxima), entonces el programa
cambiará automáticamente el otro motor para que compense la diferencia necesaria.
Registros de codificador
Cuando se ejecuta un comando del codificador, el módulo MD49 enviará 4 bytes de nivel lógico alto primero, que debería sumarse
para formar un número con signo de 32 bits. Por ejemplo, un comando GET ENCODER 1 podría devolver 0x00,0x10,0x56,0x32.
Deberá entonces declarar una variable con signo de 32 bits en su programa, para C:
long result;
result = serin() << 24ul; // (0x00 shifted 24 bits left)
result += serin() << 16ul; // (0x10 shifted 16 bits left)
result += serin() << 8ul; // (0x56 shifted 8 bits left)
result += serin(); // (0x32)
da como resultado ahora un valor 1070642 decimal o 0x105632 hexadecimal. Si el bit más alto estaba establecido entonces sería -ve.
los codificadores de lectura enviarán el recuento del codificador de lectura 1 y a continuación el recuento del codificador de lectura 2
pero se suman exactamente de la misma manera. Los registros pueden ponerse a cero en cualquier momento escribiendo 0x35 en el MD49.
Tensión de la batería
En este registro se puede obtener una lectura de la tensión de la batería conectada. La lectura es 10 veces la tensión (24 para 24v).
Corriente del Motor 1 y 2
En este registro puede obtener el promedio de corriente a través del motor. La lectura es aproximadamente 10 veces el número de amperios
(25 para 2.5A).
Número de revisión de Software
Este registro contiene el número de revisión del software en los módulos del controlador PIC18F2321 - actualmente 1 en el momento
de la escritura.
Tasa de aceleración
Si necesita un periodo de aceleración controlada para los motores conectados para alcanzar la velocidad máxima deseada, puede utilizar el
registro correspondiente del controlador MD49. Funciona utilizando un valor de aceleración enviado e incrementando la potencia por dicho valor.
Cambio de la velocidad actual de los motores y la nueva velocidad. Si los motores trabajan a toda velocidad hacia adelante (255) y se les da la orden de
moverse a toda velocidad en dirección inversa (0), entonces habría pasos de 255 con un registro de aceleración con un valor 1, y pasos
de 128 para un valor 2. El valor por defecto de aceleración es 5, lo que significa que la velocidad se cambiará de dirección hacia
adelante a dirección hacia atrás en tan sólo 0,816 segundos. El comando WRITE ACCELERATION aceptará valores desde 1 hasta el
10 que equivale a un periodo de tan sólo 0,416 segundos para poder cambiar el sentido de la marcha a toda velocidad.
Utilice la siguiente fórmula para calcular el tiempo (segundos) para alcanzar la aceleración:
si la velocidad nueva es > velocidad actual
pasos = (nueva velocidad - velocidad actual) / registro de aceleración
si la velocidad nueva es < velocidad actual
pasos = (velocidad actual - nueva velocidad) / registro de aceleración
tiempo = pasos * 16ms
Por ejemplo::
Registro de aceleración |
Tiempo/Paso |
Velocidad actual |
Nueva velocidad |
Pasos |
Tiempo de aceleración |
1 |
16 ms |
0 |
255 |
255 |
4,08 s |
2 |
16 ms |
127 |
255 |
64 |
1,024 s |
3 |
16 ms |
80 |
0 |
27 |
0,432 s |
5 (por defecto) |
16 ms |
0 |
255 |
51 |
0,816 s |
10 |
16 ms |
255 |
0 |
26 |
0,416 s |
Registro de modo
El comando de modo cambia la forma en la que se utilizan los valores de velocidad/giro. Las opciones son:
0, (Valor por defecto) Si se escribe un valor 0 en el registro de modo, entonces los registros de velocidad
serán las velocidades literales en el rango de 0 (Marcha atrás) 128 (Parada) 255 (Marcha hacia delante).
1, El Modo 1 es similar al Modo 0, salvo en que los valores de velocidad se interpretan como valores con signo. El significado
de los registros de velocidad es la velocidad literal en el rango -128 (Marcha hacia delante) 0 (Parada) 127 (Marcha hacia delante).
2, Si se escribe un valor 2 en el registro de modo, la velocidad1 controlará la velocidad de ambos motores, y velocidad2
se convierte en la velocidad de giro.
Los datos están en el rango entre 0 (Marcha hacia atrás) 128 (Parada) 255 (Marcha hacia delante).
3, El Modo 3 es similar al Modo 2, salvo en que los registros de velocidad se interpretan como valores con signo.
Los datos están en el rango entre -128 (Marcha hacia atrás) 0 (Parada) 127 (Marcha hacia adelante)
GET VI
Este comando ordena al módulo MD49 que envíe la lectura de los voltios de la batería (25 = 25v), después la corriente consumida
por el motor 1 (aproximadamente 1 recuento por 100 mA) y finalmente la corriente consumida actualmente por el motor 2.
GET ERROR
En el caso de que se produzca un error, el LED rojo se iluminará y un byte que contenga el tipo del error que esté experimentando el módulo
MD49 tendrá el conjunto de set correspondiente. Los bits son:
bit 7 |
bit 6 |
bit 5 |
bit 4 |
bit 3 |
bit 2 |
bit 1 |
bit 0 |
UNDER 16V |
OVER 30V |
MOTOR 2 SHORT |
MOTOR 1 SHORT |
MOTOR 2 TRIP |
MOTOR 1 TRIP |
- |
- |
bit 7 - UNDER 16V detiene la alimentación que se está enviando al motor cuando la fuente ha caído por debajo del umbral inferior
de 16V. Cuando la alimentación vuelve a los 18V, el error se borrará y la alimentación volverá a aplicarse.
bit 6 - el bloqueo OVER 30V evita un exceso de tensión que se está transmitiendo al motor, el error se borrará y la alimentación
se aplicará cuando ésta baje a 28V o menos.
bit 5 - MOTOR 2 SHORT indica que se ha detectado un cortocircuito directo en la salida del motor 2. Este error estará activo hasta que la alimentación
haya sido desconectada y vuelta a conectar.
bit 4 - MOTOR 1 SHORT indica que se ha detectado un cortocircuito directo en la salida del motor 1. Este error estará activo hasta que la alimentación
haya sido desconectada y vuelta a conectar.
bit 3 - MOTOR 2 TRIP indica que se ha detectado una corriente de mas de 10 Amperios en el motor 2. Este error estará activo hasta que la alimentación
haya sido desconectada y vuelta a conectar.
bit 2 - MOTOR 1 TRIP indica que se ha detectado una corriente de mas de 10 Amperios en el motor 1. Este error estará activo hasta que la alimentación
haya sido desconectada y vuelta a conectar.
Dimensiones del MD49
Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.
80,85-Euros.
IVA incluido
|
CONTROLADOR SERIE DE MOTORES DC DOBLE 5 + 5 AMPERIOS MD49
Vea mas productos de esta categoría en:
Controladores de Motores
Ir a la Página Principal de www.SuperRobotica.com
Actualizada el 14/06/2024 © 2002 -2024 INTPLUS ®. Todos los derechos reservados
|