Autor Tema: posicionamiento angular de un motor DC  (Leído 16901 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado diego_castano01

  • PIC10
  • *
  • Mensajes: 21
posicionamiento angular de un motor DC
« en: 30 de Junio de 2006, 22:39:37 »
Hola, alguno de ustedes conoce alguna tecnica para controlar el angulo de giro de un motor DC unido a una caja reductora en la que no se use, para ello potenciometros, que complicaciones podria tener si uso cada tipo de sensor de posicion diferente, me explico, que fallas podria tener si uso un encoder u otro metodo, que ustedes hallan observado en la practica; si uso un potenciometro y hago una conversion ADC que debo tener en cuenta, gracias

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
Re: posicionamiento angular de un motor DC
« Respuesta #1 en: 01 de Julio de 2006, 05:06:00 »
¿Para que aplicación lo necesitas? Puede que te salga mejor usar un motor paso a paso o un servo.
Si juegas contra el mejor, pierdes como los demás.

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
Re: posicionamiento angular de un motor DC
« Respuesta #2 en: 01 de Julio de 2006, 07:24:54 »
Necesitas un encoder y debe ser absoluto, o bien un sensor de posicion añadido al encoder que de un paso por cero una vez en cada giro, asi aseguras que se posiciona exacto y no hay perdida de pulsos.
Es la unica forma que conozco.

Desconectado diego_castano01

  • PIC10
  • *
  • Mensajes: 21
Re: posicionamiento angular de un motor DC
« Respuesta #3 en: 03 de Julio de 2006, 21:34:46 »
Hola, ya tengo el hardware montado y aunque no lo quiera debe ser con un motor DC (es la exigencia) lo que no se es como hago para controlar los angulos, hasta ahora he intentado con un potenciometro digital y una conversion ADC pero sin buenos resultados, me dicen que con un encoder , puede ser ahora me pregunto  :shock::

el dispositivo debe girar hacia la derecha por ejmplo 15 grados desde una posicion de referencia y luego debe devolverse hasta la posicion de referencia y desde esta girar otra cantidad de grados que puede variar de la anterior, cuando llegue a esta debe devolverse a la posicion de referencia y comenzar el ciclo denuevo por un tiempo determinado,

como ayuda puede ser la de una camara de seguridad a a cual yo le pueda decir que gire tantoa grados como quiera, sea a la derecha o izquierda, PERO  :? , con la condicion de que los grados de giro esten determinados por una posicion de referencia (esta puede ser de 0º, 15º, cualquiera)

Ahhhhhh, si me ayudan con codigo, me gusta programar con pic en lenguaje assembler.

Gracias, espero que haya sido un poco mas claro

CHAO  :shock: :o :( :) :-/

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: posicionamiento angular de un motor DC
« Respuesta #4 en: 04 de Julio de 2006, 00:57:55 »
Imagino que, al tratarse de un motor DC, estará conectado a una reductora múltiple, y la exigencia de giro en grados es para la salida de la reductora. Supongo, por tanto, que un giro de 15º al final de la reductora, se representa con un montón de vueltas en el motor.

Si estas suposiciones son correctas, yo pondría un sensor cuentavueltas al eje del motor (hall e imán, u óptico y marca), y diseñaría un programa que hiciese girar al motor X vueltas en un sentido u otro.

Si debe controlar un giro de 15º en un motor DC sin reductora, creo que es prácticamente imposible alcanzar esa precisión.

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: posicionamiento angular de un motor DC
« Respuesta #5 en: 04 de Julio de 2006, 10:22:17 »
Creo que voy a disentir con nocturno.
La idea de contar giros del motor y trasladar eso a desplazamiento angulares la salida del reductor es muy buena, pero tiene un pequeño inconveniente que se llama backlash, y es el juego mecánico que tiene los engranajes, por lo que por mucha relación que tenga en la caja reductora, en la salida voy a tener un error que no voy a estar viendo, por que no estoy midiendo directamente la variable de salida que es la posición.
Si no fuera por esto tendría una precisión del demonio, imagínate una caja con relación 1:1000 contando las miserables vueltas del motor tengo la milésima.

Por otro lado si tu backlash es suponiendo de 2°  y vos queres tener menos precisión que eso, no hay problema a contar vueltas se a dicho

Ahora les cuento mi experiencia. construyendo un brazo mecánico el años pasado colocados potenciómetros en las articulación, con el conversor AD del micro mediamos hasta la milésima del error de posición, y si bien el backlash nos traía problemas, por lo menos estábamos sabiendo de la existencia del mismo, y el control PID iba corrigiendo

Este PID era medio trucho programado a duras penas en un 18F, luego implementamos PID + control adoptivo con un PLC y lográbamos mejores resultados

Gustavo Tasquer
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: posicionamiento angular de un motor DC
« Respuesta #6 en: 04 de Julio de 2006, 12:00:23 »
Hola Diego_castano01:

En este archivo podras encontrar una explicacion de como funcionan los encoders de los mouse

www.bipom.com/applications/encoder/encoder.pdf

Incluso creo que podrias sacar uno de un mouse viejo y adaptarlo a tu motor o solo tomar la idea.

Tiene limitaciones en cuanto a velocidad, el receptor no va a mas de 25 KHz.

Espero te sea de utilidad.

Saludos
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado diego_castano01

  • PIC10
  • *
  • Mensajes: 21
Re: posicionamiento angular de un motor DC
« Respuesta #7 en: 04 de Julio de 2006, 19:32:07 »
 Hola le comento he logrado realizar que el motor se mueva 20º hacia un lado y se devuelva al captar un volatje X, esto lo logré mediante el uso de la conversion ADC (en free running): un potenciometro lineal y el micro (un ATMEL), pero presento problemas a la hora de pasar por la posicion cero del dispositivo, ademas de que observo que la conversion ADC no es como muy estable que digamos a pesar de la linealidad buena del transductor, ¿ que podrá estar pasando, sera que debo usar otra forma de realizar la conversion a parte de la de free running o usar otro ADC (uso el ADC0804)

la idea de nocturna pudiera servir pero por el momento veo la forma que uso, com la mas viable, me gusto la observacion de Gustavo, alguien tiene otras observacionjes y experiencias
Gracias-/

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: posicionamiento angular de un motor DC
« Respuesta #8 en: 05 de Julio de 2006, 20:26:03 »
Free running nunca había escuchado eso en un conversor AD, talvez estoy muy metido con los pic y no conozco de otras cosas, pero te diré que la idea de usar un conversor AD externo como el 804 no es buena. lo mejor es buscar un micro del fabricante que mas te guste que tenga conversor AD integrado eso no falla, si no es muy estable,  puedes poner un pasa bajo a la entrada, o hacer un promedio con las lecturas.. eso es solucionable me gustaría saber como estas haciendo el control. que estas usando para manejar el motor, como..
Ahora no es que es eso de pasar por la posición de cero

Gustavo
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado diego_castano01

  • PIC10
  • *
  • Mensajes: 21
Re: posicionamiento angular de un motor DC
« Respuesta #9 en: 06 de Julio de 2006, 14:21:38 »
Hola, como pongo un pasa bajo al conversor ADC, no tengo idea de de como hacerlo, como hago un promedio con las lecturas.

Ahhh el free running sirve para colocar le ADC en un muestreo y conversion continua dandole un pequeño starte al ADC e incluyendo una señal de reloj, ahor me toca con converso ADC por separado del micro por que es uno de los requisitos del diseño y tengo casi que topados todos los bits de los puertos.

La posicion cero, hace referencia a una posicion inicial en la cual se debe colocar el dispositivo antes de iniciar su trabajo, pienso hacerlo con un par de micro switch, ahora esta debe tenerse en cuenta, ya que apartir de ella es que se mediran los grados que giraran cada uno de los 2 motores que estoy usando.

El control de los motores lo realizo con un driver BA6209 y uso un micro ATMEL AT89S53 de 12K.

No se si he sido mas explicito

Gracias por sus comentarios, todavia estoy teniendo problemas con la estabilidad del ADC por favor ayudita con este problemmm.

NOTA: ha futuro realizare el software en base a PIC con ADC incorporado (pero no es posible en el momento).
Chaoo

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: posicionamiento angular de un motor DC
« Respuesta #10 en: 07 de Julio de 2006, 01:35:08 »
Antes de la entrada  al conversor pone una resistencia en serie dr 470ohm y un capacitor en derivación de2.2uf y dr ahi vas al conversor

para hacer un promedio, tenes que ir tomando los valores del conversor ad e ir sumándolos en una variable de 16bits, luego haces una división... promedio

donde estas estudiando??, quien te dio esas especificaciones por que eso de colocar conversores ad externos es ir en contra de la corriente


Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado maxluis

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: posicionamiento angular de un motor DC
« Respuesta #11 en: 09 de Julio de 2006, 12:15:45 »
Diego: Es +- lo mismo que esta preguntando el que quiere posicionar el rotor, lo tuyo es con angulos definidos,  se me ocurre: "encoder"= un disco dividido en los angulos que quieres estar, en cada uno de estos una linea de "perforaciones" pones un diodo emisor y un detector por cada perforacion, y vas haciendo codificacion con las perforaciones (abiertas y cerradas (1y0)) y estas las pones en la puerta de un pic, y si haces 8 "hoyitos" tienes hasta 255 angulos diferentes, vas leyendo y comparando y te posicionas en la elegida.
saludos.
Maxluis.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: posicionamiento angular de un motor DC
« Respuesta #12 en: 09 de Julio de 2006, 12:26:02 »
Para aplicar ese sistema (en definitiva es un encoder) se utiliza el código Gray:

http://azul2.bnct.ipn.mx/~clogicos/codigos_conversores_y_detectores_de_error/codigos_conversores_detectores_de_error.htm

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado diego_castano01

  • PIC10
  • *
  • Mensajes: 21
Re: posicionamiento angular de un motor DC
« Respuesta #13 en: 27 de Julio de 2006, 00:24:02 »
Hola, lo que pasa es que ya me tocó obligado hacerlo por potenciometros, ahora no se si me pueden ayudar con el problema que tengo, por que razon a veces el micro adquiere el dato y logra invertir el giro del motor y a veces como que no lo toma y este continua derecho, como puedo sincronizar el ADC y el micro sin cambiar le modo Free running del ADC 0804, me han dicho que de pronto use el INTR del ADC pero de que manera lo puedo usr en codigo

Gracias

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: posicionamiento angular de un motor DC
« Respuesta #14 en: 28 de Julio de 2006, 08:31:20 »
Muy buena la info de como funciona el encoder del mouse....para algo van a servir los mouses viejos que "descansan" en mi caja de chatarra...  :mrgreen:

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert


 

anything