Fácil, fácil, si has hecho una placa como la que publique aquí, además puedes conseguir un servo de 9 gr en ebay por menos de 3$ y moverlo con 4 líneas de código. Vamos a hacer un programa básico de demostración que mueva el servo de un extremo a otro.
Un servo necesita alimentación de 5V por lo que hay que unir 0V al cable negro y +5V al rojo. En cable que queda es la señal que permite variar la posición con el ancho de pulso.
Hay que meter un pulso de entre 0,5 y 2,5 ms cada 20 ms para variar la posición entre -90º y +90º.
Hay muchas formas de programar esto en CCS, en la más sencilla, el PIC se dedica en exclusiva a mover el servo. Activamos las salidas el tiempo necesario y listo:
for (;;) { // Mover a 0º output_high(PIN_B3); delay_us(1000); output_low(PIN_B3); delay_ms(20); }
- Usar un temporizador de 20 ms para lanzar una interrupción que activa el pulso el tiempo necesario. Cuando no se está atendiendo a la interrupción el PIC está libre para hacer otras cosas. Sirve para todos los micros y no nos bloquea el programa.
- Usar el PWM del micro (si lo tiene). Configuramos una salida para que continuamente saque los pulsos que queremos mientras hacemos otras cosas. Es la mejor forma, pero no todos los micros tienen PWM, y no todas las salidas del PIC se pueden utilizar para PWM.