dos motores + PWM + dos sentidos + 1 h-bridge?

Hola, una pregunta rapida porque me temo que la respuesta es "no", pero para confirmar: Tengo en mi poder un kit de tamiya con dos motores, 1 h-bridge de cuatro salidas agrupadas dos a dos (el clasico) y un arduino "antiguo" de los que solo podia hacer PWM en tres pines. Con esta configuracion, es posible controlar los DOS motores tanto en su VELOCIDAD como en su SENTIDO DE GIRO directamente?

Me he estado mirando foros, pdfs de especificaciones, etc. pero, por lo que he encontrado, para controlar la velocidad del motor hace falta utilizar PWM y, para controlar el sentido, ser capaz de enviar corriente (pem)/tierra a cualquiera de los dos polos, lo cual quiere decir -si no me equivoco- que para controlar la velocidad con PWM y el sentido del motor, es requieren dos pines con capacidad PWM por motor, siendo dos motores, necesitaria cuatro y solo tengo tres... asi que no se puede hacer.

Es correcta esta suposicion?

Gracias!
Jose

Yo entiendo que necesitas una salida PWM para controlar la velocidad y una salida digital para controlar el sentido de giro.... por lo menos en los puentes que yo he tocado....

De todas formas intenta poner un link de las especificaciones o características del puente para que podamos ayudarte con mayor seguridad....

Ray

Pues ahora si que me he acabado de liar... no acabo de ver claro lo de 1 señal digital para controlar el sentido mas una para la velocidad.

Los componentes que tengo son estos:

Kit Tamiya: http://www.sparkfun.com/commerce/product_info.php?products_id=319
H-Bridge: http://www.sparkfun.com/commerce/product_info.php?products_id=315

He leido en multiples sitios que lo mejor es separar la alimentacion del arduino de la alimentacion del motor, para evitar problemas de reseteos y/o quemaduras del arduino debido a los efectos del motor en el circuito. Por tanto, entendia que la alimentacion del motor (via h-bridge) tenia que ser constante y venir de una fuente externa (pila 9v de petaca, por ejemplo), y pasar la alimentacion de 5V del arduino para la logica del h-bridge + tierra tambien del arduino.

Contaba con que el resto de patillas eran las que controlaban la logica (mas los outputs), es decir: contaba con una señal digita para los Enable, los outputs conectados a los bornes del motor y las "A" (A0,1,2,3 que se mapean a Y0,1,2,3 que van a los bornes del motor) conectadas a PWM para poder controlar la velocidad y el sentido.

Haciendolo "tal cual", se necesitan -si mi teoria era cierta- cuatro salidas PWM del arduino (solo tengo tres). Entiendo que esto es posible y que el hecho de aplicar PWM a las señales de control en lugar de a la alimentacion directa que va al motor (que se coge de la pila de 9V) permite igualmente controlar la velocidad (es decir: que utilizar PWM en las señales de control acaba haciendo que estas se activen y desactiven a una frecuencia determinada haciendo que la alimentacion externa de 9V, al final, entre tambien en los bornes del motor en forma de PWM)

Es la unica conexion que veo razonable, porque aplicar PWM directamente a la patilla de alimentacion del H-BRIDGE que acaba en el motor querria decir que (a) el arduino y el motor comparten alimentacion -malo segun he leido- y (b) que la velocidad de giro de los motores vendria determinada por una unica entrada, asi que seria imposible hacerlos girar a velocidades diferentes...

Entiendo que la opcion "correcta" es la primera, no?

Si es esa, como no tengo cuatro PWMs, si quiero controlar la velocidad y sentido de giro con tres, creo que la unica opcion que tengo es echar mano de un multiplexor 4-1 doble que tengo, y montar algun esquema que me permita de/multiplexar un PWM y un GND en dos salidas alternativamente, que irian conectadas a los bornes de un motor. Para el otro podria utilizar dos PWMs tranquilamente.

Bueno, espero que eso ayude a ayudarme :slight_smile:

Saludos,
Jose

Efectivamente tienes toda la razón. Con este driver que propones necesitas 4 PWM para poder controlar dos motores de una forma directa. Como bien dices puedes utilizar un par de multiplexores 2:1 para utilizar solo dos PWM del arduino y con dos salidas digitales controlarias el sentido. Pero, ojo, ten en cuenta que cuando utilizas un multiplexor y su salida no está seleccionar, ésta queda en alta impedancia y deberás poner un par de pull-down o pull-up (eso como veas).

Respecto a la alimentación yo tambien te recomiendo que utilices una alimentación aparte. Por ejemplo si los motores son de 7.2V pues alimentaría VCC2 a 7.2V y VCC1 a 5V (lógica) y no olvides unir las masas de ambas fuentes. No olvides tambien poner los diodos en las salidas, ya que estos "eliminan" las corrientes inversas inducidas por las bobinas del motor.... esto se traduce en menor ruido eléctrico y proteger los transistores del driver.

En mi otro mensaje te comentaba que los drivers que yo he manejado ya tenian incorporado la lógica de control... puedes echar un vistazo a este link:

www.amidata.es

Busca la referencia 534-4276. El inconveniente es el precio... :frowning:

Un saludo. Ray.

Ok gracias!

Mas o menos suponia lo del PWM por la "cuenta de la vieja" que hice. En realidad ahora mismo no tengo dos multiplexores 2:1, y dudo que pueda comprarlos, pues me voy hoy de vacaciones a Teruel, que no es conocido precisamente por su cantidad de tiendas de electronica :slight_smile: Pero tengo un multiplexor 4:1 doble (dos entradas de 4 señales y dos salidas de una señal) que, supongo podre utilizar para montar algun circuito similar que me permita hacer 4 PWM con solo 3 PWM, teniendo en cuenta que hay combinaciones no validas (2 PWM activos en el mismo motor)

Lo de las resistencias para pull-up/down no habia caido, pero es cierto que si algun componente queda en alta impedancia deberia tenerlo en cuenta (en realidad, es mi primera prueba con motores y soy ingeniero informatico, no electrico, asi que hay muchas cosas que se me pasan por alto en un primer momento :slight_smile: )

Lo que no veo claro es lo de los diodos en las "salidas". Por "salida" entiendes el borne positivo del motor? Si utilizo los motores en ambos sentidos, no existe "salida", puesto que la corriente se inducira en un sentido u otro en funcion del sentido de giro del motor, no? (era el efecto hall, esto? que todo campo electrico induce un magnetico y viceversa???)

Si los diodos evitan la circulacion en un sentido y la permiten en otro, poner un diodo a la entrada ("en uno de los bornes") de un motor implica que se esta eliminando la posibilidad de hacerlo girar en ese sentido, no? O quizas te refereias a montar algun circuito mas complejo a las entradas de los bornes de los motores que incluyesen diodos para evitar la electricidad inducida?

Mirare la wikipedia a ver si veo algo. Espero poder leer las respuestas en Teruel... me llevo el movil con conexion GPRS, pero casi me jugaria mi arduino a que, en mi querido pueblo -Ariño, teruel- la cobertura de GPRS debe ser una o ninguna. Esperemos que haya suerte...

gracias!

Casi me respondo a mi mismo... Uso un bridge como este:

y veo que incluye diodos (literalmente "clamped diodes for inputs"), entiendo que eso ya incluye la proteccion para la corriente generada por el motor, no?

Bueno, todo sera probar y ver si no se quema nada O:-)

Este driver incluye unos diodos de protección a la salida, pero te recomiendo que utilices unos externos de mayor intensidad y que sean rápidos. La colocación de los diodos la tienes en una aplicación que trae el datasheet al final y esto no influye en la direccion de giro del motor, puesto que están colocados hacia VCC2 y hacía masa.
Estas corrientes o picos de tensiones se producen por las conmutaciones que genera el PWM sobre la bobina del motor. Al quitar brúscamente la tensión de la bobina se genera un fenomeno de autoinducción produciendo un pico de tensión inverso (de bastantes voltios si la corriente que circulaba por la bobina era grande...).

Que pases buenas vacaciones... :slight_smile:

Ray.