Librería de Arduino Easing


La librería de Arduino Easing implementa funciones para realizar una transición suave entre cambios en una variable. (por ejemplo, para cambiar la velocidad de un motor de forma suave.

Para usarlo, simplemente crear una instancia del objeto 'Easing' y usar el operador '=' para cambiar el SetPoint. Después emplear la función 'GetValue()' para obtener el valor suavizado.

El intervalo de suavizado puede cambiarse o bien durante la creación de la instancia, en el constructor, o en mediante las funciones 'SetMillisInterval()' o 'SetMicrosInterval()'. Adicionalmente, puede usarse la función 'Init()' para cambiar inmediatamente el Setpoint y la variable.

Anuncio:

Modos disponibles de uso

Los modos disponibles son los siguientes

LINEAR
EASE_IN_QUAD
EASE_OUT_QUAD
EASE_IN_OUT_QUAD
EASE_IN_CUBIC
EASE_OUT_CUBIC
EASE_IN_OUT_CUBIC
EASE_IN_QUART
EASE_OUT_QUART
EASE_IN_OUT_QUART
EASE_IN_QUINT
EASE_OUT_QUINT
EASE_IN_OUT_QUINT

Orden de la función

Hay disponibles cinco ordenes de funciones (LINEAR, QUAD, CUBIC, QUART, QUINT). Un orden superior implica una zona de tarnsición más suave, pero una mayor pendiente en las partes medias de la transición.

Easing IN, OUT, IN-OUT

Hay disponibles tres modos de transición (IN, OUT, IN-OUT).

Ejemplos

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

  • Example: Ejemplo que muestra el uso de Easing
#include "EasingLib.h"

int values[8] = { 0, 1000, 4000, 2000, 1000, 3000, 5000, 1000 };

// Default constructor (EASE_IN_OUT_CUBIC, 1000ms)
Easing easing();

// Full constructor
// Easing easing(ease_mode::LINEAR, 500);

void setup() 
{
	while (!Serial){};

	Serial.begin(115200);

	for(auto i = 0; i < 240; i++)
	{
		auto index = i / 30;
		float newValue = values[index];
		
		Serial.print(newValue);
		Serial.print(',');
		Serial.println(easing.SetSetpoint(newValue));

		delay(50);
	}
}

void loop()
{ 
}

Instalación

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

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

Anuncio:

Previous Comunicar una página web con websockets en el ESP8266 o ESP32
Next Comunicar una página web con AsyncWebsockets en el ESP8266 o ESP32
1 Comment
oldest
newest
Inline Feedbacks
View all comments
Hernan
1 year ago

Mis felicitaciones por el material, exelente!!
Saludos amigo Luis