Pwm con ldmicro, no se posiciona el servo, solo vibra.

buen dia. necesito lograr posicionar un servo con el pwm usando ldmicro, al programarlo , solo vibra el servo y no logro qUE se posicione. estoy usando el pic16f877.
 
Última edición por un moderador:
buen dia. necesito lograr posicionar un servo con el pwm usando ldmicro, al programarlo , solo vibra el servo y no logro qUE se posicione. estoy usando el pic16f877.

Reglas generales de uso del foro

03) Cuando preguntes, danos la máxima información posible. ¡ No somos adivinos !

05) Escribe de manera correcta y legible para todos. Estás en un Foro no en un Chat.

¿ Esquema ?
¿ Programa ?
 
quiero mover un servo motor con el software ld micro. el pic 16f877 es el que estoy programando, pero al querer simularlo no funciona. quiero saber en que estoy mal. quiero mover el servo, controlandolo desde un potenciometro, modulando su posicion, pero aun no logro hacerlo, dejo el archivo. espero ayuda. gracias.Ver el archivo adjunto pwm.rar
 
quiero mover un servo motor con el software ld micro. el pic 16f877 es el que estoy programando, pero al querer simularlo no funciona. quiero saber en que estoy mal. quiero mover el servo, controlandolo desde un potenciometro, modulando su posicion, pero aun no logro hacerlo, dejo el archivo. espero ayuda. gracias.Ver el archivo adjunto 93556

Hola, es fácil solo tenes que tener en cuenta la frecuencia del pwm,
y tenés que saber las especificaciones del servo.
Acá te paso un ejemplo...

Código:
//Programa principal
void main(){
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_2);
setup_timer_2(T2_DIV_BY_16,255,1);
setup_ccp1(ccp_pwm);
enable_interrupts(INT_EXT);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

long duty=0;

while(TRUE){
set_adc_channel(0); //selecciona el canal 1 del adc
delay_us(20);
duty=read_adc();
delay_us(20); 
set_pwm1_duty(duty);
}
}
En este ejemplo podés variar la parte en alto del pwm con una resistencia conectada al conversor analógico.
Para que el servo te quede a 90 grados por lo general la parte en alto del pwm debe estar en 1,5 ms.
 
Última edición por un moderador:
Hola amspanter48
Nunca intente con LdMicro pero en ASM o C Es relativamente facil, Tomando en cuenta que la señal de control PWM es de 1ms para un extremo y 2ms para el extremo opuesto, ademas esta debe generarse cada 20ms por la frecuencia del servo 50Hz.
Para poder emplear el modulo PWM del PIC la frecuencia de oscilacion debe ser menor a 1MHz dado que la base del tiempo se obtiene del TIMER2 sin considerar el Postscaler. Por esa razon yo prefiero hacer la modulacion PWM empleando INTERRUPCION + TIMER.
La señal digitalizada del potenciometro debe adecuarse a una relacion que permita el control del tiempo de 1ms a 2ms de duracion del pulso.
 
Atrás
Arriba