fbpixel
Etiquetas:, ,
0
(0)

A biblioteca Arduino FlexiTimer2 permite ativar funções a intervalos regulares de tempo. Assim, ela possibilita realizar programas multitarefa com microcontroladores Arduino. Este método é útil quando se pretende operar dois motores em paralelo de forma independente.

Material

  • Arduino UNO
  • Cabo USB A/ USB B

Descrição

A biblioteca FlexiTimer2 é baseada na biblioteca MsTimer2. Ela contém um conjunto de funções que permitem a interface com o registro timer2 do microprocessador ATmega do Arduino. Esta biblioteca, de uso semelhante ao de uma estrutura com a função millis(), chama uma função quando o intervalo de tempo especificado termina.

A vantagem desta biblioteca em comparação com a MsTimer2 é que permite modificar a resolução de contagem, ou seja, a frequência com a qual o contador aumenta.

Código

Neste código, vamos criar uma função de tipo void onTimer, que nos permitirá alterar o estado do LED de bordo do Arduino. Para inicializar o timer, usamos a linha:

FlexiTimer2::set(500, onTimer);

E para o ativar, o 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() {
}

Obs: Acrescentamos uma medição do tempo decorrido a título ilustrativo, mas é preciso ter cuidado ao utilizar funções baseadas em interrupções nas funções que são chamadas por interrupções. Pode haver interferência.

Resultado

Uma vez iniciado o programa, o LED integrado acende e apaga a cada 500ms.

Fontes

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

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?