Arduino: Temporizadores e Interrupcoes: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 52: Linha 52:


*Carregar e testar o programa.
*Carregar e testar o programa.
==Interrupções==


==Referências==
==Referências==

Edição das 15h41min de 9 de novembro de 2021

Arduíno: Temporizadores e Interrupções

Temporizadores

O Arduíno possui várias funções que permitem implementar temporizadores e realizar medidas de tempo.

Funções de pausa temporizada no programa
delay(ms)
Pausa o programa por uma quantidade de tempo especificada como parâmetro em milissegundos. (onde 1000 milissegundos é 1 segundo).
delayMicroseconds(us)
Equivalente ao delay() com tempo especificado microssegundos.
Funções para medidas de tempo
millis()
Retorna o número de milissegundos decorridos desde que a placa Arduíno foi iniciada com o programa atual.
micros()
Equivalente ao millis() retornando o número de microssegundos.

Laboratório 1: Blink sem pausar o programa em execução

Uma aplicação interessante da função millis() é poder realizar temporizações sem pausar o programa em execução.

Exemplo
Programa Blink sem pausar programa [1].
/*
 * Blink sem delay();
 */
const int ledPin =  13;           // pino do led
int ledState = LOW;               // estado do led
unsigned long previousMillis = 0; // tempo anterior no qual o led foi chaveado
const long interval = 1000;       // intervalo para piscar led (milliseconds)

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // salva o último tempo em que o led foi chaveado
    previousMillis = currentMillis;
    // chaveia o led:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }
    // atualiza estado do led:
    digitalWrite(ledPin, ledState);
  }
}
  • Carregar e testar o programa.

Interrupções

Referências


Evandro.cantu (discussão) 09h51min de 9 de novembro de 2021 (-03)