Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 72 - Contador de cliques com o Módulo MAX7219 - Arduino
Projeto 72 - Contador de cliques com o Módulo MAX7219 - Arduino
Angelo Luis Ferreira | 02/01/2020
Acessos: 5.049
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 |
|
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