Grove - Barra de LED

Grove – LED Bar é composta por um medidor de LED de 10 segmentos e um chip controlador de LED MY9221. Ela pode ser usada como um indicador para carga de bateria restante, tensão, nível de água, volume de música ou outros valores que exijam uma exibição em gradiente. Há 10 barras de LED no gráfico de barras de LED: uma vermelha, uma amarela, uma verde-clara e sete barras verdes. O código de demonstração está disponível para que você comece rapidamente. Ele acende os LEDs sequencialmente do vermelho ao verde, de modo que, no final, todo o gráfico de barras esteja aceso. Quer ir além? Vá em frente e programe seu próprio efeito.

Versão

| Versão do Produto | Alterações | Data de Lançamento |
|---|---|---|
| Grove – LED Bar V1 | Inicial | Junho de 2014 |
| Grove – LED Bar V2 | Melhorada a fonte de alimentação | Out. 2015 |
Recursos
- Tensão de entrada: 3,3V/5V
- Cada segmento de LED pode ser controlado individualmente via código
- Exibição intuitiva
- Opção de alimentação flexível, suporta 3-5,5 VCC
- Código de demonstração disponível
- Biblioteca compatível com Suli
Para mais detalhes sobre módulos Grove, consulte o Grove System
Especificação
| Parâmetro | Valor/Faixa |
|---|---|
| Tensão de operação | 3,3/5V |
| Temperatura de operação | -20℃ a +80℃ |
| Comprimento de onda de emissão de pico - VERMELHO (corrente 20mA) | 630-637nm |
| Comprimento de onda de emissão de pico - Verde-amarelo (corrente 20mA) | 570-573nm |
| Comprimento de onda de emissão de pico - AMARELO (corrente 20mA) | 585-592nm |
| Intensidade luminosa por segmento - VERMELHO (corrente 20mA) | 50-70mcd |
| Intensidade luminosa por segmento - Verde-amarelo (corrente 20mA) | 28-35mcd |
| Intensidade luminosa por segmento - AMARELO (corrente 20mA) | 45-60mcd |
| Segmento de LED | 10 |
| Tamanho | 40mm * 20mm |
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 sua própria biblioteca de software.
Primeiros Passos
Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.
Brincar com Arduino
Hardware
- Passo 1. Prepare os itens abaixo:
| Seeeduino V4.2 | Base Shield | Grove-LED Bar |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove-LED Bar à porta D8 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-LED Bar diretamente ao Seeeduino como abaixo.
| Seeeduino | Grove-LED Bar |
|---|---|
| 5V | Vermelho |
| GND | Preto |
| D9 | Branco |
| D8 | Amarelo |
Software
-
Passo 1. Baixe a Grove - LED Bar Library do Github
-
Passo 2. Consulte How to install library para instalar a biblioteca para Arduino.
-
Passo 3. Reinicie a IDE do Arduino. Abra o exemplo “Level” pelo caminho: File --> Examples --> Grove LED Bar --> Level.

- Passo 4. Carregue a demonstração. Se você não souber como carregar o código, verifique how to upload code.
O resultado deve ser como:

Brincar com Raspberry Pi
Hardware
- Passo 1. Prepare os itens abaixo:
| Raspberry pi | GrovePi_Plus | Grove-LED Bar |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
-
Passo 2. Conecte o GrovePi_Plus ao Raspberry.
-
Passo 3. Conecte o Grove-LED Bar à 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. Siga Updating the Firmware para atualizar o firmware mais recente do GrovePi.
Neste wiki usamos o caminho ~/GrovePi/ em vez de /home/pi/Desktop/GrovePi, você precisa garantir que o Passo 2 e o Passo 3 usem o mesmo caminho.
Recomendamos fortemente que você atualize o firmware, ou para alguns sensores você poderá obter erros.
Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você deve usar esta linha de comando apenas com Python3.
- Passo 3. Dê git clone no repositório do Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- Passo 4. Navegue até o diretório de demos:
cd yourpath/GrovePi/Software/Python/
Aqui está o código grove_ledbar.py.
import time
import grovepi
import random
# Connect the Grove LED Bar to digital port D5
# DI,DCKI,VCC,GND
ledbar = 5
grovepi.pinMode(ledbar,"OUTPUT")
time.sleep(1)
i = 0
# LED Bar methods
# grovepi.ledBar_init(pin,orientation)
# grovepi.ledBar_orientation(pin,orientation)
# grovepi.ledBar_setLevel(pin,level)
# grovepi.ledBar_setLed(pin,led,state)
# grovepi.ledBar_toggleLed(pin,led)
# grovepi.ledBar_setBits(pin,state)
# grovepi.ledBar_getBits(pin)
while True:
try:
print "Test 1) Initialise - red to green"
# ledbar_init(pin,orientation)
# orientation: (0 = red to green, 1 = green to red)
grovepi.ledBar_init(ledbar, 0)
time.sleep(.5)
print "Test 2) Set level"
# ledbar_setLevel(pin,level)
# level: (0-10)
for i in range(0,11):
grovepi.ledBar_setLevel(ledbar, i)
time.sleep(.2)
time.sleep(.3)
grovepi.ledBar_setLevel(ledbar, 8)
time.sleep(.5)
grovepi.ledBar_setLevel(ledbar, 2)
time.sleep(.5)
grovepi.ledBar_setLevel(ledbar, 5)
time.sleep(.5)
print "Test 3) Switch on/off a single LED"
# ledbar_setLed(pin,led,state)
# led: which led (1-10)
# state: off or on (0,1)
grovepi.ledBar_setLed(ledbar, 10, 1)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 9, 1)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 8, 1)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 1, 0)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 2, 0)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 3, 0)
time.sleep(.5)
print "Test 4) Toggle a single LED"
# flip a single led - if it is currently on, it will become off and vice versa
# ledbar_toggleLed(ledbar, led)
grovepi.ledBar_toggleLed(ledbar, 1)
time.sleep(.5)
grovepi.ledBar_toggleLed(ledbar, 2)
time.sleep(.5)
grovepi.ledBar_toggleLed(ledbar, 9)
time.sleep(.5)
grovepi.ledBar_toggleLed(ledbar, 10)
time.sleep(.5)
print "Test 5) Set state - control all leds with 10 bits"
# ledbar_setBits(ledbar, state)
# state: (0-1023) or (0x00-0x3FF) or (0b0000000000-0b1111111111) or (int('0000000000',2)-int('1111111111',2))
for i in range(0,32):
grovepi.ledBar_setBits(ledbar, i)
time.sleep(.2)
time.sleep(.3)
print "Test 6) Get current state"
# state = ledbar_getBits(ledbar)
# state: (0-1023) a bit for each of the 10 LEDs
state = grovepi.ledBar_getBits(ledbar)
print "with first 5 leds lit, the state should be 31 or 0x1F"
print state
# bitwise shift five bits to the left
state = state << 5
# the state should now be 992 or 0x3E0
# when saved the last 5 LEDs will be lit instead of the first 5 LEDs
time.sleep(.5)
print "Test 7) Set state - save the state we just modified"
# ledbar_setBits(ledbar, state)
# state: (0-1023) a bit for each of the 10 LEDs
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.5)
print "Test 8) Swap orientation - green to red - current state is preserved"
# ledbar_orientation(pin,orientation)
# orientation: (0 = red to green, 1 = green to red)
# when you reverse the led bar orientation, all methods know how to handle the new LED index
# green to red
grovepi.ledBar_orientation(ledbar, 1)
time.sleep(.5)
# red to green
grovepi.ledBar_orientation(ledbar, 0)
time.sleep(.5)
# green to red
grovepi.ledBar_orientation(ledbar, 1)
time.sleep(.5)
print "Test 9) Set level, again"
# ledbar_setLevel(pin,level)
# level: (0-10)
# note the red LED is now at index 10 instead of 1
for i in range(0,11):
grovepi.ledBar_setLevel(ledbar, i)
time.sleep(.2)
time.sleep(.3)
print "Test 10) Set a single LED, again"
# ledbar_setLed(pin,led,state)
# led: which led (1-10)
# state: off or on (0,1)
grovepi.ledBar_setLed(ledbar, 1, 0)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 3, 0)
time.sleep(.5)
grovepi.ledBar_setLed(ledbar, 5, 0)
time.sleep(.5)
print "Test 11) Toggle a single LED, again"
# ledbar_toggleLed(ledbar, led)
grovepi.ledBar_toggleLed(ledbar, 2)
time.sleep(.5)
grovepi.ledBar_toggleLed(ledbar, 4)
time.sleep(.5)
print "Test 12) Get state"
# state = ledbar_getBits(ledbar)
# state: (0-1023) a bit for each of the 10 LEDs
state = grovepi.ledBar_getBits(ledbar)
# the last 5 LEDs are lit, so the state should be 992 or 0x3E0
# bitwise shift five bits to the right
state = state >> 5
# the state should now be 31 or 0x1F
print "Test 13) Set state, again"
# ledbar_setBits(ledbar, state)
# state: (0-1023) a bit for each of the 10 LEDs
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.5)
print "Test 14) Step"
# step through all 10 LEDs
for i in range(0,11):
grovepi.ledBar_setLevel(ledbar, i)
time.sleep(.2)
time.sleep(.3)
print "Test 15) Bounce"
# switch on the first two LEDs
grovepi.ledBar_setLevel(ledbar, 2)
# get the current state (which is 0x3)
state = grovepi.ledBar_getBits(ledbar)
# bounce to the right
for i in range(0,9):
# bit shift left and update
state <<= 1;
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.2)
# bounce to the left
for i in range(0,9):
# bit shift right and update
state >>= 1;
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.2)
time.sleep(.3)
print "Test 16) Random"
for i in range(0,21):
state = random.randint(0,1023)
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.2)
time.sleep(.3)
print "Test 17) Invert"
# set every 2nd LED on - 341 or 0x155
state = 341
for i in range(0,5):
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.2)
# bitwise XOR all 10 LEDs on with the current state
state = 0x3FF ^ state
grovepi.ledBar_setBits(ledbar, state)
time.sleep(.2)
time.sleep(.3)
print "Test 18) Walk through all possible combinations"
for i in range(0,1024):
grovepi.ledBar_setBits(ledbar, i)
time.sleep(.1)
time.sleep(.4)
except KeyboardInterrupt:
grovepi.ledBar_setBits(ledbar, 0)
break
except IOError:
print "Error"
- Passo 5. Execute a demonstração.
sudo python3 grove_ledbar.py
Visualizador Online de Esquemático
Recursos
- [Eagle&PDF]Grove - LED Bar Eagle File
- [Biblioteca]Grove - LED Bar Library
- [Biblioteca]Suli-compatible Library
- [Folha de dados]MY9221 Datasheet
- [Mais leitura]Wooden Laser Gun
Projetos
Grove LED Bar v2.0: Calliope Mini é equipado com dois conectores Grove. Neste projeto, eu quero explorar como conversar com essas peças Grove da Seeed.
Grove LED Bar Controller with the Bean+: Aprenda o básico de como usar componentes Grove populares com o novo LightBlue Bean+ para começar a construir seus próprios projetos!
Suporte Técnico e 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 o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.






