Projeto 72 - Contador de cliques com o Módulo MAX7219 - Arduino

Básico - Projeto 72

Contador de cliques - Módulo Matriz de Leds 8 X 8 - MAX7219

Objetivo

Neste projeto vamos criar um contador de cliques usando o módulo de matriz de leds 8X8 MAX7219 junto com a biblioteca LedControlMS.h e com o Arduino. O programa inicia no número zero. Ao clicar no botão direito, incrementa em +1 o valor na matriz de leds. Ao clicar no botão esquerdo, decrementa -1 o valor na matriz de leds.

Obs: Antes de iniciar este projeto, recomendo que veja o tutorial: Projeto 71 - Como usar o Módulo Matriz de Led 8X8 - MAX7219 com Arduino, onde mostramos como usar o módulo matriz de leds e a bibilhoteca.

Definições

Módulo Matriz de Led 8X8 - MAX7219 - O módulo Matriz de led 8x8 é um módulo que permite controlar displays de led e transmitir informações para o Arduino de uma forma fácil e prática, ocupando poucas portas do microcontrolador (3 portas + VCC e GND). O módulo possuí um circuito integrado MAX7219 projetado para o acionamento de diversos tipos de displays de led, como uma matriz de led 8X8 por exemplo. Utilizando módulos MAX7219 você poderá ligar vários módulos em série (até 8 dispositivos) criando displays de leds de vários tamanhos.

Aplicação

Para fins didáticos e projetos com efeitos visuais, exibição de textos, imagens ou números.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho 1  
Módulo Matriz de led Módulo Matriz de LED 8 X 8 modelo MAX7219  1

Cor emissão do led: vermelha

Circuito Integrado: MAX7219

Tensão de operação: 5V

Qde. de leds: 64 (8X8)

Matriz: modelo 1088AS com organização interna Linhas (catodo comum) | Colunas (anodo comum)

(datasheet)

Poderá ser utilizado qualquer modelo de matriz 8 X 8

 Push Button Push button 6X6X5mm  2    
Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.

Atenção

1. Para a montagem do módulo matriz de leds 8 X 8 basta conectar o módulo com os pinos do Arduino, conforme tabela abaixo:.

Ardunino Módulo
VCC VCC
GND GND
Pino 2 DIN
Pino 3 CLK
Pino 4 CS

2. Monte o botão (push button) sem o resistor, pois através da programação vamos habilitar o resistor pull-up interno do arduino. Desta forma, quando o botão estiver pressionado, o Arduino retornará "LOW" ou "0". Para saber mais sobre botões,assista o vídeo Arduino: Botão e Resistor de Pull Up Interno ou leia os artigos: Projeto 04a - Push Button como interruptor - liga e desliga (padrão para pull-down ou pull-up) e Como usar push button com Arduino (programação).

3. Veja abaixo como realizamos a montagem do nosso projeto um mini protoboard.

Incluindo biblioteca LedControlMS.h no IDE do Arduino

Para obtermos o máximo de funcionalidade do módulo MAX7219 podemos adicionar a biblioteca LedControlMS.h no IDE do Arduino. Com ela podemos acender e apagar leds específicos, criar caracteres, números e até frases de forma muito simples.

Uma das grandes vantagens das placas Arduino é a diversidade de bibliotecas disponíveis que podem ser utilizadas em seus programas. Estas bibliotecas podem ser criadas para a linguagem "C" ou especificamente para o Arduino, reduzindo drasticamente o tempo gasto com programação. Veja a tabela Coletânea de bibliotecas para sensores.

Download dos arquivos da biblioteca LedControlMS.h

DOWNLOAD - Arduino_Led_matrix.zip

Para saber detalhes desta biblioteca clique aqui.

Instalando a biblioteca pelo IDE do Arduino

Após fazer o download do arquivo Arduino_Led_matrix.zip com todos os arquivos da biblioteca compactados no formato zip, abra o IDE do Arduino e siga o tutorial: Como incluir uma biblioteca no IDE do Arduino.

Usando o módulo MAX7219 com a biblioteca LedControlMS.h

Para saber como utilizar a biblioteca LedControlMS.h leia o tutorial: Projeto 71 - Como usar o Módulo Matriz de Led 8X8 - MAX7219 com Arduino

Sketch do projeto

1. Faça o dowload e abra o arquivo projeto72.ino no IDE do Arduino: DOWNLOAD - projeto72.ino

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*             Projeto 72 - Contador de cliques  - módulo Max7219
*             Autor: Angelo Luis Ferreira
*             Data: 02/01/2020 (dd/mm/AA)
*                       http://squids.com.br/arduino
*
*******************************************************************************/
#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  
}

ATENÇÃO: Se a matriz de leds não acender verifique todas as conexões com o Arduino.

Vídeo

Como o projeto deve funcionar

1. Ao iniciar o programa, o display irá mostrar o número 0.

2. Ao pressionar o botão direito o valor do display será incrementado em +1.

3. Ao clicar o botão esquerdo,  valor do display será decrementado em -1.

4. Quando o valor for maior que nove, o display retornará ao valor 0.

5. Da mesma forma, quando e quando o valor for menor que 0, o display retornará 9 sem interromper a contagem.

Desafios

Com base neste projeto, resolva o seguinte desafio:  Desafio 59

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores