Mover un servo con PIC y CCS

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.

Servo conectado al PIC

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.

Diagrama de tiempo para controlar un servo

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);
}
Otras formas que veremos en las siguientes entregas:
  • 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.

Deja una respuesta

Tu email nunca se publicará.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies