Como parte de la realización del controlador de vuelo para el cuadricóptero he creado una librería para leer las señales del receptor PPM típicamente utilizado en aeromodelismo, cuyos canales se encuentran separados y se conectan individualmente. Aclarando que no se transminen las señales PPM en un sólo cable (para éste caso la implementación es diferente).

La finalidad de la librería consiste en alisar las señales mediante el promediado de la misma, posee funciones para controlar la cantidad de muestras para el promediado de las entradas, sin embargo, debe tenerse en cuenta que a medida que las muestras para el promediado se incrementan, el tiempo de respuesta de la salida respecto a la entrada en el mismo momento irá haciéndose más lento, es decir, se incrementará el retardo de la salida.

El objetivo de ésta librería es explicar el funcionamiento básico de cómo pueden mitigarse las fluctuaciones en las señales de entrada leídas por el Arduino, está programada y comentada en español por lo que su uso para el aprendizaje es ideal.

Si bien ésta librería fue originalmente pensada para la utilización con controles de aeromodelismo, puede ser utilizada para la lectura y alisado de cualquier tipo de señal digital. Cuando hablo de alisado, me refiero al promediado de las señales para la obtención de una salida menos fluctuante.

El tiempo de respuesta no es precisamente el mejor, por lo que al implementar en algún prototipo propio o algún proyecto personal deben tener en cuenta el tiempo que recarga el uso la misma. No obstante es una solución rápida para muchos tipos de proyectos y es muy sencilla de utilizar.

En mis pruebas he utilizado esta librería con un Arduino UNO y Nano, sin embargo los pines disponibles para implementar en la librería dependerá de los pines digitales con los que cuente tu versión de Arduino.

El esquema de conexión es tan simple como esto:

libreria rx arduino - esquema de conexion

En este repositorio de Github van a encontrar la librería Rx, y en la misma un ejemplo de su implemetación.

Github: Librería Rx