¿La mejor manera de controlar simultáneamente dos servos posicionados horizontal y verticalmente?

0

Estoy intentando configurar un programa en C donde un servo (servo1) se desplaza a una posición, espera unos segundos, se mueve a otra posición y se repite 4 veces más. Se supone que otro servo, posicionado verticalmente (servo2) se mueve hacia arriba y mantiene su posición, especialmente durante el período en que el servo1 está esperando. Tengo servo2 ejecutándose en un bucle infinito como un hilo separado, pero no estoy seguro si este es el mejor curso de acción.

El problema es que el servo2 se cae y pierde su posición si no recibe una señal de manera consistente, o si sigue recibiendo una señal, suena constantemente y a veces salta. No estoy seguro de si salta porque si hay interrupciones en segundo plano (estoy usando un tablero de instrumentos que ejecuta Linux).

Me gustaría que el servo 2 no gire para nada. Cualquier ayuda o sugerencia sobre la implementación sería apreciada.

    

1 respuesta

1

¿Qué tipo de servos tienes?

Por lo que sé, hay servos analógicos que puede manejar con un pwm. Cada microcontrolador que he visto tiene algunas salidas pwm. Con ellos puede generar la señal y se ejecuta en segundo plano sin necesidad de recursos de procesador.

Cuando, a continuación, cambie el período de tiempo de encendido de un pwm, el otro debería descansar como estaba. Por lo tanto, en este caso no se necesitan múltiples subprocesos y resolver su problema es realmente sencillo y directo.

    
respondido por el Sider

Lea otras preguntas en las etiquetas