Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola estoy haciendo un pequeño proyecto y necesito controlar unos servos...he aconseguido poner el servo en una posicion determinada pero no puedo mover de un angulo a otro (es decir pasar de 30º a 180º por ejemplo).
El codigo que uso para ir a una posicion determinada es este:
#include <16f690.h>
#fuses XT,NOWDT
#use delay (clock=4000000)
#use standard_io(B)
//*************************************************Función para mover a una posicion fija*************************************************************************
void posicio_fixa(int16 x)
{
int16 alto,bajo;
alto=x*100;
bajo=20000-alto; // 20000us=20ms
output_high(PIN_A0);
delay_us(alto);
output_low(PIN_A0);
delay_us(bajo);
}
void main()
{
setup_oscillator(OSC_4MHZ);
while(true)
{
posicio_fixa(10); //Aprox 30º
delay_ms(50);
posicio_fixa(24); //Aprox 180º
delay_ms(50);
}
}
donde se quedo la buena costumbre de comentar el codigo :O