Magos do Arduino

Display de Sete Segmentos com TM1637

Aprenda a utilizar um display de Sete Segmentos com TM1637 no Arduino

Magos do Arduino

Display de Sete Segmentos com TM1637

O CI TM1637 serve para controlar displays de Sete Segmentos de 4 dígitos.

Display de Sete Segmentos com TM1637

Conectar 4 displays de sete segmentos no Arduino consumiria muitos pinos, portanto o uso do TM1637é essencial.

Com o TM1637, controlamos 4 dígitos com somente dois pinos.

A comunicação entre o Arduino e o TM1637 é realizada via protocolo serial.

Para facilitar a implementação, é essencial utilizar uma biblioteca externa que já implementa esta comunicação.

Display de Sete Segmentos com TM1637

Neste projeto você criará um circuito que faz o uso um display de Sete Segmentos com TM1637 no Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x breadboard
  • 1x Arduino UNO
  • 1x Display de Sete Segmentos de 4 dígitos TM1637
  • Jumpers

Para instalar a biblioteca do TM1637, no Arduino IDE acesse o gerenciador de bibliotecas, busque por TM1637, e clique em instalar/install na opção TM1637 by Avishay Orpaz.

Circuito Display de Sete Segmentos com TM1637

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Display de Sete Segmentos com TM1637

Schematics Display de Sete Segmentos com TM1637

A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.

Schematics Display de Sete Segmentos com TM1637

Código fonte para o circuito do display de Sete Segmentos com TM1637

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
* Código do curso Magos do Arduino para utilizar um display de sete segmentos
* de 4 dígitos controlado pelo TM1637 que exibe a hora e minutos.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/

#include <Arduino.h>
#include <TM1637Display.h>

#define PINO_CLK 2
#define PINO_DIO 3

TM1637Display display(PINO_CLK, PINO_DIO);

void setup() {
    // valores entre 0 e 7 para menos e mais brilho
    display.setBrightness(3);
}

// defina a hora e minuto inicial
int horas = 9;
int minutos = 56;
int segundos = 0;
void loop() {
    if (segundos == 60) {
    segundos = 0;
    minutos++;
    }

    if (minutos == 60) {
    minutos = 0;
    horas++;
    }

    if (horas == 24) {
    horas = 0;
    }

    char horasBuffer[4];
    sprintf(horasBuffer, "%02d%02d", horas, minutos);

    display.showNumberDecEx(atoi(horasBuffer), SEG_G, false, 4, 0);
    delay(1000);
    segundos++;

    display.showNumberDecEx(atoi(horasBuffer), 0, false, 4, 0);
    delay(1000);
    segundos++;
}