nulo servoRotate0 () // 0 grados { unsigned int i; para (i = 0; i <50; i ++) { PORTB.F0 = 1; Delay_us (800); PORTB.F0 = 0; Delay_us (19200); } } nulo servoRotate90 () // 90 grados { unsigned int i; para (i = 0; i <50; i ++) { PORTB.F0 = 1; Delay_us (1500); PORTB.F0 = 0; Delay_us (18500); } } servoRotate180 vacío () // 180 grados { unsigned int i; para (i = 0; i <50; i ++) { PORTB.F0 = 1; Delay_us (2200); PORTB.F0 = 0; Delay_us (17800); } } vacío principal() { TRISB = 0; // PORTB como puerto de salida hacer { servoRotate0 (); // 0 grados Delay_ms (2000); servoRotate90 (); //90 grados Delay_ms (2000); servoRotate180 (); // 180 grados } mientras (1); }
El cable de control del servo está conectado a RB0 del microcontrolador PIC. Delay_ms () se usa para retrasar en milisegundos durante la ejecución del programa, mientras que Delay_us () se usa para retrasar en microsegundos durante la ejecución del programa.