Robotica Facil. Robots, kits, circuitos, sensores, motores, etc.. Robot Multifuncional SR1 Robótica Fácil
 
Página Principal  Ayuda Ver Carrito Catálogo
Kits Robots Circuitos electrónicos Sensores robotica Motores y servos para robots
Hardware robots Soportes y accesorios Tornillos y herrajes Radiomodem y transmisores de datos
Cámaras y minicamaras Trasnmisores y emisores de vídeo Varios Novedades
Robot SR1 Robonova Proyectos Tutoriales
CONTROLADOR MOTORES DC DOBLE 3 + 3 AMPERIOS MD23 S310112

CONTROLADOR MOTORES DC DOBLE 3 + 3 AMPERIOS MD23. Clic para ampliar

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.

Conexiones del circuito controlador de servos MD23. Clic para ampliar

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

dimensiones

 

Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.

52,97-Euros.
IVA no incluido
AÑADIR AL CARRITO DE LA COMPRA

61,45-Euros.
IVA incluido

CONTROLADOR MOTORES DC DOBLE 3 + 3 AMPERIOS MD23

Vea mas productos de esta categoría en:

Circuitos controladores y electrónica para robots.

Ir a la Página Principal de www.SuperRobotica.com

Actualizada el 07/05/2008 © 2002 - 2008 INTPLUS ®. Todos los derechos reservados