Dudas existenciales con el PWM

Hola chicos,

Quiero cambiar la velocidad de un motor DC a través de la generación de una señal PWM.
Para ello utilizo un microcontrolador ATMEL 128.
Conozco el funcionamiento de la señal PWM y que variando el valor del Duty Cycle conseguiré variar la velocidad del motor ya que variará la tensión que le llega.
Sin embargo, mi pregunta es, cómo puedo saber la velocidad real del motor???

El motor DC tiene dos salidas de un encoder en cuadratura... he de hacer pruebas con diferentes valores de PWM y luego mirar con el osciloscopio que velocidad tengo o hay alguna manera??

Espero que alguien me pueda ayudar, soy una novata en esto y tengo un lío tremendo :)

Gracias!!!
 
si tienes encoder con solo medir los pulsos de uno de los sensores y dividirlo por el tiempo ya tienes la velocidad real.

Tan sencillo como implementar un contador que lo lees una vez por segundo.

Como conoces el diametro de la rueda y el numero de pulsos con un simple calculo calculas los metros recorridos.
 
Hola de nuevo,

para calcular la posicion del motor (diametro rueda / counts/ revolution)
necesito el contador que cuente el numero de pulsos tal como me habeis dicho pero tendra que contarlos durante una revolucion no??

el fabricante dice que son 360 x 4 cuentas / revolucion ,
seria correcto si hiciera que el contador:
while (cont< cont_revolution){
cont++;
}

?? o el numero de cuentas / revolution depende de la velocidad .... uyuy ops:


Gracias por la ayuda!
 
hola

lo que sucede es tiene muy poca resolucion el encoder 1 pulso cada 90 grados
si comienza e 0 tines una vuelta cada 4 pulsos es decir vueltas=pulsos/4 , asi

si tienes que posicionar el motor en un angulo diferente a 0,90,180,270 es complicado
porque tienes que calcular la velocidad angular y luego detenerlo en una fraccion no sensada .....

si solo tienes que regular los RPM pues no es problema ...

saludos
 
Hola!!
Disculpa pero no entiendo lo de que solo tiene 1 pulso por cada 90 grados... en las especificaciones del motor figura que el encoder cuenta 360 pulsos / vuelta, con lo que supuestamente hay una resolución de 1 grado no?

http://www.robot-electronics.co.uk/htm/emg30.htm

Por otro lado lo que he de hacer es controlar la velocidad y la posición del motor.

Lo que no tengo claro es cómo a partir del PWM de entrada calculo la velocidad, es decir, tendré que contar el número de pulsos a través del encoder y dividirlo por tiempo pero para diferentes pwm no habrá el mismo número de pulsos? (Como lo que varía es el ciclo de trabajo ...)

Gracias por la ayuda!
 
Atrás
Arriba