Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola 😳 , veran llevo leyendo su pagina ya por meses, pero porfin me anime a escribir, ando haciendo un brazo robot, 😉 y hasta ahora e programado mi PIC16F877 en ensamblador con el programa ''CALDELAY'' ya que este me ha dado los parametros exactos para la movilidad de mi brazo, pero necesito realizar la programacion en lenguaje C, 😕 y aunque es mas corto aun soy nueve en C, y necesito que me den un ejemplo para PIC16F877 sobre como controlar un servo futaba S3003, en un recorrido de 0 a 180 grados si alguien me pudiera conseguir un ejemplo se lo agradeceria mucho.
Otra duda esque cuando estuve moviendo mis servos en ensamblador al estar en los 180 grados el servo producia un sonido y este era como si los engranes estuvieran haciendo mucho esfuerzo, solo queria saber si ese sonido es normal???, o deveria disminuir mi periodo de 20 ms????
CUALQUIER AYUDA DESDE COMENTARIO HASTA UN LINK SE LOS AGRADECERIA INFINITAMENTE
ATTE
ULICES SANTACRUZ LEAL
ULISES_ODISE039@HOTMAIL.COM
mira bien que no le des al servo un pulso mayor que el que debe... el futaba ese creo que va de 10 a 20 no?? no estoy seguro, los míos van de 5 a 25...mira bien eso.
Otra duda esque cuando estuve moviendo mis servos en ensamblador al estar en los 180 grados el servo producia un sonido y este era como si los engranes estuvieran haciendo mucho esfuerzo, solo queria saber si ese sonido es normal???, o deveria disminuir mi periodo de 20 ms????
Hola!
ese "ruidito" no es normal... es como si le estuvieses forzando a una posicion que el tope mecanico no le permite llegar... si tienes la posibilidad de ver el consumo del servo en los topes (0º y 180º) comprueba que es el mismo consumo si en uno te consume mas corriente es por que lo fuerzas.
De todas formas el periodo del PWM debe ser de aprox. 20ms y si no recuerdo mal (hablo de memoria) con el futaba s3003 yo utilizo anchos de pulso de 0,8ms=-90º, 1,5ms =0º y 2,2ms=90º y a mi me funciona bien. 🙂
Salu2!
Pues los anchos de pulso no son 😕 , porque los he modificado y he puesto al servo en 180, 160 y 150 grados y es la misma, sigue ese sonidito 😡 .
eso me deja conque mi perido de 20ms deberia ser de 18 o algo asi.
o tal vez mi fuente esta mal, siempre le pongo 5volts y mi fuente puede mandar un amper como maximo, que sera??? 😕
Porcierto nadie me ha regalado un ejemplo en C, para mover un servo , porfavor quien sea ayudeme tengo un PIC16F877 😉
Hola!
Porcierto nadie me ha regalado un ejemplo en C, para mover un servo , porfavor quien sea ayudeme tengo un PIC16F877 😉
😯 Has probado primero a buscar en GOOGLE?? ❓ ❓ ❓ o por el foro....
#include <16F876>
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT
#use delay (clock=4000000)
#use fast_io(A)
#use fast_io(B)
main()
{
short I1;
set_tris_a(0x1F);
set_tris_b(0x00);
while (1)
{
I1=input(PIN_A0);
if(I1==1) // Posición 0º
{
output_bit(pin_b0,1);
delay_us(800);
output_bit(pin_b0,0);
delay_us(19200);
}
else // Posición 180º
{
output_bit(pin_b0,1);
delay_us(2200);
output_bit(pin_b0,0);
delay_us(17800);
}
}
}
Salu2!