# Control de giro y posicion de motor DC



## Moguel

Saludos a todos.

Tengo un problema.

Necesito controlar el sentido de giro y la posicion de un motor de DC de 12v. Quiero hacer todo esto por medio del puerto paralelo, lo del puerto no es mucho problema para mi, pero el circuito de control del motor se me dificulta.

Alguien podria darme una sugerencia.

Gracias a todos.


----------



## skull

hola Moquel:

Es redificil controlar la posicion de un motor DC,esto se puede hacer con "encoder", lo cual implica, aparte de muchas otras cosas, poner en el eje dee tu motor un sistema de engranajes, pero cuenta para que quieres hacerlo,es un motor de mucha potencia??,es algun trabajo academico??, necesariamente tiene que ser un motor DC para la aplicacion??

eso por el momento


----------



## Moguel

Gracias por responder.

Acabo de terminar la carrera y es un proyecto que me encargaron en un centro de investigacion, quieren un sistema de poscionamiento XY, ya antes he realizado un proyecto asi pero con motores a pasos y claro que es mucho mas facil, en este caso, lo quieren hacer con motores DC porque ya los tienen y no quieren gastar, suena ilogico que es un centro de investigacion y no quieren gastar pero asi son las cosas. Necesito controlar la posicion porque el sistema se tiene que vomer determinada distancia en x y determinada distancia en y.

No necesito mucho torque, son motores relativamente pequeños, la distancia en X es como de 50cm y la distancia en Y como de 60cm.

Se que es dificil y creo que la unica solucion para controlar la posicion es con un enconder, y mucha mas circuiteria. 

Por eso quiero saber si alguien tiene una mejor idea.

Yo ya les dije que es mucho mejor con motores a pasos pero no me quieren entender. (Mis jefes son quimicos)

Gracias


----------



## Loktar

Yo creo que tendrías que usar un especie de rueda con ranuras, por ejemplo: Tenés el motor y en el eje le pones una rueda con un agujero. Alrededor de la rueda pones un LED infrarrojo ( IRED ) y del otro lado de la rueda pones un receptor.  Cada vez que la rueda da un giro esta la ranura que deja pasar la luz del IRED y activa el emisor. Así tendrías un conteo de las vueltas hechas por el motor. Obviamente que podrías poner muchas ranuras, para una mayor precisión. Capaz que esto ya lo tuviste en cuenta, pero era por las dudas.

Saludos.


----------



## Loktar

Eso es un encoder no? jeje

Con sensores de ultrasonido? Más caro creo...


----------



## cubeusk

yo creo que lo mas util seria un enconder (con su circuito de acondicionamiento de señal si no viene ya implementado) y un microcontrolador pequeño puesto que para eso no hace falta mucha cosa.


----------



## Luis Eduardo Sánchez

Averigua sobre puentes H este tipo de control para motores es bueno, usando modulación PWM.

Saludos


----------



## ALCTongas

Hola soy nuevo en este foro y me interesa el tema del control de posicion de motor dc
puntualmente estoy investigando la manera mas sencilla de poder implementar un tipo de control automatico seguidor de la horizontal, tomando como referencia la direccion de la gravedad... 
Osea.. eso en palabrerio.. en criollo algo asi como una plomada acoplada al eje de un potenciometro, y el chasis de este potenciometro acoplado a una plataforma de madera, la cual esta acoplada al eje de un motor dc (caja de reducciones de pormedio) y el chasis de este motor ( y caja de resucciones) agarrado a un poste el cul va sobre otraplataforma con ruedas...
Disculpen pero no se si sen entendio... lo que me esta complicando es el cicuito de control que mueva el motor de acuerdo al valor de resistividad que muestra el potenciometro para que simpre la plataforma superior se mantenga en la horizontal... 
La postura seria que el carro fuese capaz de llevar un objeto en la bandeja superior,  mintras se desplaza por un recorrido con irregularidades del terreno (pendientes ascendentes y descendentes) sin que se le caiga el objeto (un pequeño vasito de plastico con agua).
Yo he pensado que quiza con un par de Amp Op armando un controlador de tipo PI, pero me cuesta adaptar la salida de un Amp OP a un puente H... no se ...
Agradeceria que alguin me facilite algun esquematico de circuiteria que me pueda ser util...
ahh el motor seria uno de los que se encuentran tirados en todos lados ( de juguetes pequeños)


----------



## Francisco Galarza

Hola, tengo una idea:
Podés acoplar de alguna forma un potenciómetro al motor de manera que varíe la resistencia según la posición del motor.
Podés leer esta resistencia con el puerto de joystick y así con un programa hacer una especie de PID (sistema de control proporcional, integral y derivativo).
Así podés hacer mover el motor lo que te falte para que llegue a la posición que querés.
Espero que te sirva!

Una vez ví un circuito PWM con un comparador y un 555, ahora lo pienso un poco y lo posteo.


----------



## Francisco Galarza

Bueno, acá dejo un circuito que acabo de hacer según lo que me acordaba y otras cosas nuevas que le agregué.
Es un PWM que hace girar el motor para un lado o par el otro hasta llegar a la posición deseada.
La posición se setea mediante uno de los potenciómetros, el otro pote va acoplado al motor. El motor girará hasta que ambos presenten la misma resistencia.
Es muy posible que oscile, sólo lo simulé en la PC, nunca lo hice.
Se puede probar cambiando la frecuencia del modulador mediante la resistencia y el capacitor que aparecen al principio.
Tiene un puentesito H para mover motores de 12V.
Bueno, también puede hacerse con unos 555 pero prefería diseñarlo así.

Creo que no se va a ver la imagen entera, por eso la adjunto en un RAR


----------



## Adri

Hola,

lo que puedes hacer es generar una señal triangular y poner un opam en configuracion de comparador de modo que se genere un PWM que cambie en frecuencia de acuerdo a un nivel de voltaje que le mandarás, de este modo controlas la velocidad del motor

Yo estoy haciendo eso y funciona de maravilla.. aunque no he logrado el giro hacia los dos lados; solo cuando el nivel es positivo porque he hecho un arreglo de opams y mi problema es que al ser negativo si se logra el PWM en ese opam pero se activa con un ciclo de trabajo de 100% el opam del nivel positivo.

Quizá alguno sabe como podría resolver este problema


----------



## Francisco Galarza

Adri dijo:
			
		

> poner un opam en configuracion de comparador



Nunca entendí por qué la gente usa operacionales en lugar de usar comparadores que valen lo mismo y son más rápidos y tienen mucha más ganancia.


----------



## betoraviel

Hola amigos del foro.

Agradezco el esquema que postearon, puesto que mi problema es el mismo, pero como soy principiante, o sea, se poco de electronica, pues me cuesta algo entender el diagrama.

Si pudieran postearlo con alguna explicacion de los componentes estaria muy agradecido.

Espero que su respuesta sea pronta, por lo mientras batallare con mi problema.

Se despide de ustedes.

Beto_raviel.


----------



## HFGEMINIS

hola soy nuevo en este foro y me interesa mucho este tema. estoy tratando de hacer lo mismo que el compañero moguel pero lo mio es un reto personal. estoy en busqueda de de información y si en cuentor algo que les pueda servir lo subire. por el momento revisen esto: 

http://www.webelectronica.com.ar/news26/nota08.htm


----------



## karl

oye Moguel! yo tambien soy Químico y entiendo de motores a pasos vs DC eh!  

lo que puedes hacer (si no quieren gastar mucho tus tacaños superiores), es usar el circuito que anexo, lo que tienes que hacer es medir la duración de un ciclo de reloj o la frecuencia del mismo, este te da la posición del motor (el pot esta acoplado mecanicamente al brazo que se mueve), la computadora compara este valor con una tabla (que tienes que hacer) y corrige prendiendo o apagando el puente H, te puse el L293D porque puede mover motores pequeños y ya tiene todo lo que necesita para protegerse, (diodos clamp, que no tiene el B).

La formula para calcular la frecuencia de este circuito es T=2.2/RC, (creo).

Si va a estar en un lugar caliente y humedo (como un laboratorio con mecheros prendidos), usa capacitores de poliester y ponlos lejos de las fuentes de calor, para reducir el desvio por calentamiento.

Espero que te sirva de algo.

Edit. si el oscilador no quiere trabajar, cambia la conexión del pot y el capacitor, siempre confundo donde va que cosa.


----------



## jagt_23

Bueno gracias por el aporte pero quisiera saber cual seria un aplicativo con mas exactitud por que el profe me pide calculos...graicas


----------



## karl

la unica formula que necesitas con ese circuito es la que mencioné, el circuito es un "reloj" u oscilador de onda cuadrada, y cuando mueves el Pot, cambias la constante de tiempo.

Por otra parte, una aplicación, puedes hablar de un brazo robot retroalimentado, es decir uno que esta consciente de la posicion que tienen sus juntas en cada momento.


----------



## jesusantoh

buenas señores, soy nuevo en el foro pero, yo estoy haciendo algo similar lo que estoy utilizando por ser mas barato son los sensores de posicion (encoders), basados en fotodiodos de las impresoras o fotocopiadoras, estoy calculando la cantidad de agujeros que va a llevar mi rueda con respecto a la distancia que debe recorrer el elemento que voy a mover con los motores


----------



## karl

jesusantoh

si usas un tornillo puedes usar este algoritmo

1, definir la precisión deseada, por ejemplo .005 cm
2, ver cuantas vueltas necesitas darle al tornillo para que se desplace una distancia, por ejemplo 1 cm a 10 vueltas
3, multiplicar la precisión entre el numero de vueltas
.005cmX10v/cm=.05 vueltas
4, multiplicar el resultado por 360 para ver cuantas marcas necesitas en una circunferencia
.05vueltas*360grados/vuelta=18 grados
5, dividir 360 grados entre el valor obtenido (aqui vienen los dolores de cabeza, ya que muchos valores no van a dar exacto, y se tienen que aproximar por multiplos) 360/18= 20 (suerte)
si no da exacto, por ejemplo 360/16=22.5, se prueba un factor común por ejemplo 8 (tus marcas estan ahora a 8 grados en vez de 16, por lo que mides dos pulsos para llegar a tu prescisión)

espero que te sirva.


----------



## jesusantoh

excelente la ayuda amigo Karl, estube realizando las pruebas y efectivamente logre que funcionara con esa metodologia que me sugeriste saludos.


----------



## arsocarras

Hola a todos karl ese diseño lo utilizo mediante la PC dando ordenes desde el teclado o un sofá que desarrollaba algún movimiento no se si me entiendes 
gracias


----------



## karl

arsocarras, no entiendo tu post, ¿en que hilo lo hiciste?, a la mejor lo movieron.
¿quieres controlar un motor o un grupo de motores desde tu computadora?, y bajo que condiciones.


----------



## arsocarras

Hola es que algún colega comento una ves que quería hacer especie de una maquina para hacer impresos y yo también estuve tratándolo de hacer, pero cundo vi el circuito me dije será operable desde una internas grafica, en mi caso no pretendo hacer muchos circuitos impresos, pero si me ahorrara el pedacito de tener que pintar los circuito me agradaría mucho, en lo concreto lo que se me ocurre es con ese mismo circuito manipular los dos motores que airan falta gobernar dime si me entiendes


----------



## karl

arsocarras, la respuesta es si, puedes usar este circuito para controlar los motores como una mesa X-Y sin embargo necesitas un bit mas para control de un solenoide, (bajar y subir la pluma), y creo que en ese caso vas a necesitar mucha presicion, ya que tus lineas deben estar bien trazadas (sin huecos o borrones) y por otro lado, no deben juntarse, lo que impide usar una plumilla con tinta china por ejemplo, ya que esta cubre bien, pero se puede escurrir.

la mejor de las suertes con tu proyecto.


----------



## DRACON

hola q tal yo soy nuevo en este sorprendente foro  yo necesito una ayudita con este tema de controlar motores dc por medio de un encoder  a traves del puerto parelelo, yo uso el programa de vc++ pero si alguien tuviera una información en otro lenguaje sea  muy bienvenida
el  programa debe ser parecido a los mencionados el cual logre conseguir mover una distancia a un objeto enviando y leyendo datos por l puerto paraleloy  usando el motor dc, este es el primer paso q estoy realizando por q en realidad tengo q lograr controlar 3 motores dc para un proyecto y despues lograr q se visualizen la distancia en un LCD pero eso es otro tema.

Les pido una ayuda les agradeceria mucho .


Saludos..................


----------



## DRACON

hola q tal a todos lo del foro me preguntaba si  me podria brindar una ayuda con la comunicacion I2C entre 

microcontroladores, el problema es  q quiero q el pic maestro pueda leer un dato de un esclavo q yo direccione

y no logro conseguir no se si lo q esta mal es el programa del maestro para recepcionar o del esclavo para enviar

se lo agradeceria mucho si alguien me podria brindar alguna información del tema o algunos ejemplos tanto para el 

maestro como para el esclavo para q realize lo mencionado de antemano les agradezco por este interesante foro.

Saludos.................... gracias.


----------



## Jlozano

Que tal colegas, me adjunto en este tema para ver si me pueden ayudar, tengo un problema similar al igual  yo tambien tengo que controlar el posicionamiento de un motor, solo que en este caso cuento con unos motores con encoders absolutos, y para controlar los motores tengo unos drives AB y cuanto con un plc AB, solo que no se como empezar con la programación del mismo. En la circuiteria no tengo ningun problema, se la distancia en cuentas que me manda el encoder pero no se como puedo calcular la matriz de aceleracion y desaceleracion del motor para que llegue el drive a una posicion en especifica, si me pudieran ayudar se los agradecere enormemente...

Saludos


----------



## karl

DRACON, busca la libreria del I2C en Microchip, ahi viene como hacer el circuito y el codigo fuente.
si puedes darme un poco mas de información, te lo agradecere.


----------



## alexus

y un galvo? con su correspondiente control calro...


----------



## davidjam7

Muchachos no se si alguien me puede ayudar con mi proyecto, necesito simular un ciruito peo no puedo hacerlo, es sobre controlar un carrrito utilizando el puerto paralelo, e utilizado un inversor 7404 y un driver L293....


----------



## karl

davidjam7, ¿como están conectados los circuitos? la parte superior da una idea de que va en la plaquita, pero necesitamos también es necesario saber que va conectado con que.

Una situación logica, los inversores reciben la señal del puerto paralelo (PP), la cambian de valor volviendo los 1s 0s y viceversa, esto se hace para proteger la computadora, ya que en el caso de un corto es mas facil y barato cambiar un 74XX que un "Lentium" de cualquier valor, y mandan los valores al L293, que es el control de motores. los otros componentes sirven para regular (7805) y manejar alguna otra monada, como aislar los voltajes de sensores de entrada (con los transistores).
Esto es pura y simple especulación, ya que no se como van conectados los componentes, el arreglo de inversores puede proteger entradas, o puede que sea pura y llanamente un sistema de salida unicamente.


----------



## davidjam7

Este circuito va conectado apuerto paralelo va conectado a 2 motores ... no se como van conectados puesto q esta plaquta la encontre enunos archivos y eso es lo que deseo hacer ...por favor si me ayudan a ver como van conectados...y ademas simularlo en cualquier programa..pejm livewire o proteus...necesito eso por favor ayudenme...yo se q uds son expertos en esto..estare muy agradecido...atte

David


----------



## fannyp

buen aporte solo necesito ver que funcione jejje


----------



## juantronik

hola.... alguno puede subir todo eso que tienen en un comprimido es que tengo que hacer algo por el estilo pero como proyecto de semestre5


----------



## cracking_12hmn

Hola, yo tambien tengo que realizar un proyecto de control de posicion de un motor, parecido al siguiente: 



Quisiera que me pudieran orientar en que tipo de motores me pueden servir, de que tamaño puedo realizar el prototipo etc. tengo dos helices de 5cm de diametro cada una, y lo primero que estoy haciendo es buscar los motores que me pueden servir. 
De antemano gracias y espero sus sugerencias.


----------



## fruticas2010

Hola que tal buen dia, alguien me podria decir como acoplar el eje del pot al eje del motor, solo me falta eso y no se como hacerlo??


----------



## rocke38

buenas, quisiera saber que tipos de diodos se conectan en paralelo al motor para que no se introduzca fem y quemen los transistores, escuche algo de diodos de alta velocidad, son motores pap de 12v... pueden ser los BY228??? gracias!!


----------



## Cacho

Hola Rocke, bienvenido al foro.

En general, depende de qué tensiones esperes tener ahí, pero lo más usual es ver los 1N4148 ahí.
Sólo si tenés pulsos a una frecuencia que no alcancen a manejar esos dioditos, andá por alguno más rápido.

Saludos


----------



## rocke38

genial cacho!!! voy a ver que onda con esos, te cuento, que estoy usando unos 1N4007 que según mis aprendizaje, son "comunes" o los que generalmente use para puente rectificador de alguna que otra fuerte...y decía de los BY228 porque cuando arme un robot para una competencia de robotica use esos (porque el profesor dijo USEN ESTOS!!)jeje y son los unicos que conozco...jajaja pero voy a probar con esos...como dije los motores son de 12v pero andan con 5v, o los estoy usando con 5v y no tengo problema, y como el circuito de prueba es con leds, noto que cuando enciendo una bobina, se prende el led correspondiente a ese pulso y hace un destello al final del giro (o durante el giro) el led correspondiente a la otra bobina, donde tengo que dar el pulso siguiente, osea, como que se genera una fem... así que probare con esos, a ver que resulta... para explicarme mejor, y concluir, estoy haciendo una "MAQUINA LASER", con MOTORES PAP controlada por PIC 16F84A, manejo los M.PAP con transistores BC548...y el tiempo que le doy al motor entre paso y paso es de 7260 MICROSEGUNDOS (segun contador en el programa)... porque con un tiempo menor se cuelga y comienza a vibrar...


----------



## Cacho

Estás en el mismo caso que los relés al abrirse, sólo que en tu caso esto sucede mucho más frecuentemente.

Ahora... 7260us=7,26ms.
Fijate los "recovery time" de los diodos (¡Santos datasheets, Batman!) y a ver si te andan (ya te adelanto que te sobra por todos lados, hasta andan los 1N400X).

Saludos


----------



## rocke38

joyon entonces!!! bue, no habra caso entonces, yo porque "me molesta" esa lucesita que no quiero que se prenda, pero bueno, es lo que hay, entonces andaría... y si según el datasheets, le re sobraaa!! sabrás decirme ahora donde puedo poner un post sobre todo lo que estoy haciendo, osea lo que quiero es terminar todo, con programa, circuitos, fotos y todo, y colgarlo en el foro...en que sección!!??

Gracias por la data cachooo!!! =)


----------



## alldestajo

viejo necesito uno para un motor de 24vdc pero este tiene un especie de encoder detras pero el motor gira muy rapido no se si cuente los giros a esa velocidad


----------



## savad

cracking_12hmn: Tu control de posición es pesimo, tienes demasiado overshoot. Si deseas ayuda proporciona los datos, diagramas etc de lo que has echo.

 Por lo que veo no conoces nada de control y te recomiendo que leas algo de control lineal y como veo que lo estas tratando de controlar con un ucontrol, leas sobre variables de estado y transformada z.

 Yo trabaje mucho con control de dancers y obtube muy buenos resultados usando solo Op-amps. Pero hay mucha informacion sobre como implementar controladores PID con microcontroladores y su optimo ajuste (Tunning).

 Si subes lo que tienes quiza alguien te pueda ayudar

*Edita tus comentarios en lugar de crear nuevos*​
Aqui les dejo un convertidor barato para una señal de entrada de un 0-5V PWM @ 1,2 -> 10V
que permite controlar un motor chico ( ya que la carga max del LM317 es de 1.5 Amps),pero facilmente modificable con la adición de un IGBT para cargas mayores.

La señal del PWM la puede otorgar el puerto paralelo de la PC ó un microcontrolador (PIC, Arduino, Raspberry Pi, etc)


----------

