Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Buenas a todos.
He estado haciendo cosillas con mi Skybot y ahora toca utilizar el PWM. En primer lugar mí pregunta seria.
¿Un SkyBot puede hacer PWM por Hardware?
En caso de que sea, no.
¿Me podeis recomendar algun método para implementarlo mediante software? (Lo he estado haciendo con delays, me han dicho que no es buena idea).
En caso de que sea, sí.
¿Me podeis pasar documentacion de como usarla? (Estoy un poco perdido)
Saludos y muchas gracias.
Aquí va un petit codi d'exemple en el CCS:
#include <16f876A> //pic a utilizar
#fuses HS,NOWDT,NOPROTECT,PUT //instrucciones
#use delay (clock=20000000) //Frecuencia del reloj=20Mhz
INT duty_esq,duty_drt;
//configura PWM
SETUP_CCP1(CCP_PWM); // Configura CCP1 com a PWM ---ESQUERRE--- rc2 port C patilla 12
SETUP_CCP2(CCP_PWM); // Configura CCP2 com a PWM ---DRETA------ rc1 patilla 13
setup_timer_2(T2_DIV_BY_1, 255, 1);
while(1) {
duty_esq=10;
duty_drt=90;
SET_pwm1_duty(duty_esq);
SET_pwm2_duty(duty_drt);
delay_ms(1000);
duty_esq=90;
duty_drt=10;
SET_pwm1_duty(duty_esq);
SET_pwm2_duty(duty_drt);
delay_ms(1000);
}
Este ejemplo cambia cada segundo el duty cycle de las dos salidas pwm, del 10% al 90% sucesivamente.