fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Controlar motor DC por PWM como si fuera un servo

23 Respuestas
8 Usuarios
0 Reactions
7,086 Visitas
juanolo
Respuestas: 124
Topic starter
(@juanolo)
Estimable Member
Registrado: hace 18 años

Hola amigos roboticos!

estoy interesado en controlar estos motores por el PWM de un 16f877A.

Motores DC

Si alguien es tan amable de decirme como podria controlarlos usando un l293d o de que manera?

muchas gracias y un saludo

Responder
22 respuestas
gizer20
Respuestas: 1570
(@gizer20)
Noble Member
Registrado: hace 19 años

Pero para que quieres un encoder? el pwm aplicado a un motor DC es para controlar la velocidad no la posicion , al menos eso tenia entendido y asi lo he utilizado en todos los casos.

Por cierto me ha surgido tengo que utilizar un motor DC en un pic de la familia 12f pero no tiene modulo PWM por hardware y no se como hacerlo por software porque empece con el 16f877 y siempre he utilizado esos modulos asi que ahora voy bastante perdido

Responder
bastian
Respuestas: 384
(@bastian)
Ardero
Registrado: hace 17 años

Hola!
Por cierto me ha surgido tengo que utilizar un motor DC en un pic de la familia 12f pero no tiene modulo PWM por hardware y no se como hacerlo por software porque empece con el 16f877 y siempre he utilizado esos módulos asi que ahora voy bastante perdido

Programa el timer para que la interrupción salte a la resolución de PWM que quieras. (P.ej. 10us)
Te creas una variable para el TON y otra de contador para contar interrupciones hasta llegar al periodo del PWM (P.ej. 1ms).
En la rutina de interrupción de timer haz algo como esto:

if (TON>contador) PWM=1;
else PWM=0;

if (contador>=100) //100*10us=1ms
contador=0;
else contador++;

De esa forma podrás controlar el tiempo en on del PWM modificando el valor de la variable TON en el programa principal.
P.ej: si TON=50 la salida PWM estará a uno las primeras 50 interrupciones del timer y a 0 el resto del periodo.:wink:
La variable contador se incrementa en cada interrupcion y se pone a 0 cuando has llegado al final del ciclo del PWM.

Salu2!

Responder
technik
Respuestas: 287
(@technik)
Reputable Member
Registrado: hace 18 años

Pero para que quieres un encoder? el pwm aplicado a un motor DC es para controlar la velocidad no la posicion , al menos eso tenia entendido y asi lo he utilizado en todos los casos.

Es que el titulo del mensaje dice que quiere usarlo como un servo, no?

Responder
gizer20
Respuestas: 1570
(@gizer20)
Noble Member
Registrado: hace 19 años

Muy bueno si señor no lo habia pensado asi

Responder
bastian
Respuestas: 384
(@bastian)
Ardero
Registrado: hace 17 años

Tambien puede ser un servo trucado 😆

Responder
Página 2 / 5
Compartir: