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

Contador de Pulsos com Arduino

Um contador de pulsos é um dispositivo eletrônico que conta o número de pulsos elétricos em uma determinada linha de entrada. Esse tipo de contador é amplamente utilizado em diversas aplicações, como medição de velocidade, controle de processos industriais, e contagem de eventos. No contexto do Arduino, o contador de pulsos pode ser implementado de forma simples e eficiente, aproveitando as capacidades de interrupção e leitura de pinos digitais da plataforma.

Project: Neste projeto, vamos criar um contador de pulsos utilizando um Arduino Uno. O objetivo é contar o número de pulsos gerados por um sensor de efeito Hall, que detecta a passagem de um ímã. O projeto terá as seguintes funcionalidades:

  • Contar e exibir o número de pulsos em um display LCD.
  • Resetar a contagem através de um botão de reset.
  • Utilizar interrupções para garantir a precisão da contagem.

Components List:

  • 1x Arduino Uno
  • 1x Sensor de Efeito Hall
  • 1x Display LCD 16x2
  • 1x Botão de Reset
  • 1x Resistor de 10kΩ
  • 1x Protoboard
  • Jumpers

Examples:

#include <LiquidCrystal.h>

// Inicializa a biblioteca LCD com os pinos correspondentes
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

volatile int pulseCount = 0; // Variável que armazena a contagem de pulsos
const int hallSensorPin = 2; // Pino do sensor de efeito Hall
const int resetButtonPin = 7; // Pino do botão de reset

void setup() {
  // Configura os pinos
  pinMode(hallSensorPin, INPUT);
  pinMode(resetButtonPin, INPUT_PULLUP);

  // Configura a interrupção para o sensor de efeito Hall
  attachInterrupt(digitalPinToInterrupt(hallSensorPin), countPulse, RISING);

  // Inicializa o display LCD
  lcd.begin(16, 2);
  lcd.print("Pulsos: ");
}

void loop() {
  // Verifica se o botão de reset foi pressionado
  if (digitalRead(resetButtonPin) == LOW) {
    pulseCount = 0; // Reseta a contagem de pulsos
    lcd.setCursor(0, 1);
    lcd.print("Pulsos: ");
    lcd.print(pulseCount);
    delay(200); // Debounce para o botão de reset
  }

  // Atualiza a contagem de pulsos no display LCD
  lcd.setCursor(0, 1);
  lcd.print("Pulsos: ");
  lcd.print(pulseCount);
  delay(100); // Pequeno delay para evitar flickering no display
}

// Função de interrupção para contar os pulsos
void countPulse() {
  pulseCount++;
}

Explicação do Código:

  • #include <LiquidCrystal.h>: Inclui a biblioteca necessária para controlar o display LCD.
  • LiquidCrystal lcd(12, 11, 5, 4, 3, 2): Inicializa a biblioteca LCD com os pinos correspondentes.
  • volatile int pulseCount = 0: Declara uma variável volátil para armazenar a contagem de pulsos.
  • const int hallSensorPin = 2: Define o pino do sensor de efeito Hall.
  • const int resetButtonPin = 7: Define o pino do botão de reset.
  • void setup(): Configura os pinos e inicializa o display LCD.
  • attachInterrupt(digitalPinToInterrupt(hallSensorPin), countPulse, RISING): Configura a interrupção para o sensor de efeito Hall.
  • void loop(): Verifica se o botão de reset foi pressionado e atualiza a contagem de pulsos no display LCD.
  • void countPulse(): Função de interrupção para contar os pulsos.

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.