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.