Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola a todos, soy nuevo y e montando mi primer microbot. Ya lo tengo montando y ahora le estoy haciendo los primeros programas en asm para pic16f84.
Estoy empezando por los servos y el primer programa es el de calibrado, ya que son trucados para giro completo y se supone que donde antes respondia dando 90º ahora tendria que dar la velocidad 0, por lo ke e leido a pulsos de 1'2 milisegundos en alto y su complemento en bajo hasta 20 milisegundos, que es lo que creo que hace mi programa entrando en un bucle sin fin del que solo saldria con interrupciones.
Lo e probado, los servos giran y se supone que ahora con un destornillador tendria ke girar el potencimentro del servo hasta que se paren para conseguir la velocidad 0 a esa frecuencia.
El problema que tengo es que no e podio pararlos, no se si porque no lo pillo con el destornillador si porque el programa este mal. Los servos los desmontare, intentare calibrarlos abiertos y los dejare fijos si lo consigo.
Observandolos lo que veo es que girar giran y no a su velocidad maxima pero algo rapidos, me parece, como para pararlos con el potenciometro. Por lo que pense que el fallo puede estar en mi programa que le de otra frecuencia. Probare tambien a darle 1'3 1'4 y 1'5 a ver si esque mi programa las calculase mal (grabare varios pic a ver).
Mi programa lo que tiene es una tabla de la que se puede elegir un pulso desde 0'3 milisegundos hasta 2'4 milisegundos (en este caso escojo la de 1,2 milisegundos, porque es lo que e leido).
¿puede ser que al trucar el servo ya no sea a 1,2 milisegundos la velocidad 0 ? ¿O que no sea siempre 1'2 milisegundos para los 90º? ¿Puede ser que sea a 1'4 o 1'5 milisegundos el pulso? Gracias.
Un saludo
Ivan, si estas mandando un pulso cercano a 1,5ms debes de poder pararlo con el potenciometro. Revisa los tiempos con un osciloscopio.
Hola Ivan, primero revisa que lo hayas "trucado" correctamente. O sea, que sólo hayas quitado el tope físico al último engranage (supongo que eso ya está, sino no giraría) y que hayas cortado el eje que une el potenciómetro con el engranaje. Lo demás no hay que tocar nada, la electrónica se deja tal y como está. El potenciómetro también debe seguir con los cables soldados a la electrónica.
Lo de del pulso de 1,2 o 1,5 o lo que sea, depende de cada fabricante de servos. Hay muchos que usan un pulso de 1,5 ms para centrarlos pero no todos.
Por tanto, una vez revisado lo anterior, lo siguiente que deberías hacer es saber de que fabricante son esos servos. Qué modelo son. Y Buscar la información sobre los pulsos mínimo, máximo y central de ese modelo en concreto.
Gracias por contestar.
Boops, lo que estoy mandando es un pulso de 1'2ms (o al menos eso creo), que es lo que pone por donde lo e leido. No tengo osciloscopio, lo mas que tengo es un multimetro 🙁 . Me temo que solo podre cambiarlas y probarlas sean las que sean.
Dragonet, al abrirlos me asegurare de que los cables sigan soldados a la electronica, por si se an soltado, pero lo demas creo que esta correcto.
Los servos son futaba s3003. Por lo que tengo leido, ya que al menos hoy, no encuentro la hoja de datos, es que el pulso minimo (para 0º)es de 0'3ms y el pulso maximo (180º) es de 2'4ms. Para 90º e leido que el pulso es de 1,2ms.
Esto no se si sera cierto pero a mi no me cuadra. No me cuadra porque veo 1,2 como la mitad de 2,4, si eso es asi, pero la cuenta empieza en 0,3 y no en 0, de ay mi conclusion de que pueden ser 1'5ms que seria la mitad de lo que hay entre 0,3 y 2,4.
Mi programa usa una tabla para escojer un pulso u otro con unos indices de 100microsegundos entre uno y otro, si estubiera en lo cierto con lo de 1'5ms, estaria dandole 3 indices por debajo del correcto (al darle 1'2) solo por seguir las instrucciones.
Probar probare todo, y siento no tener osciloscopio, pero si consigo que funcione, subire el programa por si a alguien le interesa, ya que con pocas modificaciones puede ser util de base para otros proyectos de servos.
Un saludo.
Qué lenguaje estas usando para programar?