Grove - Display de 4 Dígitos
O módulo Grove - 4-Digit Display é um módulo de 12 pinos. Neste módulo, utilizamos um TM1637 para reduzir o número de pinos de controle para 2. Ou seja, ele controla tanto o conteúdo quanto a luminância usando apenas 2 pinos digitais do Arduino ou Seeeduino. Para projetos que exigem um display alfanumérico, esta pode ser uma boa escolha.
Versão
| Versão do Produto | Alterações | Data de Lançamento |
|---|---|---|
| Grove - 4-Digit Display V1.0 | Inicial | Maio de 2012 |
Recursos
- Display alfanumérico vermelho de 4 dígitos
- Interface compatível com Grove (3,3V/5V)
- 8 níveis de luminância ajustáveis
Para mais detalhes sobre os módulos Grove, consulte o Grove System
Especificações
Item | Mín | Típico | Máx | Unidade |
|---|---|---|---|---|
Tensão | 3.3 | 5.0 | 5.5 | VCC |
Corrente | 0.2 | 27 | 80 | mA |
Dimensões | 42x24x14 | mm | ||
Peso Líquido | 7±1 | g | ||
Ideias de Aplicação
- Exibição de hora
- Cronômetro
- Exibição de entrada de sensores
Plataformas Suportadas
| Arduino | Raspberry Pi |
|---|---|
|
|
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade teórica ou de software do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever suas próprias bibliotecas de software.
Primeiros Passos
Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que consulte Getting Started with Arduino antes de começar.
Brincar com Arduino
Hardware
- Passo 1. Prepare os seguintes itens:
| Seeeduino V4.2 | Base Shield | Grove-4-Digit Display |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove-4-Digit Display à porta D2 do Grove-Base Shield.
- Passo 3. Conecte o Grove - Base Shield ao Seeeduino.
- Passo 4. Conecte o Seeeduino ao PC através de um cabo USB.

Se não tivermos o Grove Base Shield, também podemos conectar o Grove-4-Digit Display diretamente ao Seeeduino como abaixo. Também podemos conectar o Grove-4-Digit Display a outra porta digital Grove.
| Seeeduino | Grove-4-Digit Display |
|---|---|
| 5V | Vermelho |
| GND | Preto |
| D3 | Branco (DIO) |
| D2 | Amarelo(CLK) |
O Grove-4-Digit Display inclui 4 pinos: GND, VCC, DIO, CLK. Podemos conectar DIO e CLK a qualquer pino digital. Ele não utiliza protocolo I2C.
Software
- Passo 1. Baixe a Grove-4-Digit Display Library e a TimerOne Library.
- Passo 2. Consulte How to install library para instalar a biblioteca para Arduino.
- Passo 3. Siga as instruções abaixo para selecionar o código na Arduino IDE e fazer o upload. Se você não souber como fazer o upload do código, verifique how to upload code. Há 3 exemplos conforme abaixo.
- Exibição de Relógio
- Fluxo de Números
- Cronômetro

- Passo 4. Veremos o Grove-4-Digit Display sendo ligado.
Brincar com Codecraft
Hardware
Passo 1. Conecte o Grove - 4-Digit Display à porta D2 em um Base Shield
Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.
Passo 3. Conecte o Seeeduino/Arduino ao seu PC por meio de um cabo USB.
Software
Passo 1. Abra o Codecraft, adicione o suporte a Arduino e arraste um procedimento principal para a área de trabalho.
Se esta é a sua primeira vez usando o Codecraft, consulte também o Guide for Codecraft using Arduino.
Passo 2. Arraste os blocos como na figura abaixo ou abra o arquivo cdc que pode ser baixado no final desta página.

Carregue o programa para o seu Arduino/Seeeduino.
Quando o código terminar de ser enviado, você verá números fluindo de 0 a 9.
Brincar com Raspberry Pi (Com Grove Base Hat para Raspberry Pi)
Hardware
- Passo 1. Itens usados neste projeto:
| Raspberry pi | Grove Base Hat para RasPi | Grove - 4 Digit Display |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove Base Hat ao Raspberry Pi.
- Passo 3. Conecte o display de 4 dígitos à porta 12 do Base Hat.
- Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

No passo 3 você pode conectar o dígito a qualquer porta GPIO, mas certifique-se de alterar o comando com o número de porta correspondente.
Software
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
python grove_4_digit_display.py 12 13
A seguir está o código grove_4_digit_display.py.
import sys
import time
from grove.gpio import GPIO
charmap = {
'0': 0x3f,
'1': 0x06,
'2': 0x5b,
'3': 0x4f,
'4': 0x66,
'5': 0x6d,
'6': 0x7d,
'7': 0x07,
'8': 0x7f,
'9': 0x6f,
'A': 0x77,
'B': 0x7f,
'b': 0x7C,
'C': 0x39,
'c': 0x58,
'D': 0x3f,
'd': 0x5E,
'E': 0x79,
'F': 0x71,
'G': 0x7d,
'H': 0x76,
'h': 0x74,
'I': 0x06,
'J': 0x1f,
'K': 0x76,
'L': 0x38,
'l': 0x06,
'n': 0x54,
'O': 0x3f,
'o': 0x5c,
'P': 0x73,
'r': 0x50,
'S': 0x6d,
'U': 0x3e,
'V': 0x3e,
'Y': 0x66,
'Z': 0x5b,
'-': 0x40,
'_': 0x08,
' ': 0x00
}
ADDR_AUTO = 0x40
ADDR_FIXED = 0x44
STARTADDR = 0xC0
BRIGHT_DARKEST = 0
BRIGHT_DEFAULT = 2
BRIGHT_HIGHEST = 7
class Grove4DigitDisplay(object):
colon_index = 1
def __init__(self, clk, dio, brightness=BRIGHT_DEFAULT):
self.brightness = brightness
self.clk = GPIO(clk, direction=GPIO.OUT)
self.dio = GPIO(dio, direction=GPIO.OUT)
self.data = [0] * 4
self.show_colon = False
def clear(self):
self.show_colon = False
self.data = [0] * 4
self._show()
def show(self, data):
if type(data) is str:
for i, c in enumerate(data):
if c in charmap:
self.data[i] = charmap[c]
else:
self.data[i] = 0
if i == self.colon_index and self.show_colon:
self.data[i] |= 0x80
if i == 3:
break
elif type(data) is int:
self.data = [0, 0, 0, charmap['0']]
if data < 0:
negative = True
data = -data
else:
negative = False
index = 3
while data != 0:
self.data[index] = charmap[str(data % 10)]
index -= 1
if index < 0:
break
data = int(data / 10)
if negative:
if index >= 0:
self.data[index] = charmap['-']
else:
self.data = charmap['_'] + [charmap['9']] * 3
else:
raise ValueError('Not support {}'.format(type(data)))
self._show()
def _show(self):
with self:
self._transfer(ADDR_AUTO)
with self:
self._transfer(STARTADDR)
for i in range(4):
self._transfer(self.data[i])
with self:
self._transfer(0x88 + self.brightness)
def update(self, index, value):
if index < 0 or index > 4:
return
if value in charmap:
self.data[index] = charmap[value]
else:
self.data[index] = 0
if index == self.colon_index and self.show_colon:
self.data[index] |= 0x80
with self:
self._transfer(ADDR_FIXED)
with self:
self._transfer(STARTADDR | index)
self._transfer(self.data[index])
with self:
self._transfer(0x88 + self.brightness)
def set_brightness(self, brightness):
if brightness > 7:
brightness = 7
self.brightness = brightness
self._show()
def set_colon(self, enable):
self.show_colon = enable
if self.show_colon:
self.data[self.colon_index] |= 0x80
else:
self.data[self.colon_index] &= 0x7F
self._show()
def _transfer(self, data):
for _ in range(8):
self.clk.write(0)
if data & 0x01:
self.dio.write(1)
else:
self.dio.write(0)
data >>= 1
time.sleep(0.000001)
self.clk.write(1)
time.sleep(0.000001)
self.clk.write(0)
self.dio.write(1)
self.clk.write(1)
self.dio.dir(GPIO.IN)
while self.dio.read():
time.sleep(0.001)
if self.dio.read():
self.dio.dir(GPIO.OUT)
self.dio.write(0)
self.dio.dir(GPIO.IN)
self.dio.dir(GPIO.OUT)
def _start(self):
self.clk.write(1)
self.dio.write(1)
self.dio.write(0)
self.clk.write(0)
def _stop(self):
self.clk.write(0)
self.dio.write(0)
self.clk.write(1)
self.dio.write(1)
def __enter__(self):
self._start()
def __exit__(self, exc_type, exc_val, exc_tb):
self._stop()
Grove = Grove4DigitDisplay
def main():
if len(sys.argv) < 3:
print('Usage: {} clk dio'.format(sys.argv[0]))
sys.exit(1)
display = Grove4DigitDisplay(int(sys.argv[1]), int(sys.argv[2]))
count = 0
while True:
t = time.strftime("%H%M", time.localtime(time.time()))
display.show(t)
display.set_colon(count & 1)
count += 1
time.sleep(1)
if __name__ == '__main__':
main()
Se tudo correr bem, o display de 4 dígitos mostrará a hora atual.
Você pode sair deste programa simplesmente pressionando ++ctrl+c++.
Brinque com Raspberry Pi (com GrovePi_Plus)
Hardware
- Passo 1. Prepare os itens abaixo:
| Raspberry pi | GrovePi_Plus | Grove-4-Digit Display |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o GrovePi_Plus ao Raspberry.
- Passo 3. Conecte o Grove-4-Digit Display à porta D5 do GrovePi_Plus.
- Passo 4. Conecte o Raspberry ao PC através de um cabo USB.

Software
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Dê um git clone no repositório do Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- Passo 3. Execute os comandos abaixo para monitorar o nível de ruído.
cd ~/GrovePi/Software/Python
python grove_4_digit_display.py
Aqui está o código grove_4_digit_display.py.
# NOTE: 4x red 7 segment display with colon and 8 luminance levels, but no decimal points
import time
import grovepi
# Connect the Grove 4 Digit Display to digital port D5
# CLK,DIO,VCC,GND
display = 5
grovepi.pinMode(display,"OUTPUT")
# If you have an analog sensor connect it to A0 so you can monitor it below
sensor = 0
grovepi.pinMode(sensor,"INPUT")
time.sleep(.5)
# 4 Digit Display methods
# grovepi.fourDigit_init(pin)
# grovepi.fourDigit_number(pin,value,leading_zero)
# grovepi.fourDigit_brightness(pin,brightness)
# grovepi.fourDigit_digit(pin,segment,value)
# grovepi.fourDigit_segment(pin,segment,leds)
# grovepi.fourDigit_score(pin,left,right)
# grovepi.fourDigit_monitor(pin,analog,duration)
# grovepi.fourDigit_on(pin)
# grovepi.fourDigit_off(pin)
while True:
try:
print ("Test 1) Initialise")
grovepi.fourDigit_init(display)
time.sleep(.5)
print ("Test 2) Set brightness")
for i in range(0,8):
grovepi.fourDigit_brightness(display,i)
time.sleep(.2)
time.sleep(.3)
# set to lowest brightness level
grovepi.fourDigit_brightness(display,0)
time.sleep(.5)
print ("Test 3) Set number without leading zeros")
leading_zero = 0
grovepi.fourDigit_number(display,1,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,12,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,123,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,1234,leading_zero)
time.sleep(.5)
print ("Test 4) Set number with leading zeros")
leading_zero = 1
grovepi.fourDigit_number(display,5,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,56,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,567,leading_zero)
time.sleep(.5)
grovepi.fourDigit_number(display,5678,leading_zero)
time.sleep(.5)
print ("Test 5) Set individual digit")
grovepi.fourDigit_digit(display,0,2)
grovepi.fourDigit_digit(display,1,6)
grovepi.fourDigit_digit(display,2,9)
grovepi.fourDigit_digit(display,3,15) # 15 = F
time.sleep(.5)
print ("Test 6) Set individual segment")
grovepi.fourDigit_segment(display,0,118) # 118 = H
grovepi.fourDigit_segment(display,1,121) # 121 = E
grovepi.fourDigit_segment(display,2,118) # 118 = H
grovepi.fourDigit_segment(display,3,121) # 121 = E
time.sleep(.5)
grovepi.fourDigit_segment(display,0,57) # 57 = C
grovepi.fourDigit_segment(display,1,63) # 63 = O
grovepi.fourDigit_segment(display,2,63) # 63 = O
grovepi.fourDigit_segment(display,3,56) # 56 = L
time.sleep(.5)
print ("Test 7) Set score")
grovepi.fourDigit_score(display,0,0)
time.sleep(.2)
grovepi.fourDigit_score(display,1,0)
time.sleep(.2)
grovepi.fourDigit_score(display,1,1)
time.sleep(.2)
grovepi.fourDigit_score(display,1,2)
time.sleep(.2)
grovepi.fourDigit_score(display,1,3)
time.sleep(.2)
grovepi.fourDigit_score(display,1,4)
time.sleep(.2)
grovepi.fourDigit_score(display,1,5)
time.sleep(.5)
print ("Test 8) Set time")
grovepi.fourDigit_score(display,12,59)
time.sleep(.5)
print ("Test 9) Monitor analog pin")
seconds = 10
grovepi.fourDigit_monitor(display,sensor,seconds)
time.sleep(.5)
print ("Test 10) Switch all on")
grovepi.fourDigit_on(display)
time.sleep(.5)
print ("Test 11) Switch all off")
grovepi.fourDigit_off(display)
time.sleep(.5)
except KeyboardInterrupt:
grovepi.fourDigit_off(display)
break
except IOError:
print ("Error")
- Etapa 4. Veremos o Grove-4-Digit Display como abaixo.
pi@raspberrypi:~/GrovePi/Software/Python $ python grove_4_digit_display.py
Test 1) Initialise
Test 2) Set brightness
Test 3) Set number without leading zeros
Test 4) Set number with leading zeros
Test 5) Set individual digit
Test 6) Set individual segment
Test 7) Set score
Test 8) Set time
Test 9) Monitor analog pin
Test 10) Switch all on
Test 11) Switch all off
Brincando com o TI LaunchPad
Exibindo os Números (4-Digital-Display)
Este exemplo demonstra como exibir alguns números digitais usando um Grove-4-Digital Display.

/*
* TM1637.cpp
* A library for the 4 digit display
*/
#include "TM1637.h"
#define CLK 39 //pins definitions for TM1637 and can be changed to other ports
#define DIO 38
TM1637 tm1637(CLK,DIO);
void setup()
{
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
int8_t NumTab[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~9,A,b,C,d,E,F
int8_t ListDisp[4];
unsigned char i = 0;
unsigned char count = 0;
delay(150);
while(1)
{
i = count;
count ++;
if(count == sizeof(NumTab)) count = 0;
for(unsigned char BitSelect = 0;BitSelect < 4;BitSelect ++)
{
ListDisp[BitSelect] = NumTab[i];
i ++;
if(i == sizeof(NumTab)) i = 0;
}
tm1637.display(0,ListDisp[0]);
tm1637.display(1,ListDisp[1]);
tm1637.display(2,ListDisp[2]);
tm1637.display(3,ListDisp[3]);
delay(300);
}
}
Visualizador de Esquemático Online
Recursos
- [Eagle&PDF] Grove-4-Digit Display V1.0 Esquemático
- [Library] Biblioteca 4-Digit Display
- [Library] Biblioteca TimerOne
- [Library] Biblioteca Four-Digit Display Suli
- [Library] Código CodeCraft
- [Datasheet] Folha de dados TM1637
- [More Reading] A Pistola de Laser de Madeira

Inspirados por OVERWATCH, fizemos um brinquedo muito legal de Pistola de Laser de Madeira para nos divertirmos nesses dias!
A Pistola de Laser de Madeira e o Alvo da Arma são todos baseados em uma placa Arduino chamada Seeeduino Lotus. O emissor de laser da Pistola de Laser é controlado para disparar pulsos de laser para "ativar" o Alvo da Arma. E há 3 sensores de luz no Alvo da Arma para detectar o pulso de laser. Parece bem simples, certo? Se você estiver interessado em nosso projeto, faça um para você ou para seu filho! Vale a pena gastar um dia fazendo isso como um presente de Natal.
Projetos
Relógio Despertador MSP430 com Módulos Grove: Crie seu próprio despertador usando o MSP430F5529 LaunchPad e os módulos Grove da SeeedStudio.
Relógio - Grove 4-digit Display usando Photon: Seu primeiro relógio com 4 componentes, baseado em Grove e TM1637
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos diversos canais de comunicação para atender a diferentes preferências e necessidades.








