Loading...
Pages: [1]   Go Down
Author Topic: Controlar la velocidad de (micro) motores DC  (Read 795 times)
0 Members and 1 Guest are viewing this topic.
Angela
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!!

Necesito controlar de forma precisa, la velocidad de un pequeño motor de continua y parece ser que el método más óptimo es por modulación de ancho de pulso. La razón es que dicho motor mueve un engranaje que lleva un encoder óptico, de forma que se puede controlar su posición por el número de pulsos que genera dicho encoder...  ;D

Por el momento estoy utilizando un driver (L293D) y la velocidad la estoy regulando introduciéndole una señal PWM (obtenida de Arduino y con la función "analogWrite") a la patilla "ENABLE" de dicho driver.

Según tengo entendido, con Arduino sólo podemos obtener una señal PWM de frecuencia y PW (ancho de pulso) constante y dónde sólo podemos variar el Voltage de salida, entre un rango de 0-255 (0 es voltios y 255 es 5 voltios) ¿Esto es así?...  :smiley

Con ello consigo un cambio de velocidad pero no con la precisión que necesito para controlar el engranaje...  smiley-sad

También he pensado en  crear una función software para generar dicho tren de pulsos.

Supongo que básicamente se trataría de utilizar la función "digitalWrite" y bucles anidados, con conceptos del ejemplo de generación de tonos de música con Piezo Speaker ("Play Melody") y parecida a la que ha desarrollado Quique  [Ver Topic : Controlando varios motores de contínua] .  

Así que dicha función, contendría parámetros con los que pudiera controlar la Frecuencia, Periodo, PW (ancho de pulso), "Vaverage" (tasa de voltage de salida) o factor "Duty Cycle" (% tiempo que el pulso está activo en un ciclo), etc. Es decir, con los parámetros que definen la señal PWM.

En el siguiente enlace de Wiring se habla de todo ello:

http://webzone.k3.mah.se/k3dacu/projects/ivrea/motor/pwm.html

¿Podría ser esto viable?...¿O alguién ya lo ha pensado?...  ???

También he investigado por la red y he encontrado el siguiente esquema de circuito, para controlar la velocidad de un motor DC a través de un tren de pulsos!!:

http://www.todorobot.com.ar/circuitos/dc-speed.pdf

No lo he implementado todavía, pero estoy en ello...Y parece ser bastante sencillo y fácil de acoplar con Arduino...Ya me dicen... ;D

Ufff...pues eso es todo...

Un saludo.
Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1138
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Quote
Por el momento estoy utilizando un driver (L293D) y la velocidad la estoy regulando introduciéndole una señal PWM (obtenida de Arduino y con la función "analogWrite") a la patilla "ENABLE" de dicho driver.  
 
Según tengo entendido, con Arduino sólo podemos obtener una señal PWM de frecuencia y PW (ancho de pulso) constante y dónde sólo podemos variar el Voltage de salida, entre un rango de 0-255 (0 es voltios y 255 es 5 voltios) ¿Esto es así?...  


No exactamente. La PWM the Arduino 0002 permite cambiar el ancho de pulso (PW) a frecuencia constante.

Quote

Con ello consigo un cambio de velocidad pero no con la precisión que necesito para controlar el engranaje...  


Controlar motores DC con precision es un dolor de muelas. Lo mejor es hacer determinado tipo de cosas con motores Paso a Paso que podras encontrar por ejemplo en impresoras y escaners viejos.

Quote

También he pensado en  crear una función software para generar dicho tren de pulsos.  
 
Supongo que básicamente se trataría de utilizar la función "digitalWrite" y bucles anidados, con conceptos del ejemplo de generación de tonos de música con Piezo Speaker ("Play Melody") y parecida a la que ha desarrollado Quique  [Ver Topic : Controlando varios motores de contínua] .  
 
Así que dicha función, contendría parámetros con los que pudiera controlar la Frecuencia, Periodo, PW (ancho de pulso), "Vaverage" (tasa de voltage de salida) o factor "Duty Cycle" (% tiempo que el pulso está activo en un ciclo), etc. Es decir, con los parámetros que definen la señal PWM.


Arduino permite emplear tres pines para lanzar PWM: 9, 10, y 11. Lo unico que no permite (aun) es cambiar la frecuencia del tren de pulsos generado. Sin embargo, la idea de crear esa funcion no es mala del todo, lo unico es que no te permitira hacer nada mas que controlar esos motores.

Quote

En el siguiente enlace de Wiring se habla de todo ello:
  
http://webzone.k3.mah.se/k3dacu/projects/ivrea/motor/pwm.html


Yo escribi este tutorial ;-)

Quote
¿Podría ser esto viable?...¿O alguién ya lo ha pensado?...  
 
También he investigado por la red y he encontrado el siguiente esquema de circuito, para controlar la velocidad de un motor DC a través de un tren de pulsos!!:
 
http://www.todorobot.com.ar/circuitos/dc-speed.pdf
Quote

Como he dicho antes, PWM es ya un tren de pulsos. El gran problema es como capturar los pulsos generados por tu encoder optico. Lo que necesitas es un programa que este leyendo una entrada como loco detectando los picos positivos del encoder.




No lo he implementado todavía, pero estoy en ello...Y parece ser bastante sencillo y fácil de acoplar con Arduino...Ya me dicen...  

Ufff...pues eso es todo...  

Un saludo.


Saludos y a ver que tal

/David
Logged

Angela
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola de nuevo!!..

¿Quires decir con esto, que variando el valor entre 0-255, en la función "analogWrite", lo que estamos haciendo es cambiar ese ancho de pulso de 0% a 100%?....Y Sobre la señal PWM ¿Cúal es el valor de esa frecuencia de salida constante de Arduino?


Sí...Ya sé que se pueden hacer cosas así con motores Paso a Paso , pero mi proyecto, por llamarlo así....va de  "Hackear un Furby" !!!, utilizando Arduino!!!  ;D

De aquí surgió la idea, quizá ya la conozcas:

http://www.phobe.com/furby/faq2.html


Y he encontrado un mogollón de información respecto al tema, así que la idea consistiría en adaptar todo ello para Arduino.......¿Que te parece?..Ya te lo mostraré el Miércoles... ;D

Por ejemplo, aquí viene información detallada de su funcionamiento y carácterísticas:

http://mechatronics.mech.northwestern.edu/design_ref/other/Furby_schematics.html

Por ahora no he tenido mucho problema en conseguir monitorizar sus movimientos con:

- Circuito para detectar los pulsos del Encoder (74LS14 y pin de entrada  a Arduino) --->Función de Contador de pulsos.

- Circuito para detectar la señal de referencioa o "Home switch" (Pin entrada a Arduino) ---> Función Flag


Pero me falta controlar el movimiento, es decir...introduciendo el control con :

- Circuito para controlar el motor (L293D)
--->Funciones de motor


Y por ello, necesito un control de velocidad más preciso, para así obtener una escala idónea de pulsos con el Encoder y conseguir controlar la secuencia de sus movimientos o engranaje mecánico...Y ahí es donde estoy atascada. ???


Y ok, ... Intentaré trabajar sobre la función que he comentado.....Y paralelamente también intentaré acoplar el circuito que te mostré...con Arduino...


Saludetes..y nos vemos el miércoles...
Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1138
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oye,

que al final no creo que pueda pasarme el miercoles. Te viene bien quedar el 27 o 28? Tengo pensado pasar por el Medialab esos dias a jornada completa. Posiblemente sea lo mejor, porque sino el miercoles llego ya a la tarde-noche y tengo que marchar con coche de Madrid esa noche.

Si te viene bien, le podemos echar un ojo juntos al tema.

/David
Logged

Angela
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Como comenté en la lista, no estaré por Madrid por esas fechas...  Así que ya será para otra ocasión   :'(  ...

De todas formas, intentaré seguir avanzando con el proyecto...Y ya iré contando o preguntando más dudas....

Aqui envío una foto del Furby controlado por Arduino...   ;D



Así que Felices fiestas a todas, todos y nos vemos para el próximo año...  ;D
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
hello world, bye screen.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ey, yo quiero ver esa foto.

por otro lado... crees que es muy complejo hackear el furby para un neófito en estas tierras? el bichejo es fácil de conseguir y el proyecto tiene muy buena pinta.

gracias
Logged


Angela
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Uff.. Aver si esta vez sale la imagen  ;D



Sobre el proyecto...pues la idea es esa, es decir, hacerlo como algo divertido y didactico..y que sirva para introducir a la gente "novata"...en todo esto...de la robótica,electrónica,etc... ;D

Saludetes y feliz Año...
Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1138
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Jaja,

gracias por la foto y feliz año!

/David
Logged

Dark_Wolfy
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Me parece un gran proyecto, yo te ayudaria en la medida de lo posible, pero aun estoy rana en casi todo esto  :-[, hace poco yo tambien "abri" mi Furby para ver q le ocurrio pq lo unico q hace es moverse y moverse, siempre haciendo los mismo y no habla ni nada, a veces le da por decir algo se atranca y sigue a si la vida smiley-sad. (segun he leido quizas sea del LED q no esta bien)

Por eso buscando una solucion o incluso una mejora encontre este foro.

Animo con el proyecto, suerte y feliz año nuevo

Un saludo
Logged

Pages: [1]   Go Up
Print
 
Jump to: