Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Temporização com Arduino: Controlando Temporizadores de Forma Eficiente

A temporização é um conceito fundamental em muitos projetos eletrônicos, especialmente quando se trabalha com microcontroladores como o Arduino. Controlar o tempo de execução de determinadas funções permite criar sistemas mais eficientes e responsivos. Neste artigo, exploraremos a importância da temporização e como implementá-la em projetos com Arduino, utilizando funções como delay(), millis(), e micros(). Ajustes específicos são feitos para garantir que o código seja otimizado para o ambiente Arduino, evitando travamentos e garantindo precisão.

Project: Neste projeto, criaremos um temporizador que controla um LED e um buzzer. O objetivo é acender o LED por um determinado período e, após um intervalo, emitir um som com o buzzer. Este exemplo é prático para entender como temporizar eventos de forma eficiente e pode ser aplicado em diversos contextos, como alarmes, sistemas de notificação e automação residencial.

Components List:

  1. Arduino Uno - 1 unidade
  2. LED - 1 unidade
  3. Resistor de 220 ohms - 1 unidade
  4. Buzzer - 1 unidade
  5. Protoboard - 1 unidade
  6. Jumpers - quantidade necessária

Examples:

// Definição dos pinos
const int ledPin = 13; // Pino digital onde o LED está conectado
const int buzzerPin = 12; // Pino digital onde o buzzer está conectado

// Variáveis de controle de tempo
unsigned long previousMillis = 0; // Armazena o último tempo em que o LED foi atualizado
const long interval = 1000; // Intervalo de 1 segundo para o LED

void setup() {
  // Configuração dos pinos como saída
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  // Função millis() retorna o número de milissegundos desde que o Arduino começou a executar o programa
  unsigned long currentMillis = millis();

  // Verifica se o intervalo de tempo já passou
  if (currentMillis - previousMillis >= interval) {
    // Salva o tempo atual
    previousMillis = currentMillis;

    // Alterna o estado do LED
    digitalWrite(ledPin, !digitalRead(ledPin));
  }

  // Temporização do buzzer
  if (currentMillis % 5000 < 1000) { // Buzzer toca por 1 segundo a cada 5 segundos
    digitalWrite(buzzerPin, HIGH);
  } else {
    digitalWrite(buzzerPin, LOW);
  }
}

Comentários detalhados:

  • const int ledPin = 13; e const int buzzerPin = 12;: Define os pinos onde o LED e o buzzer estão conectados.
  • unsigned long previousMillis = 0; e const long interval = 1000;: Variáveis para controlar o tempo de execução.
  • void setup() { ... }: Configura os pinos como saídas.
  • void loop() { ... }: Função principal que roda continuamente.
  • unsigned long currentMillis = millis();: Captura o tempo atual em milissegundos.
  • if (currentMillis - previousMillis >= interval) { ... }: Verifica se o intervalo de tempo passou e alterna o estado do LED.
  • if (currentMillis % 5000 < 1000) { ... }: Controla o buzzer para tocar por 1 segundo a cada 5 segundos.

Este exemplo ilustra como usar a função millis() para criar temporizações não bloqueantes, permitindo que o Arduino execute outras tarefas enquanto aguarda.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.