Como Fazer um Cronômetro com Arduino e Módulo Display 7 Segmentos com TM1637

A diversidade dos projetos possíveis de se realizar com Arduino é extremamente grande, a única coisa que precisamos ter em mente é a criatividade para se criar, com os...

A diversidade dos projetos possíveis de se realizar com Arduino é extremamente grande, a única coisa que precisamos ter em mente é a criatividade para se criar, com os equipamentos certos podemos realizar todo o tipo de projeto, desde um robô seguidor de linha ou um robô autônomo que desvia de obstáculos até uma campainha ou fazer piscar um LED.

Neste contexto, desenvolvemos um cronômetro utilizando o Módulo Display 7 Segmentos de 4 Dígitos, um exemplo simples e de fácil desenvolvimento que demonstra extrema funcionalidade, demonstrando a possibilidade de impressão de caracteres alfanuméricos.

Vale ressaltar que estamos tratando de um display de 7 segmentos, ou seja, o referente produto possui uma delimitação estabelecida através dos limites de suas especificações, segue abaixo um exemplo dos algarismos alfanuméricos de representação possível através dos displays 7 segmentos:

Desenvolvido através de um chip TM1637, o Módulo Display 7 Segmentos 4 Dígitos possui a capacidade de controlar todos os 28 segmentos através dos únicos dois pinos de comunicação disponibilizados junto à placa, sendo indispensável a utilização dos outros dois pinos de alimentação.

O Módulo 7 Segmentos 4 Dígitos se destaca pela sua facilidade de conexão excluindo a necessidade de conexão de todos os pinos encontrados em um Display 7 Segmentos tradicional disponível para venda, diminuindo o número de pinos e aumentando a capacidade para funcionamento.

Na parte traseira do equipamento podemos encontrar as informações referentes à pinagem do módulo e consequentemente a informação necessária para a conexão do mesmo junto ao Arduino, veja por outro ponto de vista as descrições dos pinos:

Uma informação que dificilmente encontramos nos textos disponíveis na rede refere-se aos comandos e a conexão dos dois pontos que trabalham como um divisor de constantes, para quem deseja desenvolver o seu código ou biblioteca vale ressaltar que eles estão ligados ao segmento do ponto decimal do segundo dígito.

Mas vamos ao que realmente interessa, vamos desenvolver nos seguintes passos todas as características necessárias para o desenvolvimento do nosso cronômetro Arduino, porém vale ressaltar a característica mais importante neste projeto, o cronômetro está diretamente ligado ao tempo de funcionamento do Arduino.

 

EQUIPAMENTOS UTILIZADOS NO TESTE:

– Arduino Uno R3 + Cabo USB;

– Módulo Display 7 Segmentos 4 Dígitos Vermelho;

– Jumper Premium para Protoboard Macho-Macho.

 

APLICAÇÃO E FUNCIONAMENTO

Através deste equipamento podemos exibir tempo (relógio e cronômetro), valor numérico, sendo possível expressar qualquer valor de 0 a 9 por segmento e alguns textos simples como abreviaturas e demais caracteres suportados pelo Display de 7 segmentos supramencionado.

A utilização do TM1637 junto ao módulo, por exemplo, nos possibilita excluir a necessidade de 12 conexões para cada display de 7 Segmentos, ou seja, para os 4 Displays seria necessário um total de 48 pinos, mas com o nosso Módulo utilizamos apenas quatro.

– Esquema de Ligação (Hardware)

O esquema de ligação deste equipamento é extremamente simples, basta seguir as conexões demonstradas junto ao esquema de ligação disponível abaixo, onde:

CLK – Conectado junto ao pino digital 2;

DIO – Conectado junto ao pino digital 3;

VCC – Conectado junto aos 5V do Arduino;

GND – Conectado junto ao Pino GND do Arduino;

Segue imagem ilustrativa com o esquema de ligação do Módulo 7 Segmentos 4 Dígitos junto ao Arduino:

O Módulo 7 Segmentos é um produto que já vem com a barra de pinos soldada e está pronto para uso, basta conectar os jumpers em seu Arduino, carregar o código e aproveitar as suas funcionalidades.

Para zerar o cronômetro, por sua vez, utiliza-se o botão RESET do próprio Arduino, isto ocorre, pois o sistema de contagem do nosso projeto se baseia no tempo de funcionamento do Arduino, ligado diretamente com o sistema de contagem padrão do mesmo que determina, por exemplo, o delay em nossos projetos.

– Código de Funcionamento (Software)

Este projeto por mais complexo que pareça, utilizando-se da biblioteca correta pode demonstrar-se de extrema facilidade de compreensão e elaboração, possuindo algumas variáveis para livre edição e um exemplo alfa numérico em comemoração aos 12 anos da Usinaindo, segue o código completo para funcionamento do nosso cronômetro:

// Projeto Cronômetro com Arduino e Display TM1637
// Visite nosso site e confira nossa diversidade de produtos
// Link da Loja: www.usinainfo.com.br

#include "TM1637Display.h" // Inclui a biblioteca TM1637Display

#define CLK 2 // Define pino 2 como CLK
#define DIO 3 // Define pino 3 como DIO

// Para configurações personalizadas junto ao display de 7 segmentos
// utiliza-se o seguinte esquema, no qual cada letra representa um segmento:

//      -         A
//    |   |     F   B
//      -         G
//    |   |     E   C
//      -         D

// Segue abaixo exemplo de nomeação para o anagrama US12,
// em comemoração aos 12 anos da usinainfo, veja:

const uint8_t US12[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,          // U
  SEG_A | SEG_F | SEG_G | SEG_C | SEG_D,          // S
  SEG_B | SEG_C,                                  // 1
  SEG_A | SEG_B | SEG_G | SEG_E | SEG_D,          // 2
};


// Cria uma variável de exibição na biblioteca TM1637
TM1637Display display(CLK, DIO);

void setup() {

// Ajusta a iluminação no tempo x em milisegundos
display.setBrightness(10);
// Imprime o anagrama US12 na tela do display
display.setSegments(US12);
delay(1000);
}

void loop() {

// Cria Variável para armazenar caractere
uint8_t position[] = { 0, 0, 0, 0 };

// Armazena em segundos o tempo ligado do Arduino
long cas = millis() / 1000;

// Calculo individual para posição no display
position[0] = display.encodeDigit((cas / 60) / 10); // Dezena de minuto
position[1] = display.encodeDigit((cas / 60) % 10); // Unidade de minuto
position[2] = display.encodeDigit((cas % 60) / 10); // Dezena de segundo
position[3] = display.encodeDigit((cas % 60) % 10); // Unidade de segundo

//Organiza as informações do display
display.setSegments(position);
delay(500);

// Variável para inclusão do sinal ":" entre min e seg
position[1] = position[1] + 128;
display.setSegments(position);
delay(500);
}

O código está todo comentado com a maioria das informações necessárias para a compreensão e possível alteração do mesmo de acordo com a necessidade de cada projeto, podendo alterar os caracteres exibidos junto ao anagrama inicial, cuidando sempre qual segmento corresponde a qual letra.

const uint8_t US12[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,          // U
  SEG_A | SEG_F | SEG_G | SEG_C | SEG_D,          // S
  SEG_B | SEG_C,                                  // 1
  SEG_A | SEG_B | SEG_G | SEG_E | SEG_D,          // 2
};

Vale lembrar que neste exemplo demonstrado colocamos em evidência somente os segmentos que queremos que permaneçam visíveis, excluindo a utilização dos demais neste procedimento. Cada linha dentro da variável const uint8_t US12[] representa um dígito do módulo respeitando a sequencia do primeiro ao último.

Para o desenvolvimento do referente projeto é de suma importância a utilização da biblioteca TM1637Display, responsável por conter as atribuições necessárias para a execução de alguns itens disponíveis em nosso código, torna-se um parâmetro para muitas das funções.

Biblioteca TM1637Display: DOWNLOAD AQUI.

 

CONCLUSÃO

Que o Módulo 4 Dígitos é extremamente funcional quando pensamos em compactação de pinos e variáveis é um fato, e quando pararmos para pensar na quantia de coisas possíveis para desenvolver com este pequeno módulo vimos o quanto o mesmo pode demonstrar-se útil.

Pode ser utilizado em projetos com RTC para exibir o horário real, para exibir textos corridos, para trabalhar como um display de contagem e demais funções á depender do projeto o qual deseja-se desenvolver.

Este projeto utiliza como base o tempo de funcionamento do Arduino, podendo ser zerado através do botão RESET do mesmo, por exemplo, como também é possível a inclusão de um botão externo para a execução da referente função.

Diversas são as possibilidades de adaptação e melhoria tomando como base o referente projeto, basta desenvolver as funções necessárias e estabelecer os parâmetros que serão utilizados para logo após por em prática o seu projeto como desejar, sendo facilmente instalado nos mais diversos ambientes devido à sua furação.

Mas agora é com você, explore sua capacidade, construa um relógio despertador, por exemplo, mas não esqueça de compartilhar as suas experiências com a gente através dos comentários.

Categorias
ArduinoProjetos
Sem Comentários

Enviar Resposta

*

*

Sobre nós

Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

Sugestões

Artigos Relacionados