Projeto de Contador de Clicks com Matriz LED 8x8 e Arduino

 

Projeto de Contador de Clicks com Matriz LED 8x8 e Arduino

Introdução

Neste artigo, apresentaremos um projeto prático utilizando uma matriz de LED 8x8, dois push buttons, um Arduino e uma protoboard para criar um contador de clicks. Esse projeto é ideal para quem está começando com eletrônica e programação, pois combina conceitos importantes como leitura de entradas digitaiscontrole de saídas em matrizes de LED e lógica de programação.

A matriz de LED 8x8 permite exibir números e padrões, enquanto os push buttons servem como entradas para incrementar e decrementar um contador. Esse tipo de projeto é útil para entender como sistemas de contagem são implementados em dispositivos reais, como painéis de controle, jogos e sistemas industriais.


Materiais Necessários

  • Arduino Uno (ou similar)

  • Matriz de LED 8x8 (com driver MAX7219 ou diretamente conectada)

  • 2 push buttons

  • Protoboard

  • Jumpers


Funcionamento do Projeto

O projeto consiste em:

  1. Dois botões (um para incrementar e outro para decrementar).

  2. Matriz de LED 8x8 para exibir o valor atual do contador (0 a 9, ou mais, dependendo da programação).

  3. Lógica no Arduino que lê os botões, atualiza o contador e exibe o número correspondente na matriz.

Circuito

  • Os botões são conectados a portas digitais do Arduino.

  • A matriz de LED pode ser controlada via biblioteca (como LedControl)




Código Completo

cpp
Copy
Download
#include "LedControlMS.h"

/* Criando o objeto lc
 ***** Definindo os pinos de conexão do módulo MAX7219 *****
 pino 2 conectado no DIN
 pino 3 conectado no CLK
 pino 4 conectado no CS
 N_MTX = 1 - Número de dispositivos (Máximo de 8 módulos MAX7219)
 */
const byte N_MTX = 1;
LedControl lc=LedControl(2,3,4, N_MTX);

String digits = "0123456789";

// define pinos do Arduino
const byte bdir = 11, besq = 12;

int number = 0; // número a ser mostrado no display deve ser int (inteiros posit. e negat.)

void setup() {
  for (int i=0; i< N_MTX; i++){
    lc.shutdown(i,false);
    lc.setIntensity(i,8); /* define o brilho dos leds - médio */    
    lc.clearDisplay(i); /* limpa o display */
  }

  // define botões como entrada e pull up interno do Arduino
  pinMode(besq, INPUT_PULLUP);
  pinMode(bdir, INPUT_PULLUP);
}  
 
void loop() {  
 
  if(!digitalRead(bdir)) { // botão direito acionado
    number += 1;
    while(digitalRead(bdir) == 0) {}; // loop vazio - aguarda soltar o botão
    lc.clearAll();
    delay(200);
  }

  if(!digitalRead(besq)) { // botão esquerdo acionado
    number -= 1;
    while(digitalRead(besq) == 0) {};
    lc.clearAll();
    delay(200);
  }

  // reseta em caso de estouro (<0 ou >9)
  if (number < 0) {number = 9;}  
  if (number > 9) {number = 0;}

 
  // rotina para exibir os dígitos
  char dig = digits[number];
  // displayChar(adress, char)
  lc.displayChar(0, lc.getCharArrayPosition(dig)); // exibe o caractere na posição  
}


Importância do Projeto

  1. Aprendizado de Eletrônica Básica

    • Entender como botões e resistores funcionam.

    • Aprender a conectar uma matriz de LED ao Arduino.

  2. Programação de Microcontroladores

    • Uso de digitalRead() para ler botões.

    • Controle de uma matriz de LED usando bibliotecas ou multiplexação.

    • Implementação de debounce para evitar leituras falsas dos botões.

  3. Aplicações Práticas

    • Sistemas de votação (contagem de votos).

    • Contadores industriais (peças produzidas, pessoas em um espaço).

    • Jogos e displays interativos.

  4. Base para Projetos Mais Complexos

    • Pode ser expandido para um cronômetromedidor de velocidade ou jogo de memória.

    • Integração com outros sensores e atuadores.


Conclusão

Este projeto é uma excelente introdução à prototipagem eletrônica e à programação embarcada, permitindo que iniciantes entendam conceitos essenciais de forma prática. A matriz de LED 8x8 oferece um visual dinâmico, enquanto os botões introduzem a interação humana com o sistema.

Com pequenas modificações, é possível adaptá-lo para diversas aplicações, tornando-o um ótimo ponto de partida para projetos mais avançados.

Comentários

Postagens mais visitadas