Tengo un PIC 12F629 y lo conecté a mi servo (TowerPro sg5010 motor ) según estos detalles:
- PIC pin 1 a positivo
- pin 8 a negativo
- pin 2 al cable rojo (señal) servo
- cable marrón servo a negativo
- servo naranja a positivo (servo tiene tres colores: cables marrón, rojo y naranja)
Programé PIC con este código:
#include <xc.h>
#define _XTAL_FREQ 20000000
#pragma config WDTE=OFF , BOREN=OFF , PWRTE=ON , MCLRE=OFF , FOSC=INTRCIO
void main(){
TRISIO = 0b0000000;
GPIO = 0b000000;
while(1==1){
GPIO = 0b000000;
__delay_ms(1);
GPIO = 0b111111;
__delay_ms(19);
}
}
Pero el servo no se mueve un poco. ¿Cuál es el problema?
Editar : descubrí que giraba el brazo del servo muy rápido hasta el final (el punto en el que no podía girar más entonces suena como tic tic tictac .....)
cambié mi código a esto (para revertirlo):
GPIO = 0b000000;
__delay_ms(1);
GPIO = 0b111111;
__delay_ms(19);
GPIO = 0b000000;
__delay_ms(2);
GPIO = 0b111111;
__delay_ms(18);
pero se comporta igual.