Necesito controlar 48 motores paso a paso con el puerto paralelo

Buenas tardes a todos, espero puedan ayudarme, necesito controlar 48 motores pap con lpt. Son para manejar efectos de iluminacion. En la parte de soft usaria el visual basic Pero como el puerto maneja 8 bits no se realmente si se puede, lei por ahi que hicieron un multiplicador de 4 a 32 pero no se si lo pueda utilizar para mi proyecto. Necesitaria información sobre este tema o si tienen algun proyecto similar por favor comentenmelo. muchas gracias a todos
 
em primer lugar el manejo de un motor implica ruido en el circuito, entonces lo primero que debes hacer es desacoplar electricamente la interfaz entre la PC y tu aplicacion, para ese cometido existen los optoacopladores, por ejemplo el 4N35, luego dices que deseas usar 48 motores no se cuanto consumira cada motor, pero la fuente debe ser muy muy poderosa de unos 15 amperios calculo, ahora el puerto lpt te bota solo 8 bits bueno eso no es problema pues puedes usar multiplexores de niveles TTL o CMOs por ejemplo puedes usar el 4094 que es un registro de desplazamiento serial de 3 pines de control y te bota 8 pines, de los cuales 1 pin es clock otro datos y el otro strobe o actualizacion de datos, hasta puedes concatenar mas de 2 chips 4094 juntos y manejar con solo 3 pines 16 salidas o 16 + 8 o 16 + 16, etc. en fin ahi estan las alternativas. saludos
 
gracias locobeatles, lo de aislar el puerto la interfaz no hay problema. Tengo que manejar de a 6 motores por efecto de iluminacion por eso tampoco me preocupa el tamaña del transformador. Lo voy a poner en practica. muchas gracias por tu ayuda
 
Esto es sólo una idea. Espero que te sea útil, al menos si no encuentras un método más ortodoxo.

En cuanto a la lógica de control, para un motor de pasos se requieren dos bits:
Signo y Clock (Paso)
Por otro lado para multiplexar 48 canales se requieren solo 6 bits:
32 < 48 < 64 = 2^6.
Por lo tanto, y desde este punto de vista elemental, con 8 bits, raspando, pero te alcanza.

Cada motor debería tener asignado un código propio entre 0 y 47 que lo identifique.
La PC debe enviar los 8 bits a todas las 48 placas de control de motores, tal vez agrupadas por practicidad.
Al recibir un flanco en el bit de Clock, cada placa debe analizar el código recibido.
Si una placa detecta que los 6 bits de ID coinciden con la clave de un motor, debe hacerle dar un paso con el signo indicado por el 8vo bit.

Tampoco te olvides que el LPT tiene 12 pines de salida.
 
si, la sola idea de controlar 48 motores pap, me da a pensar en algun proyecto gigante.

pero creo q alejandro sherar lo explico bien, y creo q podria funcionar.

obviamente cada controlador de motor pap, lleva minimo 1 pic, y 1 integrado de potencia, q conforman toda la interface.

debes hacer 48 interfaces de potencia, sumando los 48 motores, eso t da unos....cuantos millones de dolares.
jejee

saludos.
 
exacto piratex, si estuviera en el pellejo de max haria eso mismo, el uso de latch te permite multiplezar las lineas de tal manera q se usara un solo pic, pero el codigo sera màs complejo y necesitaras su maxiam frecuencia de trabajo , si te quedan chicos los 20MHz podrias ussar uno de la gama 18F que en su arquitectura de oscilador puede convertir esos 20MHz en 48MHz. o ya si te quieres volver un maldito jejejej ponle un dspic a 80MHZ. saludos!

estaremos atentos de tus avances compadre.
 
piratex dijo:
La solucion ideal en este caso es usar latchs, algo similar a lo que se muestra aqui http://www.pablin.com.ar/electron/circuito/computer/lpt32/index.htm , con el cto tal como esta ahi puedes controlar 8 motores
Segun mis cuentas de más arriba, con este circuito se podrían controlar hasta 16 motores. Cada latch controla 4.
Sólo necesitás 3 plaquetas iguales a ésta, pero te faltarían pines del port paralelo para multiplexarlas.
...
Yo pensaba algo como la figura de más abajo.
Lo de los latches te puede ayudar con la temporización,
a la salida del pic: el pic gatilla el estado (rápido) y el latch mantiene (lento).

Si usás el 16F877 tenés 11 bits más, y cada placa te controlaría 12 motores.
Cuatro placas idénticas no es mucho (en realidad yo haría 8 placas de 6 motores c/u, ó 6 de 8).
Además, yo no colgaría los 48 motores de una sola plaqueta !
Si llegara a haber un corto en un solo canal te puede bajar todo el sistema.
Ya bastante con que todo dependa de una única PC.

En este caso, además de éxito, te deseo suerte!
 

Adjuntos

  • mux48_460.jpg
    mux48_460.jpg
    11.5 KB · Visitas: 1,177
Puedes usar, por ejemplo, un pic como el 18f1550 conectado via USB y usar 2 puertos del pic en forma saliente.
las 8 salidas del puerto B serian las salidas a multiplexar para 2 motores simultáneos y con las salidas del puerto A del bit 0 al 3 decodificas con un decoder 4 a 16 (como el 74ls154), ya tienes 32 motores.
Ahora bien, si le pones otro decoder con las mismas 4 salidas del puerto A pero usando las salidas 4 y 5 puedes controlar 2 decodificadores respectivamente, con lo que obtienes el control de 64 motores.
Luego las salidas de 8 bits deben conectarse a 32 quad latch (como el 74lc574, este es doble) para recoger los 8 bits del puerto B y la línea decodificada de alguno de los dos decoders.
en total necesitas 1 pic 18f2550, 2 74ls154 y 32 74ls574 para los 64 motores, en tu caso solo 24 74ls574.
yo he hecho esto pero con hasta 32 motores pero es un proyecto bastante grande y tedioso.
He usado el puerto usb porque es necesario mucha información muy rápido para controlarlos con efectividad.
Otro problema que se me planteó es donde ponía la inteligencia del control del motor, y elegí darle parte del trabajo al Pic al cual le pasaba los parámtros con los que se iba a mover el motor, es decir solo le actualizaba el estado, si estaba quieto asi permanecía, solo le doy ordenes de cambiar a tantos pasos por segundo.
Para la programacion del Pic te recomiendo usar www.mikroe.com en pascal, c ó basic.
Use ese pic por la memoria ram, ya que tube que mantener el estado de 32 motores al mismo tiempo, pero creo que para 48 te debe alcanzar, sinó puedes cambiar de pic y el compilador te lo seguirá soportando.
Si puedes haz la simulación con por ejemplo Proteus, ya que largarte a construir sin probar no es buena idea.
Si no se entendió ( no soy un buen escritor ops: ) por favor hazmelo saber...
 
Si con el puerto paralelo tienes 8 lineas de salida.. y eso te limita el control..
La solucion es usar un pic y el puerto paralelo solo seleccione el motor que se necesita mover, la cantidad de pasos y el sentido. Osea la interfaz es PC->PIC->LATCHS->INTERFAZ DE POTENCIA (Transistorizada)->STEPPERS

Para esto seria mas practico usar el puerto serie... y mediante palabras codicadas enviar la instruccion. Lo que igualmente se puede hacer por el paralelo....
 
piratex dijo:
Si con el puerto paralelo tienes 8 lineas de salida.. y eso te limita el control......

¿ Por que ?

Esos 8 bits los puedes demultiplexar con un controlador de periféricos, por ejemplo un 82C55

http://eed.hutech.edu.vn/Datasheet/82C55A.pdf

La única limitación es la velocidad de barrido de las direcciones a comandar.

Otra forma de verlo:
1) Primer paso mandas por el puerto paralelo la dirección que pueden ser hasta 8 bits (256 Motores)
2) Segundo paso mandas el dato que también puede ser de 8 bites (256 ordenes distintas)
 
jalva dijo:
Puedes usar, por ejemplo, un pic como el 18f1550 conectado via USB y usar 2 puertos del pic en forma saliente.
las 8 salidas del puerto B serian las salidas a multiplexar para 2 motores simultáneos y con las salidas del puerto A del bit 0 al 3 decodificas con un decoder 4 a 16 (como el 74ls154), ya tienes 32 motores.
Ahora bien, si le pones otro decoder con las mismas 4 salidas del puerto A pero usando las salidas 4 y 5 puedes controlar 2 decodificadores respectivamente, con lo que obtienes el control de 64 motores.
Luego las salidas de 8 bits deben conectarse a 32 quad latch (como el 74lc574, este es doble) para recoger los 8 bits del puerto B y la línea decodificada de alguno de los dos decoders.
en total necesitas 1 pic 18f2550, 2 74ls154 y 32 74ls574 para los 64 motores, en tu caso solo 24 74ls574.
yo he hecho esto pero con hasta 32 motores pero es un proyecto bastante grande y tedioso.
He usado el puerto usb porque es necesario mucha información muy rápido para controlarlos con efectividad.
Otro problema que se me planteó es donde ponía la inteligencia del control del motor, y elegí darle parte del trabajo al Pic al cual le pasaba los parámtros con los que se iba a mover el motor, es decir solo le actualizaba el estado, si estaba quieto asi permanecía, solo le doy ordenes de cambiar a tantos pasos por segundo.
Para la programacion del Pic te recomiendo usar www.mikroe.com en pascal, c ó basic.
Use ese pic por la memoria ram, ya que tube que mantener el estado de 32 motores al mismo tiempo, pero creo que para 48 te debe alcanzar, sinó puedes cambiar de pic y el compilador te lo seguirá soportando.
Si puedes haz la simulación con por ejemplo Proteus, ya que largarte a construir sin probar no es buena idea.
Si no se entendió ( no soy un buen escritor ops: ) por favor hazmelo saber...

mis respetos señor 32 motores como decia mi abuela : TEN CUIDADO HIJO! cuanta corriente jejeje más que verlo funcionar me hubiera gustado ver esa fuente. Deduzco que habrias tenido en distintas tarjetas la etapa digital de la de potencia.

saludos
 
Hola, soy recien llegado en el foro.. y no se porqué terminé en este tema...

La cosa es que me parece un proyecto muy interesante pero vas a tener que pedir una subestación transformadora para vos solo a la empresa de energía para mover tantos motores :LOL:

Bueno lo que me trajo a escribir aquíe es lo siguiente. Viendo la siguiente imagen (del link que pasó Piratex):

circuito.gif


Como tenes 12 salidas en el puerto paralelo, o sea las 8 de datos común y las 4 de control (entrada/salida) más ese circuito estás sobrado... la cosa es que ahí solo podes controlar 16 motores (claro que enviando a cada controlador paso y dirección, 4 motores por cada 74HCT573), para poder poner más de estos integrados (74HCT573) en vez de mandarle las salidas de control (C0, C1, C2, C3) derecho a cada enable de los integrados, estas salidas mandalas a un deco de 4 a 16 (74154), con este deco vas a poder controlar hasta 16 74HCT573. Si mis cuentas no me fallan con 12 74HCT573 controlarias 48 motores, ya que 4 x 12 = 48. La cosa es que con esta solución vas a poder usar 4 motores al mismo tiempo, a no se que busques alguna forma para usar más de 4 pap por cada 74HCT573 (se me ocurre que si vas a usar todos los motores a la misma velocidad, o una serie de ellos, podes poner 7 bit de los 8 para controlar sentido de giro y uno para controlar velocidad común para los 7 motores, pero esto limita un poco el movimiento).

La verdad que te vas a gastar muchísima guita, 48 driver para pap no son joda... yo me quiero armar solo 3 driver y creo que me salen como $100 c/u (va, un poco menos -creo-).

Salu2...
 
por lo que leo quien va a hacer este control usa un programa o mas bien un lenguaje de alto nivel para programar, no es ningun novato-.
2 -- manejara 48 motores para iluminacion.........no es ningun hoobista muerto de hambre.
3 -- nunca use o controle motores pap pero lei aqui mas o menos como es la cosa.

son 48 CUARENTA Y OCHO ! seguro que chiquititos.........paaaaa !
cuantos ....

y me viene , antes de calentarme con tonterias primero que nada la costumbre de mirar precios, cuanto sale un PIC de 28 pines o de 44 pines el mas choto que vendan hoy dia.........
100 dolares ?
100 euros ?
un ojo de la cara ?
entregar a la nena ?

me parece que, como costumbre de los electronicos siguen ratoneando y como costumbre es muy tonta.

sale chauchas un pic, si ahorras al lograr un impreso mas sencillo, al necesitar menos componentes al poder hacer un control mas inteligente ya que con esos buffers solo podes dar una orden y ahi queda hasta el proximio barrido, .

dejense de joder, por que no miran precios y luego analizan, le tienen miedo a los PIC ?

los motores consumen poco pero pueden gestionar incluso un control mas rapido y un arranque o movmiento

de verdad, les pido que me pongan AQUI ; COMO RESPUESTA cuanto cuesta hoy un PIC de 28 pines y otro de 44 pines , el mas economico que vuestro proveedor tenga, con solo i/o digitales alcanza (aunque ya cualquiera trae converor) , con poca memoria sobra ya que habra uno mas chico que tendra el programa, este solo sera de buffer.
AUNQUE , cualquiera de muchos pines trae mucha memoria.

denle , pongan cuanto cuesta.

y dejense de joder con esa falta de criterio al seleccionar algo, no ven lo que tienen hoy dia disponibles ?
usenlo.

saludos .

16F887......44 patas.........7U$ = 21 mangos
18F86jnoseque......55i/o ...........11U$ = 33 mangos de mierda !

saben como se le ssimplifica el impreso ?

igual van a necesitar pines para realizar la interfaz maquina hombre ya que si quieren controlar tantos motores supongo que no le daran al PIOC la orden de "hace lo que se te cante".
asi que lo coherente seria un PIC para la placa de control (interfaz maquina hombre ) o sea los botoncitos y el display y las lucecsita sdel tablero .
y otra placa de control de motores separadita .
comunicacion entre pics.

en fin.

no se chiven por como les escribo, pero es asi la cosa.

saludos de nuevo
 
HOla a todos y muchas gracias pos sus respuestas y recomendaciones. EStuve calculando precios de todos los componentes mas materiales, estructuras para poner los pap y me di cuenta que no me sale mucho mas barato que los robots manejados mediante dmx, a eso sacandole el tiempo para programar los pic, el soft para la pc. y el armado de las estructuras. desde ya muchas gracias y pido disculpas por el tiempo que perdieron
 
Claro, en sí... los motores me imagino que habían sido con un torque medianamente importante (con esto me refiero a motores de no menos de $50 a $100 -pesos argentinos-, por 48...), más los controladores, lo aclaro para fernandob, por controlador me refería a el control de potencia de los motores, no al los circuitos que generan los pulsos de control. Citando nuevamente a piratex:

PC->PIC->LATCHS->INTERFAZ DE POTENCIA (Transistorizada)->STEPPERS

Sería la interfaz de potencia a lo que me refiero, a esta se le envía el clock y el sentido de giro, más enable y otras cosas que se podrían hacer por hard. En la parte de control (o sea generar los pulsos) estoy de acuerdo con fernandob, lo más recomendable es que se controle por medio de un pic (por las frecuencias que se pueden obtener), en mi mensaje anterior no mencioné pic porque, como fernandob reconoció que nunca controló ni usó motores pap, yo he usado una sola clase de pic en la escuela secundaria... este era una sub especie que venía preprogramado con assambler y era muy chota la programaición que usabamos, en definitiva no cuenta lo que se de pic's y por eso ni los mencioné, me tiré a mandarle un deco para controla más latch porque justamente en la facultad me están dando todos estos temas y veo mux y decos por todos lados (), a parte me pareció una idea interesante para controlar más bit con la pc.

Bueno respecto al precio que puse, dije que costaría como $100 (argentinos), bueno no me acordaba bien y en verdad era algo de $60 (los precios los consigió otro usuario de un foro), pero el drive que menciono controla al motor por corriente y con ello se puede obtener más torque que con otros driver's (en la página de donde lo saqué lo recomendaban para frezas CNC), lo caro de esto es que se necesita uno por motor y para este proyecto se habría ido bastante el precio. Hay driver más baratos pero me había imaginado que se iba a trabajar con estructuras medianamente pesadas así que pensé que lo más recomendable para que se mueva a una velocidad rápida era este tipo de controladores, no los mencioné en más detalle el drive el día que escribí el mensaje porque se me pasó y ahora, bueno, ya no tiene sentido.

A pesar de que el proyecto se abortó, quería aclarar esos puntos de porque había dicho lo que dije. Y fernandob a pesar que la primera vez me "chive" un poco con tu mensaje, después entendí a lo que te referias por el tema de los pic, no tedrían mucho sentido los latch para este proyecto por el tema de los retardos.

No respondí antes porque estaba muy ocupado con la facultad, bueno, nada más... nos vemos.

Salu2...
 
Hola and 77, desde ya gracias por tu respuesta. en el proyecto necesitaba pap chicos ya que son para soportar unos 250grs 6 de ellos, los demas no serian problema . Los conseguia por unos $10 c/u. Simplifique cada efecto de iluminacion para 5 pap cada uno. Y tendria que usar 6 efectos lo cual se redujo a 30 pap. Pero como lei por ahi que me confundieron con un entendido del tema quiero aclarar que no es asi, un simple aficionado con muy pocos conocimientos y una imaginacion muy grande.
En el esquema que subiste al post, para controlar 16 motores, necesitaria la etapa de potencia para los pap y nada mas? tendria que armar el circuito para ver si funciona, quizas me tire a controlar los 16 ya que puedo llegar a armar cuatro efectos. luego volcarme a el soft en cual estoy un poco mas empapado en el tema
 
locobeatles dijo:
jalva dijo:
Puedes usar, por ejemplo, un pic como el 18f1550 conectado via USB y usar 2 puertos del pic en forma saliente.
las 8 salidas del puerto B serian las salidas a multiplexar para 2 motores simultáneos y con las salidas del puerto A del bit 0 al 3 decodificas con un decoder 4 a 16 (como el 74ls154), ya tienes 32 motores.
Ahora bien, si le pones otro decoder con las mismas 4 salidas del puerto A pero usando las salidas 4 y 5 puedes controlar 2 decodificadores respectivamente, con lo que obtienes el control de 64 motores.
Luego las salidas de 8 bits deben conectarse a 32 quad latch (como el 74lc574, este es doble) para recoger los 8 bits del puerto B y la línea decodificada de alguno de los dos decoders.
en total necesitas 1 pic 18f2550, 2 74ls154 y 32 74ls574 para los 64 motores, en tu caso solo 24 74ls574.
yo he hecho esto pero con hasta 32 motores pero es un proyecto bastante grande y tedioso.
He usado el puerto usb porque es necesario mucha información muy rápido para controlarlos con efectividad.
Otro problema que se me planteó es donde ponía la inteligencia del control del motor, y elegí darle parte del trabajo al Pic al cual le pasaba los parámtros con los que se iba a mover el motor, es decir solo le actualizaba el estado, si estaba quieto asi permanecía, solo le doy ordenes de cambiar a tantos pasos por segundo.
Para la programacion del Pic te recomiendo usar www.mikroe.com en pascal, c ó basic.
Use ese pic por la memoria ram, ya que tube que mantener el estado de 32 motores al mismo tiempo, pero creo que para 48 te debe alcanzar, sinó puedes cambiar de pic y el compilador te lo seguirá soportando.
Si puedes haz la simulación con por ejemplo Proteus, ya que largarte a construir sin probar no es buena idea.
Si no se entendió ( no soy un buen escritor ops: ) por favor hazmelo saber...

mis respetos señor 32 motores como decia mi abuela : TEN CUIDADO HIJO! cuanta corriente jejeje más que verlo funcionar me hubiera gustado ver esa fuente. Deduzco que habrias tenido en distintas tarjetas la etapa digital de la de potencia.

saludos

Si, un placa de control y cada 2 motores un 74ls574, 4 irf530 por cada motor y una fuente por cada 2 motores.
... y me extraña que dude amigo.
 
desde ya gracias por la ayuda, por el tema de la corriente no es problema porque van 5 o seis motres por efecto y si no entendi mal cada motor consume 500ma aprox. lo cual necesitaria 8 fuentes por separado, pero como bien mencinaste es un proyecto gigante y me estoy dando cuenta que me falta bastante por aprender. si tienes algo de información para pasarme, algun soft o algo relacionado te lo agradeceria muchisimo. saludos y gracias a todos los del foro ya que aprendi un monton y lo sigo haciendo
 
Atrás
Arriba