La librería Threshold implementa un umbral para el control todo o nada con Arduino. Es posible emplear un umbral de consigna única o de doble consigna. La librería emplea Templates para que funcione con distintos tipos de variables.

La consigna permite filtrar una señal, activando o desactivando un estado cuando el valor atraviesa las consignas. La siguiente imagen muestra el comportamiento con doble consigna.

La librería resulta adecuada, por ejemplo, para activar un generador de calor en función de la temperatura registrada, un equipo de bombeo cuando la cota de un depósito supera un nivel, encender una luz o alarma cuando una variable sea superior (o inferior) a una consigna.

Disponer de doble consigna filtra el ruido, reduciendo el número de encendidos de un actuador. No obstante, también es posible emplear la clase Threshold para casos de umbral con consigna única.

El ciclo de histéresis empleado es positivo, es decir, el estado es HIGH cuando la variable supera el RisingThreshold. Tendréis que ser consecuentes con las acciones empleadas (por ejemplo, es diferente activar un generador de calor, o un ventilador)

La clase dispone de un método AddValue, para introducir el nuevo valor de estado de entrada. De esta forma podemos usar la librería con cualquier método de entrada, incluido GPIO, interrupciones, valores calculados, o recibidos por cualquier medio de comunicación.

La librería permite añadir funciones de callback para los eventos OnRising, OnFalling y OnChanging, por lo que podemos emplear la propia clase para gestionar el flujo del programa, sin tener que realizar estas tareas desde el bucle principal.

Para más información consultar la entrada
Control todo/nada con Arduino y umbral o doble umbral.

Manual de uso

Constructor

El filtro de Threshold se instancia a través de uno de sus constructores.

Usar librería

Instalación

  • Descargar la última versión de este enlace ThresholdLib.zip
  • Descomprimir el archivo
  • Copiar en tu carpeta de librerías (normalmente Mis Documentos\Arduino\libraries)
  • Relanzar el IDE de Arduino

Ejemplos

La librería Threshold incluye los siguientes ejemplos para ilustrar su uso.

  • SingleThreshold: Ejemplo de umbral simple
  • DoubleThreshold: Ejemplo de umbral doble (histéresis)
  • Events: Ejemplo de funciones de callback

Historial de versiones

  • 1.0 Primera versión


Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino