Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola amigos roboticos!
estoy interesado en controlar estos motores por el PWM de un 16f877A.
Si alguien es tan amable de decirme como podria controlarlos usando un l293d o de que manera?
muchas gracias y un saludo
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
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!
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?
Muy bueno si señor no lo habia pensado asi
Tambien puede ser un servo trucado 😆