TM1638 Módulo c/ 8 LEDs 8 Botões e LCD p/ Arduino

: ARD03173
5,90 €
preço com IVA incluído

Um módulo muito fácil de utilizar e que apenas usa 3 pinos do Arduino! Disponibiliza 8 botões de pressão, 8 LEDs para sinalização diversa ou debug e ainda 8 displays 7 segmentos para apresentação de caracteres.

Se tivéssemos que ligar todos estes componentes ao mesmo tempo ao Arduino não teríamos pinos suficientes!

Com o driver TM1638 (datasheet) permite através de comunicação obter o estado dos botões e accionar os LEDs e displays.

Com um custo reduzido, temos várias funcionalidades adicionadas ao nosso Arduino, muito uteis no desenvolvimento de projectos.

Quantidade

Se tiver alguma dúvida neste produto não hesite em contactar-nos.

*Atenção: as imagens são meramente ilustrativas.

Um módulo muito fácil de utilizar e que pode ser adaptado aos mais variados projetos é o Módulo Display 7 Segmentos 8 dígitos TM1638, apresentado em abaixo. Além do display tem 8 botões de uso geral e fácil ligação ao Arduino.

TM1638

Na imagem podemos ver os detalhes do módulo que, além do display de 7 segmentos e 8 dígitos, tem ainda 8 botões tipo push-button de uso geral e 8 leds na parte superior. Esses componentes podem ser accionados individualmente, possibilitando a criação de painéis de controlo ou a utilização da placa para fins educativos.

TM1638

A comunicação com o microcontrolador utiliza apenas 3 pinos (STB, CLK e DO) e a alimentação da placa é feita com tensões entre 3.3 e 5 VDC. O controlador é o TM1638 (datasheet) e a placa possui 4 furos para fixação.

Ligação do módulo TM1638 ao Arduino

A ligação da TM1638 ao Arduino Uno utiliza a seguinte configuração de pinos:

  • STB ligado ao pino 4 do Arduino
  • CLK ligado ao pino 7 do Arduino
  • DO ligado ao pino 8 do Arduino

Connection

 

Esquema interno

 

Programando o módulo TM1638

O programa a seguir utiliza a biblioteca TM1638Lite, que pode ser instalada a partir da própria IDE do Arduino. Aceda ao menu Rascunho -> Incluir Biblioteca -> Gerir Bibliotecas e procurar por tm1638, clicar em Instalar, como apresentado na imagem abaixo:

Library

O primeiro programa mostra a utilização de caracteres no display e também os botões do módulo, que acionam os leds da parte superior:

//Programa: Modulo TM1638 com Arduino
//Autor: Arduino e Cia
 
#include
 
//Conexao dos pinos STB, CLK e DO
TM1638lite tm(4, 7, 8);
 
void setup()
{
Serial.begin(9600);
tm.reset();
 
//Mensagem inicial
tm.displayText("Arduino");
delay(3000);
tm.displayText("BOTOES");
}
 
void loop()
{
//Verifica se algum botao foi pressionado
uint8_t buttons = tm.readButtons();
//Acende o led correspondente
doLEDs(buttons);
}
 
void doLEDs(uint8_t value)
{
for (uint8_t position = 0; position < 8; position++)
{
tm.setLED(position, value & 1);
value = value >> 1;
}
}'

O comando tm.displayText() mostrar uma mensagem no display (linhas 15 e 17 do programa). Note que nem todos os caracteres podem ser mostrados, devido às limitações do display de 7 segmentos.

Também é possível utilizar o comando tm.displayASCII() para mostrar um caracter em um display específico. O comando tm.displayASCII(3, ‘A’), por exemplo, mostra o caracter A no 4o. display (eles são numerados de 0 a 7). O comando tm.setLED() é utilizado para accionar os leds da placa.

Neste outro exemplo, é mostrado um contador no display que é atualizado a cada 1 segundo:

//Programa: Contador com Modulo TM1638
//Autor: Arduino e Cia
 
#include
 
//Conexao dos pinos STB, CLK e DO
TM1638lite tm(4, 7, 8);
 
int contador = 0;
int digito7, digito6, digito5, digito4;
 
void setup()
{
Serial.begin(9600);
tm.reset();
 
//Mensagem inicial
tm.displayText("Contador..");
delay(2000);
tm.reset();
}
 
void loop()
{
//Separa o numero do contador em digitos
digito7 = (contador % 10);
digito6 = ((contador / 10) % 10);
digito5 = ((contador / 100) % 10);
digito4 = ((contador / 1000) % 10);
 
//Mostra os digitos no display
tm.displayHex(7, digito7);
tm.displayHex(6, digito6);
tm.displayHex(5, digito5);
tm.displayHex(4, digito4);
 
//Incrementa o contador
contador++;
 
//Aguarda 1 segundo
delay(1000);
}

Neste programa temos o comando tm.displayHex(), que mostra um número no display desejado. O comando tm.displayHex(7, 2), por exemplo, mostra o número 2 no dígito 7 (o último) do display.

 

Documentos:

ARD03173

Produtos Associados