Control servo con temporizador 555

0

En primer lugar, esto es para una tarea, por lo que tengo ciertas limitaciones, principalmente el costo. El problema que tengo es que me he quedado sin entradas de PWM en mi ATtiny45 pero todavía quiero conducir un servo. Las dos salidas PWM están ocupadas impulsando dos motores. Este servo solo tendría que barrer de izquierda a derecha y retroceder sin problemas constantemente para permitir que tome la lectura desde diferentes ángulos desde un sensor conectado al brazo.

¿Hay alguna manera de que pueda usar un temporizador 555 para barrer una señal PWM para controlar el servo? Mi idea sería entonces suavizar esta señal PWM para leerla como señal analógica en una de las entradas del ATtiny45, leyendo así el ángulo. En realidad, este servo está haciendo algo bastante 'tonto', por lo que no debería necesitar un microcontrolador que lo maneje.

Como dije, esto es para una tarea, así que no me des demasiados detalles, pero cualquier sugerencia sobre este esquema o sugerencias para darme más capacidad de PWM serían muy apreciadas. :)

    
pregunta MHilton

1 respuesta

1

Un 555 puede generar pulsos de servo, pero para 'barrer' el ancho del pulso necesitaría un segundo 555 (o un 556, o algún otro circuito que produzca una onda triangular). Luego, para suavizar la frecuencia de pulso de 50Hz lo suficiente para una conversión A / D precisa, debe integrarla con una constante de tiempo prolongada, por lo que el tiempo de respuesta será lento.

Si todavía tiene una salida digital disponible, puede ser más fácil (y más barato) generar el pulso de servo en el software. Configure una interrupción del temporizador de 20 ms y cree el pulso de 1 ~ 2 ms usando un bucle de retardo de software dentro del ISR.

La sincronización del pulso del servo debe ser precisa en unos pocos microsegundos, pero la mayoría de los servos pueden manejar una variación bastante amplia en la tasa de repetición (al menos 15 ~ 25 ms), por lo que el temporizador de 20 ms no tiene que ser preciso. Si, por alguna razón, no puede usar interrupciones, aún podría producir pulsos con la tasa de repetición requerida en primer plano, por ejemplo. completando su tiempo de ejecución del bucle principal a ~ 20ms.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas