El SG90 parece ser un servomotor estándar incluido en la mayoría de los kits de aficionados en estos días (2017). Si bien la siguiente información menciona la Raspberry Pi específicamente, la explicación es buena para una variedad de microcontroladores.
Diferentes bibliotecas de software exponen la funcionalidad PWM con interfaces ligeramente diferentes. Algunos especifican una frecuencia como un valor con una sola llamada. Con otros, haces varias llamadas para configurar un divisor de reloj y un rango. Con este segundo tipo de interfaz, la frecuencia se calcula tomando la frecuencia del reloj original dividida por un divisor de reloj dividido por un rango.
Esta publicación en Raspberry Pi StackExchange, Frecuencia de PWM de Hardware de Control proporciona varias respuestas sobre el uso de la Modulación de ancho de pulso (PWM) para controlar un servomotor con el segundo tipo de interfaz (divisor de reloj y un rango).
Esta publicación se citó en el tutorial de adafruit Raspberry Pi de Adafruit Lección 8. Uso de un servomotor que utiliza un servo SG90.
También vea RASPBERRY PI LECCIÓN 28: CONTROLANDO UN SERVO EN RASPBERRY PI WITH PYTHON usando el primer tipo de interfaz, usando un valor de frecuencia, que dice:
Ahora podemos iniciar la secuencia pwm dando un comando para especificar el
Ciclo de trabajo de la señal. Antes de hacer esto, necesitamos hablar un poco.
Un poco sobre cómo funcionan los servos. Un servo típico quiere ver una frecuencia de
50 Hz en la línea de control. La posición a la que se mueve depende de la
Ancho de pulso de la señal. La mayoría de los servos se comportan más o menos como tales, pero tú
Tendrá que ajustar estos números para su servo en particular. Típicamente,
el servo irá a la posición completa izquierda cuando vea un ancho de pulso
de 1 milisegundo, irá a la posición intermedia cuando vea un pulso
ancho de 1.5 milisegundos, y irá a la posición correcta completa
cuando ve un ancho de pulso de 2 milisegundos.
También vea la respuesta a Posición del servo sin pulso que tiene esto decir acerca del protocolo de pulso para comandar un servo:
Las señales de control de servo no son en realidad PWM sino una variante, pulso
modulación de la duración: la posición del servo no está definida por el servicio PWM
ciclo (es decir, tiempo ON / OFF) pero solo por la duración del pulso. Como
siempre y cuando se encuentre en un rango de (típicamente) 40 Hz a 200 Hz, el
El valor exacto de la velocidad de fotogramas es irrelevante. El servo espera ver
Un pulso cada tantos ms, esto puede variar dentro de un amplio rango que
difiere de servo a servo.