Pular para o conteúdo principal

Grove - Display de 4 Dígitos

pir

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.

pir

Versão

Versão do ProdutoAlteraçõesData de Lançamento
Grove - 4-Digit Display V1.0InicialMaio 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
dica

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

ArduinoRaspberry Pi

pir

pir

cuidado

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

nota

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.2Base ShieldGrove-4-Digit Display

pir

pir

pir

Adquira agoraAdquira agoraAdquira 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.

pir

nota

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.

SeeeduinoGrove-4-Digit Display
5VVermelho
GNDPreto
D3Branco (DIO)
D2Amarelo(CLK)
atenção

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

pir

  • 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.

nota

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.

pir

Carregue o programa para o seu Arduino/Seeeduino.

success

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 piGrove Base Hat para RasPiGrove - 4 Digit Display

pir

pir

pir

Adquira agoraAdquira agoraAdquira 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.

pir

nota

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()

success

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 piGrovePi_PlusGrove-4-Digit Display

pir

pir

pir

Adquira agoraAdquira agoraAdquira 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.

pir

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.

pir

/*
* 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

pir

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.

Loading Comments...