A diversidade dos projetos Arduino possíveis de se realizar é extremamente grande, a única coisa que precisamos ter em mente é a criatividade para desenvolver. Com os equipamentos certos podemos realizar todo o tipo de projeto, em especial nesse momento um Cronômetro Arduino com Display 7 Segmentos.
Ele é um exemplo simples e de fácil desenvolvimento que demonstra extrema funcionalidade, apresentando 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:
Módulo 7 Segmentos 4 Dígitos
Desenvolvido através de um chip TM1637, 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
– 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 do Cronômetro Arduino com Display 7 Segmentos TM1637 é 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 arduino 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 Usinainfo, segue o código completo para funcionamento do nosso cronômetro arduino:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// 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.
1 2 3 4 5 6 |
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 em um Projeto de Cronômetro Arduino.
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.
gostei muito…..do programa
Não entendi como funciona a incrementação do cronometro nesta programação…
Olá Milla, tudo bem?
Além dos caracteres impressos ocasionalmente no início do projeto, os demais comandos como contagem e função cronômetro são desenvolvidos utilizando-se como base a biblioteca incluída no código.
Bom dia
Vi no datasheet do CI que ele permite controle de até 06 digitos.
Vc saberia dizer se essa biblioteca prevê a inclusão de mais 2 dígitos ?
obrigado.
Olá Danilo! Esta biblioteca é exclusiva deste módulo, desta forma, é compatível apenas com os 4 dígitos incorporados no mesmo.