fbpixel
Etiquetas: , ,
0
(0)

La biblioteca Arduino FlexiTimer2 es una biblioteca que permite activar funciones a intervalos de tiempo regulares. Permite, como tal, realizar programas multitarea con microcontroladores Arduino. Este método es útil cuando se quiere hacer funcionar dos motores en paralelo de forma independiente.

Material

  • Arduino UNO
  • Cable USB A/ USB B

Descripción

La biblioteca FlexiTimer2 se basa en la biblioteca MsTimer2. Contiene un conjunto de funciones que permiten interactuar con el registro timer2 del microprocesador Arduino ATmega. Esta biblioteca, similar a una estructura con la función millis(), llama a una función cuando el intervalo de tiempo especificado ha terminado.

El interés de esta biblioteca en comparación con MsTimer2 es que es posible modificar la resolución de conteo, es decir, la frecuencia a la que se incrementa el contador.

Código

En este código, crearemos una función void onTimer, que nos permitirá cambiar el estado del LED de la placa de Arduino. Para inicializar el temporizador, utilizamos la línea

FlexiTimer2::set(500, onTimer);

Y para activarlo, el comando:

FlexiTimer2::start();
#include <FlexiTimer2.h>
unsigned long elapsedTime, previousTime;

void onTimer() {
  static boolean state = HIGH;
  elapsedTime=millis()-previousTime;
  Serial.print(F("Set LED 13 : "));
  if(state){
    Serial.print(F("ON"));
  }else{
    Serial.print(F("OFF"));
  }
  Serial.print(F(" - "));Serial.print(elapsedTime);Serial.println(F("ms"));
  digitalWrite(13, state);
  state = !state;

  previousTime=millis();
}

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);

  FlexiTimer2::set(500, onTimer); // equivalent to FlexiTimer2::set(500, 1/1000, onTimer);
  FlexiTimer2::start();
}

void loop() {
}

N.B.: Hemos añadido una medida de tiempo transcurrido con fines ilustrativos, pero hay que tener cuidado al utilizar funciones basadas en interrupciones en funciones invocables por interrupción. Puede haber interferencias.

Resultado

Una vez iniciado el programa, el LED de la placa se enciende y se apaga cada 500ms

Fuentes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?