Controlando Un Servomotor Con Un Pic16f877

Controlando un Servomotor con un pic16f877, por medio de la interrupción del timer0. Código que realice para entender el

Views 118 Downloads 30 File size 215KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Controlando un Servomotor con un pic16f877, por medio de la interrupción del timer0. Código que realice para entender el funcionamiento del servomotor, aclaro que no es la única forma de realizarlo, y no conozco cual sea la mejor, esta es la primera aplicación que realizo para controlar uno.Si crees que un poco de teoría no te vendrá mal te recomiendo este link: [Servomotor]. Bueno si ya conoces la teoría, o eres de los que creen que aquí ay que arriesgar, manos a la obra.

Estoy usando el pic16f877a, 3 botones, 1 lcd, y por su puesto un Servo.

Como ya sabemos la forma de controlar el servo es por medio de PWM, osea un tiempo en alto y otro en bajo, a una frecuencia de 50hz -Osea todo el ciclo completo cada 20mS-, mi servo es el de la imagen, usado en aeromodelismo, no cuenta con datasheet, -no tiene marca- y no hace un giro exacto de 180º, Su tiempo de operación ronda de los 0.7mS para 0º y 2.7mS para hacer un giro de casi180º.

[Código] #include #use delay(clock=20000000) #fuses HS, NOWDT, NOLVP, NOPROTECT #define LCD_E PIN_d0 #define LCD_CK PIN_d1 #define LCD_DAT PIN_d2 #define LCD_LED PIN_d3 #include #use fast_io(B) int cont=0; int pos=16; #int_timer0 void Pwm() { set_timer0(150); cont++; if(cont>=200) {

cont=0; } if(cont