|

MD23 es un circuito de tipo puente en H capaz de controlar dos motores de corriente continua de hasta 3 amperios y 12V.
El circuito se controla externamente mediante un bus I2C que permite su comunicación con cualquier microcontrolador
moderno, incluyendo BasicX, Pic, Atmel y un largo etc. El circuito cuenta con numerosos registros que controlar la aceleración,
la velocidad, la corriente de cada motor y los contadores de los encoders de cada motor. También, cuenta con su propio
regulador de tensión que proporciona hasta 300 ma para alimentar un circuito externo, por lo que solo es necesario
la alimentación de 12V tanto para la electrónica como para los motores. Cuenta con varios modos de trabajo
incluyendo uno independiente con o sin control de velocidad y otro modo diferencial que facilita el trabajo a la hora de
controlar un robot con comandos de velocidad y dirección. Este circuito cuenta con entradas para codificadores de
motores que devuelven un tren de impulsos conforme gira el eje del motor. Esto permite al circuito aplicar mayor o menor
potencia a los motores para conseguir que alcance la velocidad real establecida en el registro correspondiente. De esta forma
se consigue que la velocidad sea siempre la misma independientemente de la carga o la resistencia que encuentre el motor.
Los contadores de impulsos, también puede leerse externamente para determinar la distancia real recorrida, los giros
etc. Se recomienda su utilización con los motores EMG30 S330100.
Descripción General
El MD23 se trata de un potente circuito controlador dual de motor a través de bus I2C, diseñado para su uso
con nuestro motor EMG30 (Motor DC reductor 12 voltios 170 RPM con codificador EMG30 - S330100).
Las características más destacadas del producto son:
1. Lee los codificadores de cuadrante de los motores y proporciona recuentos en los registros para determinar
la distancia cubierta y la dirección.
2. Puede controlar dos motores de forma independiente o conjunta.
3. La corriente del motor puede leerse a través de los registros.
4. La alimentación del módulos es única de 12v.
5. El regulador de 5 v en placa puede proporcionar hasta 1A de pico o 300mA de forma continua para los
circuitos externos
6. Su función de control de dirección puede controlarse a través del valor del registro
de I2C.
7. Permite la regulación de la aceleración, así como de la potencia.
Supresión del ruido de motor
Al utilizar los motores EMG30 con codificador, podrá comprobar que se ha añadido un condensador de supresión
de ruido de 10n. Los demás motores requieren supresión. Para agregar la supresión, basta con agregar un
condensador de supresión de 10n en los motores. El condensador debería ser capaz de manejar una tensión
dos veces superior a la tensión del motor.
Indicadores luminosos
El led de alimentación de color rojo indica que se ha aplicado la alimentación al módulo.
Un led de color verde parpadea para indicar mediante destellos la dirección I2C y después se ilumina durante
500mS para indicar que la actividad del bus I2C es correcta en el módulo. El temporizador interno de 500mS se pone a
cero cada vez que se hay actividad en el bus I2C, por lo que estará activo durante un acceso continuo.
Regulación automática de velocidad
El controlador MD23 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 MD23 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 registro de comandos.
Pausa automática del motor
El controlador MD23 detendrá automáticamente los motores si no hay comunicaciones I2C 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. Consulte Registro de comandos.

Control de MD23
El controlador MD23 está diseñado para operar en un sistema de bus I2C estándar en las direcciones entre
0xB0 y 0xBE (el último bit de la dirección es un bit de lectura/escritura, por lo que sólo pueden ser
números pares), siendo 0xB0 la dirección por defecto. Se puede modificar con facilidad extrayendo el puente de
dirección o a través del software. Consulte la sección Cambio de la dirección del bus I2C.
El modo I2C permite al controlador MD23 conectarse a la mayoría de los controladores de mercado tales como PICAXE, BasicX24
y BS2P, y una amplia gama de microcontroladores como PIC, AVR, 8051, etc.
El protocolo de comunicación I2C con el módulo MD23 es el mismo que el que utiliza EPROM, es decir el 24C04.
Para leer uno o más registros de MD23, primero se envía el bit de inicio, la dirección del módulo
(0XB0 por ejemplo) con el bit de nivel lógico bajo de lectura/escritura, y después el número de registros
que desea leer. Esto va seguido de un inicio repetido, y de nuevo por la dirección del módulo con el bit lógico
alto de lectura/escritura (0XB1 en este ejemplo). Ahora ya puede leer uno o más registros. El controlador MD23 tiene
17 registros numerados del 0 al 16 de la manera siguiente:
| Registro |
Nombre |
Lectura/Escritura |
Descripción |
| 0 |
Velocidad1 |
R/W (Lectura/Escritura) |
Velocidad de Motor1 (modo 0,1) o velocidad (modo 2,3) |
| 1 |
Velocidad2/Giro |
R/W (Lectura/Escritura) |
Velocidad de Motor2 (modo 0,1) o velocidad (modo 2,3) |
| 2 |
Codificador1a |
Sólo lectura |
La posición del Codificador 1, el 1º byte (nivel lógico más alto) y recuento de la captura
durante la lectura |
| 3 |
Codificador1b |
Sólo lectura |
Posición del Codificador 1, 2º byte |
| 4 |
Codificador1c |
Sólo lectura |
Posición del Codificador 1, 3º byte |
| 5 |
Codificador1d |
Sólo lectura |
Posición del Codificador 1, 3º byte |
| 6 |
Codificador2a |
Sólo lectura |
La posición del Codificador 2, el 1º byte (nivel lógico más alto) y recuento de la captura
durante la lectura |
| 7 |
Codificador2b |
Sólo lectura |
Posición del Codificador 2, 2º byte |
| 8 |
Codificador2c |
Sólo lectura |
Posición del Codificador 2, 3º byte |
| 9 |
Codificador2d |
Sólo lectura |
Posición 2 del Codificador 4º byte (byte de nivel lógico más bajo) |
| 10 |
Voltios de la batería |
Sólo lectura |
Tensión de alimentación |
| 11 |
Corriente del Motor 1 |
Sólo lectura |
La corriente del motor 1 |
| 12 |
Corriente del Motor 2 |
Sólo lectura |
La corriente del motor 2 |
| 13 |
Revisión de software |
Sólo lectura |
Número de revisión de software |
| 14 |
Tasa de aceleración |
R/W (Lectura/Escritura) |
Registro opcional de aceleración |
| 15 |
Modo |
R/W (Lectura/Escritura) |
Modo de operación (vea a continuación) |
| 16 |
Comando |
R/W (Lectura/Escritura) |
Utilizado para poner a cero los recuentos del codificador y cambiar la dirección del módulo |
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
Cada motor dispone de un recuento del codificador almacenado en matrices de 4 bytes, junto con los bytes de un número
con signo de 32 bits,; el recuento del codificador se captura en una lectura del byte de nivel lógico más alto
(registros 2, 6) y los siguientes bytes de nivel lógico más bajo se retendrán hasta que se alcance la
lectura del byte de nivel lógico más alto. El recuento se almacena con el byte de nivel lógico más
alto en el registro del número más bajo. Los registros pueden ponerse a cero en cualquier momento escribiendo
32 (0x20) en el Registro de comandos.
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 (121 para 12.1v).
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 PIC16F873 - actualmente
2 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 MD23. Funciona utilizando un valor en el registro de aceleración
e incrementando la potencia por dicho valor. Cambio de la velocidad actual de los motores y la nueva velocidad (en los registros
la velocidad 1 y 2). 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 1,25 segundos. El registro aceptará valores
desde 1 hasta el 10 que equivale a un periodo de tan sólo 0,65 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
tiempot = pasos * 25ms
Por ejemplo::
| Registro de aceleración |
Tiempo/Paso |
Velocidad actual |
Nueva velocidad |
Pasos |
Tiempo de aceleración |
| 1 |
25 ms |
0 |
255 |
255 |
6.375 |
| 2 |
25 ms |
127 |
255 |
64 |
1,6 seg |
| 3 |
25 ms |
80 |
0 |
27 |
0,675 seg |
| 5 (por defecto) |
25 ms |
0 |
255 |
51 |
1,275 seg |
| 10 |
25 ms |
255 |
0 |
26 |
0,65 mseg |
Registro de modo
El registro de modo selecciona el modo de operación y el tipo de entrada de datos I2C que requiere el usuario. Las opciones
son:
0, (Valor por defecto) Si se escribe un valor 0 en el registro de modo, entonces el significado de la velocidad
será una velocidad literal 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 registros 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)
Registro de comandos
| Comando |
Acción
|
| Dec |
Hex |
| 32 |
20 |
Pone a cero los registros del codificador |
| 48 |
30 |
Desactiva la regulación automática de velocidad |
| 49 |
31 |
Activa la regulación automática de velocidad (por defecto) |
| 50 |
32 |
Desactiva el tiempo de inactividad de 2 segundos de los motores (a partir de la Versión 2) |
| 51 |
33 |
Activa el tiempo de inactividad de 2 segundos de los motores (por defecto) cuando no hay comunicaciones por el bus
I2c (a partir de la Versión 2) |
| 160 |
A0 |
1º en la secuencia para modificar la dirección I2C |
| 170 |
AA |
2º en la secuencia para modificar la dirección I2C |
| 165 |
A5 |
3º en la secuencia para modificar la dirección I2C |
Cambio de la dirección del bus I2C
La dirección del bus I2C puede modificarse escribiendo una nueva dirección para el controlador MD23, o configurando/quitando
el puente de dirección.
Para cambiar la dirección I2C del controlador MD23 escribiendo una nueva dirección, simplemente debe tener un
módulo en el bus. Escriba los 3 comandos de secuencias en el orden correcto seguidos de la dirección. Ejemplo:
para cambiar la dirección de un MD23 que tenga actualmente en la dirección 0xB0 (la dirección configurada
en fábrica) a 0xB4, escriba lo siguiente para la dirección 0xB0; (0xA0, 0xAA, 0xA5, 0xB4 ). Estos comandos deben
enviarse en la secuencia correcta para modificar la dirección I2C. No se puede ejecutar ningún otro comando en
medio de la secuencia. La secuencia debe enviarse al registro de comandos en la ubicación 16, lo que equivale a 4 transacciones
independientes de escritura en el bus I2C. Debido al modo de operación interna de MD23, DEBE haber un retardo de al
menos 5mS entre la escritura de cada una de estas 4 transacciones. Una vez transcurrido este tiempo de retardo, debería
identificar el MD23 con esta dirección, sin embargo, no debe olvidar que primero debe activarlo sin enviar comandos.
MD23 parpadeará su dirección a través del LED de comunicación de color verde. Un destello largo
seguido de un número de destellos cortos indica su dirección. Se seguirá recibiendo los comandos enviados
a MD23 durante este periodo. La escritura de nuevos comandos de velocidad o escritura enviados al registro de comandos interrumpirán
estos destellos.
| Dirección |
Destello largo |
Destellos cortos |
| Decimal |
Hex |
| 176 |
B0 |
1 |
0 |
| 178 |
B2 |
1 |
1 |
| 180 |
B4 |
1 |
2 |
| 182 |
B6 |
1 |
3 |
| 184 |
B8 |
1 |
4 |
| 186 |
BA |
1 |
5 |
| 188 |
BC |
1 |
6 |
| 190 |
BE |
1 |
7 |
Evite configurar más de un MD23 con la misma dirección, ya que se el bus podría colapsarse y los resultados
podrían ser imprescindibles.
Puente de dirección
La dirección I2C puede también modificarse configurando/quitando el puente de dirección (Address). Con
el puente configurado en su posición correspondiente (por defecto en fábrica), la dirección es la misma
que la programada en el módulo (la dirección por defecto de fábrica es 0xB0). Al quitar el puente
se cambiará la dirección a la siguiente dirección. La dirección por defecto de 0xB0 cambiará a
0xB2 al quitar el puente 0xBA cambiaría a 0xBC. La excepción es 0xBE, el puente no afecta a esta dirección.
Después de configurar o quitar el puente de dirección, la dirección I2C de MD23 no cambiará hasta
la próxima vez que se encienda el módulo.
Esquemas
Los esquemas de MD23 son los siguientes: Hoja 1 y Hoja
2
Mecánica

Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.
45,91-Euros.
IVA no incluido
53,25-Euros.
IVA incluido
|
CONTROLADOR MOTORES DC DOBLE 3 + 3 AMPERIOS MD23
Vea mas productos de esta categoría en:
Controladores de Motores
Ir a la Página Principal de www.SuperRobotica.com
Actualizada el 18/02/2010 © 2002 - 2010 INTPLUS ®. Todos los derechos reservados
|