Autor Tema: mover un par de servos  (Leído 1493 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado donpato

  • PIC10
  • *
  • Mensajes: 2
mover un par de servos
« en: 17 de Diciembre de 2008, 18:26:36 »
saludos, construi una pequeña tarjeta para controlar 2 servos de manera simultanea con un 16f84a, mi meta es que tenga dos funciones, automatico y manual, en automatico realice una rutina programada en el pic, y en manual, con un par de pulsadores se muevan los servos a la posicion deseada, tristemente solo he podido hacer que se muevan a posiciones especificas, es decir, si programo un pulso de 2ms el servo se va de golpe hasta los 180º, pero si deceo que se queden "en el camino" no lo hace, antes trabajaba con unos futaba que si lo hacian pero recientemente consegui unos towerpro que son los que son desovedientes.
aqui posteo el codigo

#include <pic.h>
#include <delay.c>



void arriba(void)        //SUBRUTINA SUBE PRIMER ARTICULACION

{
RB3=1;
RB4=1;
DelayMs(2);
DelayUs(400);
RB3=0;
RB4=0;
DelayMs(17);
}

void abajo(void)        //SUBRUTINA BAJA PRIMER ARTICULACION

{

RB3=1;
RB4=1;
DelayUs(500);
RB3=0;
RB4=0;
DelayMs(17);


}

void main(void)

{
TRISA=0x1f;
TRISB=0x80;
if(RA2==0&&RA3==1)            // PRIMERA ARTICULACION ABAJO
{
abajo();
}
if(RA2==1&&RA3==0)            // PRIMERA ARTICULACION ARRIBA
{
arriba();
}


else                                    // FUNCION STOP
{

RB3=1;
RB4=1;

}
}

bueno eso de quedarse en el camino es mas bien que al picar el boton avance solo un poco, y al volver a picarlo avance otro poco mas, y con el otro boton valla al lado contrario.

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
Re: mover un par de servos
« Respuesta #1 en: 23 de Diciembre de 2008, 06:11:11 »
Hola,

Comentarte que hay quedar un pulso cada 20 ms a nivel alto (de tiempo proporcional al recorrido que se desee) para controlar el servo. el envio de un unico pulso de 2 ms no te garantiza que el servo se movera 180º ya que tardara unos 0.5 segundos (o mas, dependiendo del servo) en realizar ese desplazamiento y el servo debe de tener en su entrada la señal cada 20 ms constantemente.

Por tanto, te sugiero que, para controlar los 2 servos utilizes el timer con interrupcion cada 10ms (al final para cada servo utilizas 20 ms) y seguro que asi te funciona.

Saludos.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: mover un par de servos
« Respuesta #2 en: 23 de Diciembre de 2008, 06:38:26 »
Efectivamente lo ideal es que muevas los servos mediante un Timer.

Te recomiendo eches un vistazo a este magnífico artículo de nuestro incansable Diego: Controlando 8 Servos con una sola interrupción