Tempo no Arduino: programação e funções de temporização

Em Componentes eletrônicos por Henrique

O Arduino é uma plataforma popular para desenvolvimento de projetos eletrônicos, oferecendo uma vasta gama de recursos e funcionalidades. Um dos aspectos essenciais na programação para Arduino é o controle do tempo.

Exploraremos as diferentes funções de temporização disponíveis no Arduino, como Delay, Millis e Micros, e como utilizá-las para criar temporizações precisas em seus projetos.

Ao desenvolver projetos com Arduino, muitas vezes é necessário controlar o tempo de execução de determinadas ações. Isso pode envolver atrasos entre a ativação de componentes, a criação de temporizadores ou até mesmo o agendamento de tarefas.

Leia também

O Arduino oferece várias funções de temporização que permitem lidar com essas situações de forma eficiente e precisa.

O que é tempo no Arduino?

No contexto do Arduino, o tempo refere-se à medição de intervalos de tempo entre eventos ou o atraso entre a execução de ações. O Arduino possui um relógio interno que pode ser usado para realizar essas medições, permitindo controlar com precisão as temporizações em seus projetos.

Usando um timer no arduino

Com o Arduino, é possível usar diferentes funções para a temporização. (Imagem: MakeUseOf)

Funções de temporização no Arduino

Existem três funções principais de temporização no Arduino: Delay, Millis e Micros. Cada uma delas possui características específicas e é adequada para diferentes situações.

1. Delay

A função Delay é a forma mais simples de criar atrasos no Arduino. Ela suspende a execução do programa por um determinado número de milissegundos. No entanto, durante o atraso, o Arduino não pode realizar outras tarefas.

2. Millis

A função Millis é uma opção mais avançada para a temporização no Arduino. Ela retorna o tempo decorrido em milissegundos desde que o Arduino foi ligado. Dessa forma, é possível criar atrasos sem bloquear a execução do programa, permitindo que outras tarefas sejam realizadas simultaneamente.

3. Micros

A função Micros funciona de maneira semelhante à função Millis, mas retorna o tempo decorrido em microssegundos. Ela oferece uma resolução ainda maior para a temporização, sendo útil em situações que exigem precisão extrema.

Delay

A função Delay é a forma mais básica de temporização no Arduino, mas pode ser adequada para algumas situações simples.

1. Como usar a função Delay

Para usar a função Delay, basta especificar o tempo de atraso desejado em milissegundos. Por exemplo, para criar um atraso de 1 segundo, utilizamos Delay(1000).

2. Exemplo prático com Delay

Vamos supor que queremos acender um LED por 1 segundo e, em seguida, apagá-lo por 500 milissegundos. Podemos utilizar a função Delay para controlar esse comportamento. Veja o exemplo de código abaixo:

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

void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(500);
}

Millis

A função Millis oferece uma maneira mais avançada de criar temporizações no Arduino.

1. Como usar a função Millis

A função Millis retorna o tempo decorrido em milissegundos desde que o Arduino foi ligado. Para criar um atraso usando Millis, é necessário armazenar o tempo inicial e compará-lo com o tempo atual em cada iteração do loop.

2. Exemplo prático com Millis

Suponha que desejamos acender um LED por 1 segundo e, em seguida, apagá-lo por 500 milissegundos usando a função Millis. O código abaixo demonstra como realizar essa temporização:

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

void loop() {
static unsigned long previousMillis = 0;
unsigned long currentMillis = millis();

if (currentMillis – previousMillis >= 1000) {
digitalWrite(LED_PIN, HIGH);
previousMillis = currentMillis;
}

if (currentMillis – previousMillis >= 500) {
digitalWrite(LED_PIN, LOW);
previousMillis = currentMillis;
}
}

Micros

A função Micros é semelhante à função Millis, mas oferece uma resolução ainda maior.

1. Como usar a função Micros

Assim como a função Millis, a função Micros requer o armazenamento do tempo inicial e a comparação com o tempo atual em cada iteração do loop. A principal diferença é que o tempo é medido em microssegundos.

2. Exemplo prático com Micros

Suponha que desejamos criar um atraso de 1 segundo usando a função Micros. O código abaixo demonstra como realizar essa temporização:

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

void loop() {
static unsigned long previousMicros = 0;
unsigned long currentMicros = micros();

if (currentMicros – previousMicros >= 1000000) {
digitalWrite(LED_PIN, HIGH);
previousMicros = currentMicros;
}
}

Comparação entre as funções de temporização

Cada função de temporização possui suas próprias características e é adequada para diferentes situações. A tabela abaixo resume as diferenças entre as funções Delay, Millis e Micros:

FunçãoPrecisãoBloqueia a execução do programaResolução
DelayBaixaSim1 ms
MillisMédiaNão1 ms
MicrosAltaNão1 μs

Melhores práticas ao utilizar funções de temporização

Ao utilizar as funções de temporização no Arduino, é importante seguir algumas melhores práticas:

Perguntas Frequentes (FAQs)

1. Posso usar a função Delay para criar atrasos em milissegundos menores que 1 ms?

Não, a função Delay tem uma resolução de 1 ms. Para atrasos menores, é necessário utilizar as funções Millis ou Micros.

2. É possível realizar outras tarefas enquanto a função Delay está em execução?

Não, a função Delay bloqueia a execução do programa durante o atraso.

3. A função Millis consome muita memória do Arduino?

Não, a função Millis utiliza uma quantidade mínima de memória do Arduino.

4. Qual função de temporização devo usar para obter a maior precisão?

A função Micros oferece a maior precisão, medindo o tempo em microssegundos.

5. Posso criar temporizações complexas combinando diferentes funções de temporização?

Sim, é possível combinar diferentes funções de temporização para criar temporizações complexas e precisas em seus projetos.

O controle do tempo é uma parte fundamental da programação no Arduino. Neste artigo, exploramos as diferentes funções de temporização disponíveis, como Delay, Millis e Micros, e como utilizá-las para criar temporizações precisas em seus projetos.

Lembre-se de escolher a função adequada para cada situação e seguir as melhores práticas para obter resultados satisfatórios.

Dúvidas? Deixem nos comentários suas perguntas!

Sobre o autor

Autor Henrique

Eletricista desde 2006, Henrique Mattede também é autor, professor, técnico em eletrotécnica e engenheiro eletricista em formação. É educador renomado na área de eletricidade e um dos precursores do ensino de eletricidade na internet brasileira. Já produziu mais de 1000 videoaulas no canal Mundo da Elétrica no Youtube, cursos profissionalizantes e centenas de artigos técnicos. O conteúdo produzido por Henrique é referência em escolas, faculdades e universidades e já recebeu mais de 120 milhões de acessos na internet.

Aviso legal

Todas as informações obtidas neste site e páginas de redes sociais relacionadas a ele são apenas de caráter INFORMATIVO. O Mundo da Elétrica NÃO se responsabiliza por nenhum dano ou prejuízo causado pela execução de ações relacionadas ou não ao conteúdo descrito aqui. Procure sempre um profissional qualificado, sigas as normas e utilize os equipamentos de proteção para qualquer trabalho que envolva eletricidade.

Deixe um comentário