Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino
Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino
Angelo Luis Ferreira | 19/08/2019
Acessos: 11.523
Básico - Projeto 63
Usando o módulo TM1637 (display com 4 dígitos)
Objetivo
Neste projeto vamos mostrar como utilizar o módulo TM1637 para exibir o valor de uma porta analógica do microcontrolador Arduino. Ao usarmos um potenciômetro, o display irá exibir os valores de tensão entre 0 e 5V que são interpretados pelo Arduino como valores entre 0 e 1023. Ao clicarmos um botão valores passarão de números entre 0 e 1023 para números entre 0 e 5V.
Definições
Módulo TM1637 é constituído por 4 displays de 7 segmentos em conjunto (4 dígitos). O módulo TM1637 é de fácil integração com o Arduino, pois sua tensão de alimentação é de 5V e seu controle é feito apenas por 2 conexões com o microcontrolador. Os outros 2 pinos são utilizados para a alimentação do componente. Ideal para projetos com relógio (possui uma identificação central com dois pontos) e contadores que necessitem de um display de fácil visualização.
Observação: Este projeto utilizará uma biblioteca específica para o módulo TM1637 que disponibilizaremos junto com o sketch.
Aplicação
Para fins didáticos e projetos com relógios digitais e equipamentos com contadores.
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 TM1637 |
Módulo TM1637 - 4 dígitos
(anodo comum)
|
1 |
|
- Controlador TM1637 - Alimentação: 3.3 à 5V DC - Display 7 segmentos 4 dígitos anodo comum
datasheet
|
Push Button |
Push button 6X6X5mm |
1 |
|
|
Potenciômetro |
Potenciômetro 1K |
1 |
|
Você poderá experimentar valores diferentes do potenciômetro, entre 1K a 100K
A tensão resultante do potenciômetro aumenta quando giramos o eixo do componente no sentido do polo negativo para o polo positivo.
|
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 é necessário conhecer a disposição dos seus pinos. Olhando na parte traseira do módulo podemos observar 4 pinos, sendo eles: dois pinos de alimentação (Vcc e GND) e dois pinos de controle/comunicação: CLK (clock) e DIO (dados):
2. A tabela a seguir mostra as conexões do Arduino com o módulo TM1637 do nosso projeto.
Pinos do Arduino |
Pino do TM1637 |
2 |
CLK |
3 |
DIO |
3. 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". Veja o projeto Projeto 02b - Led apaga com push button pressionado (pull-up interno do Arduino) ou assista o vídeo Arduino: Botão e Resistor de Pull Up Interno
4. Observe que nesse projeto o potenciômetro foi montado como um divisor de tensão, onde utilizamos os 3 terminais do componente:
Desta forma, o potenciômetro funciona como um divisor de tensão que pode ser lido pelo IDE do Arduino. Girando o eixo do polo negativo (GND) para o polo positivo (Vcc) aumentamos o valor, e ao contrário, diminuímos a intensidade do brilho dos leds do display.
5. Veja abaixo como realizamos a montagem do nosso projeto utilizando um protoboard. Observe que utilizamos um display catodo comum e ligamos o pino 3 no GND do Arduino.
Incluindo biblioteca TM1637 no IDE do Arduino
Para criarmos os comandos para o módulo TM1637 é necessário instalarmos uma biblioteca específica para o componente:
Download dos arquivos da biblioteca TM1637
DOWNLOAD - TM1637-master.zip
Para saber detalhes desta biblioteca clique aqui.
Instalando a biblioteca pelo IDE do Arduino
Após fazer o download do arquivo TM1637-master.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.
Para conhecer outras bibliotecas para módulos veja a Coletânea de bibliotecas para módulos.
Usando a biblioteca
Neste projeto vamos utilizar apenas duas funções (métodos) da biblioteca TM1637:
a) display.setBrightness(): Este serve para definir o brilho do display, onde o parâmetro de 0 define o brilho mais baixo e 7 para o mais alto.Ex.: display.setBrightness(7);
b) showNumberDec() : Esta função serve para mostrar valores no display seguindo os seguintes parâmetros:
1º parâmetro: Número do tipo inteiro. Valores de 0 até 9999;
2º parâmetro: Verdadeiro ou falso. Serve para exibir zeros à esquerda pra valores até 999. O valor padrão é falso.
3º parâmetro: Opcional. Corresponde ao número de dígitos a serem exibidos
4º parâmetro: Opcional. Posição do dígito menos significativo (0 mais à esquerda, 3 - mais à direita).
Exemplos:
Sketch do projeto
1. Faça o dowload e abra o arquivo projeto63.ino no IDE do Arduino: DOWNLOAD - projeto63.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
*
* Projeto 63: Modulo TM1637 com Arduino
* Autor: Arduino e Cia
* Adaptado por: Angelo Luis Ferreira
*
* http://squids.com.br/arduino
*
*******************************************************************************/
#include <TM1637Display.h>
//Pinos de controle do modulo
const byte CLK = 2;
const byte DIO = 3;
const byte pin_pot = A0;
byte estado = 0;
int pin_but = 12;
byte controle = 0;
//Inicializa o display
TM1637Display display(CLK, DIO);
int valor;
float tensao;
void setup(){
pinMode(A0, INPUT);
pinMode(pin_but, INPUT_PULLUP); ///Habilita o pull up interno do Arduino
Serial.begin(9600);
}
void loop(){
// le o estado pushbutton: ligado (HIGH) ou desligado (LOW)
estado = digitalRead(pin_but);
// verifica se o botão (pushbutton) está pressionado e muda o controle
if (!estado) {
controle = !controle; // inverte valor da variável controle
while (!digitalRead(pin_but)) { } //esperera soltar o botão
delay(50);
}
//Define o brilho do display
display.setBrightness(0x0f);
//Le o valor do potenciometro
valor = analogRead(pin_pot);
tensao = map(valor, 0, 1023, 0, 5); // converte tensão entre 0 e 5
Serial.println(estado);
if(controle == 0) {
//Mostra o valor no display
display.showNumberDec(valor, false);
} else if(controle == 1) {
//Mostra o valor no display
display.showNumberDec(tensao, false);
}
delay(50);
}
ATENÇÃO: Se o display não acender verifique todas as conexões do módulo e do potenciômetro.
Vídeo
Como o projeto deve funcionar
1. Ao iniciar o programa, o display irá exibir um valor entre 0 e 1023, dependendo da posição que o eixo do potenciômetro se encontra.
2. Girando o eixo do potenciômetro no sentido horário, diminuiremos os valores até 0 (tensão de 0V na porta analógica A0 do Arduino).
3. Girando o eixo do potenciômetro no sentido anti-horário, aumentaremos os valores até 1023 (tensão de 5V na porta analógica A0 do Arduino).
4. Ao clicarmos o botão, os valores exibidos display serão os valores reais de tensão entre de 0 e 5V.
5. Clicando novamente o botão, os valores serão exibidos entre 0 e 1023.
Desafios
Com base neste projeto, resolva o seguinte desafio: Desafio 50
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários