Para este ejemplo estoy utilizando un servo estándar.
Un Servo
1000us (0 grados)---1500us (90 grados)---2000us (180 grados)
Rango
Low ------------------------- 1000 ------------------------- High
Servos de rotación continua
Avance completo completo inversa Halt(90)
Rango = alta-baja = 2000 – 1000 = 1000us
Rango dividido por el ángulo máximo del servo =
1000 / 180 = 5,5555 microsegundos por degree(Mpd)
Ángulo del servo = (ángulo x Mpd) + bajo
(78 x 5.56) + 1000 = 1433.68us está lo suficientemente cerca
Tiempo = ángulo del Servo en nosotros dividido por unidad de Pulsout
tiempo = 1434 / 5 = 287 (pulsout unidad es 5)
pulsout pin, 287 = 78 grados en un servo
Servos usan Microseconds(us) para que tengas control fino sobre el ángulo que desee el servo para ir a. Microsegundos forman parte del lenguaje de microprocesadores no personas. Funciones que se ocupan de microsegundos hacen de la manera que fueron programados.
Personas conseguirán revuelto para arriba porque funciones como pulsout no funcionan a la manera de pensar que debe. Recuerde que están hechos para el sistema que se ejecutan en. Lea su manual. Mayoría de las funciones de pulsout es como este 'pulsout pin, la vez'. El tiempo es el número de microsegundos en cada unidad que conforman el pulso no es un tiempo real o ángulo.
Servos de su herencia de Radio Control necesitan un flujo de pulsos sobre cada 20 milisegundos o tan de cerca de diez veces del mismo pulso para conseguir que reconocer que es el ángulo que quieras ir a. En su programa sólo configurar un bucle para enviar un tren de pulsos al servo cuando usted programa inicialmente a cada nuevo ángulo. Después de eso sólo necesita re-fresh te servo sobre cada 30-50 milisegundos o cuando sea necesario por el servo.
Pulsout puede ser diferente en diferentes procesadores en el mismo idioma porque se basa en la velocidad de reloj del procesador y el procesador. También puede ser diferente en distintas versiones de una misma lengua. Lea su manual.
Creo que debemos decir a las empresas a estandarizar funciones como pulsout. Tendría servos mucho más divertido.
Mantener una constante de valor mi tiempo 28x2_TIME = 5. Declaro la versión fabricante, procesador, velocidad y lengua en un Comentario por lo que sé lo que estoy usando. Esto puede ser un desagradable error en un programa para encontrar.
unidad = 5us
Pulsout pin, 90 agudo es 5 x 90 = 450 no 90 grados a un servo
Tiempo = unidad dividida el ángulo del servo en microsegundos.
Tiempo = 1500 / unidad = 300 es de 300 cientos pulsos de 5us por cada
Pulsout pin, 300 equivale a un pulso de 1500 microsegundos al pin.
Un servo a 90 grados.
Mantener un servo en un ángulo por lo refrescante. El mismo comando envía al servo hasta cada 20ms. Cuanto mayor sea la carga más veces por segundo que necesita actualizar el servo. Para servos de rotación continua, la velocidad es controlada por el ángulo y la frecuencia de actualización. Cerca de 180 es más rápido hacia adelante. Más cercano a 0 es más rápido hacia atrás. 90 grados es alto. Se trata de una forma muy sencilla para mover un robot. Mire el BOE y Sumo Bots Parallax.com. Servos mueven nuestras ideas. Hacer algo divertido.
Estoy usando un servo estándar como un ejemplo.
Pulsout ejemplos
Arduino
digitalWrite (outPin, alto); el pin se pone en
delayMicroseconds (1500); pausas para 1500 microsegundos (unsigned int)
digitalWrite (outPin, baja); sale el pin
o biblioteca de Servo
…
myservo.Write(POS); pos es 0-180 como un ángulo
…
PICAXE pulsout pin, tiempo (0-65535) unsigned int
Reloj nos de la velocidad por unidad 0 90 180
4MHz 10us 100 150 200
8MHz 5us X2 piezas 200 300 400
16MHz 2.5us 400 600 800
32MHz 1.25us 800 1200 1600
64MHz 0.625us 1600 2400 3200
Pin de pulsout sellos básico, time(0-65535) unsigned int
Procesador nos por unidad 0 90 180
Basic Stamp un 10us 100 150 200
Basic Stamp 500 750 1000 2 dos
…
BasicAtom pulsout pin, time(word)
Procesador nos por unidad 0 90 180
BA 5us 200 300 400
BAN 12us 84 125 167
BAP 3us 334 500 667
BAP40 2.5us 400 600 800
Referencia de comandos de Pololu AVR Library
:: setServoTarget (servoNum unsigned char, unsigned int pos_us)
ángulo del Servo de pos_us 400-2450 en microsegundos. 1500 = 90 grados.
Recuerde leer el manual en sus servos y la función que se utiliza para controlarlos.
Los que consiguió caminar robots felicito a caminando con servos.
Por Steven R. Cypherd