Índice:

Módulo de display de LED múltiplo: 6 etapas (com imagens)
Módulo de display de LED múltiplo: 6 etapas (com imagens)

Vídeo: Módulo de display de LED múltiplo: 6 etapas (com imagens)

Vídeo: Módulo de display de LED múltiplo: 6 etapas (com imagens)
Vídeo: Como Programar um Painel de LEDs com Arduino 2024, Novembro
Anonim
Image
Image
Módulo de display LED múltiplo
Módulo de display LED múltiplo
Módulo de display LED múltiplo
Módulo de display LED múltiplo

Olá a todos, Gosto de trabalhar com display LED de 7 segmentos ou com matriz de pontos e já fiz diversos projetos com eles.

Todas as vezes eles são interessantes porque há algum tipo de mágica em como eles podem funcionar, porque o que você está vendo é uma ilusão de ótica!

Os monitores possuem muitos pinos para conexão com um Arduino (ou outro microcontrolador) e a melhor solução é aplicar as técnicas de multiplexação de dados para minimizar o uso de suas portas.

Ao fazer isso, cada segmento ou cada LED ficará ligado por alguns instantes (milissegundos ou menos), mas a repetição disso em tantas vezes por segundo cria a ilusão da imagem que você deseja mostrar.

Para mim o mais interessante é desenvolver a lógica, o programa para descobrir como eles podem mostrar as informações corretas de acordo com o seu projeto.

Em um único projeto, o uso de monitores exige muito tempo para montar todos os componentes em uma placa de ensaio com muitos fios para as conexões.

Eu sei que existem muitos monitores diferentes no mercado rodando com I2C, de maneiras simplificadas (ou não), para programá-los e eu os tenho usado também, mas eu prefiro trabalhar com componentes padrão como 74HC595 (multiplexador IC) e ULN2803 (drivers) porque eles fornecem a você mais controle em seu programa e também mais robustez e confiabilidade em sua utilização.

Para simplificar o processo de montagem, desenvolvi um módulo LED Dipslay para várias finalidades, usando componentes simples e comuns no mundo do Arduino.

Com este módulo você pode trabalhar com matriz de pontos com LEDs de duas cores em dois tamanhos padrão (maior e menor) e também controlar display de 7 Seg x 4 Dígitos que são muito comuns e fáceis de encontrar no mercado.

E você também pode trabalhar com esses módulos em cascata em uma forma serial (dados diferentes em monitores) ou em uma forma paralela (mesmos dados em monitores).

Então vamos ver como este módulo pode funcionar e te ajudar em seus desenvolvimentos!

Vídeo (Módulo de Display de LED)

Vídeo (teste de matriz de pontos)

Cumprimentos, LAGSILVA

Etapa 1: Componentes

Componentes
Componentes
Componentes
Componentes
Componentes
Componentes
Componentes
Componentes

PCB (placa de circuito impresso)

- 74HC595 (03 x)

- ULN2803 (02 x)

- Transistor PNP - BC327 (08 x)

- Resistor 150 Ohms (16 x)

- Resistor 470 Ohms (08 x)

- Capacitor 100 nF (03 x)

- Soquete IC 16 pinos (03 x)

- Soquete IC 18 pinos (02 x)

- Conector de pino fêmea - 6 pinos (8 x)

- Fixar cabeçalhos 90º (01 x)

- Fixar cabeçalhos 180º (01 x)

- Conector Borne KRE 02 pinos (02 x)

- PCB (01 x) - Fabricado

Outros

- Arduino Uno R3 / Nano / similar

- Display LED de 04 dígitos x 7 segmentos - (ânodo comum)

- LED Dot Matrix Dual Color (Verde e Vermelho) - (Ânodo Comum)

Observações importantes:

  1. Coloquei a folha de dados de todos os componentes mais importantes apenas como referência, mas você deve verificar a folha de dados de seus próprios componentes antes de usá-los.
  2. Esta placa foi projetada para usar apenas exibições de ANODO COMUM.

Etapa 2: primeiros protótipos

Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos
Primeiros Protótipos

Meu primeiro protótipo foi feito em uma placa de ensaio para testar o circuito.

Depois fiz outro protótipo usando uma placa universal como vocês podem ver nas fotos.

Esse tipo de placa é interessante para produzir um protótipo rápido mas você percebe que ainda guarda muitos fios.

É uma solução funcional, mas não tão elegante comparada com um PCB final fabricado (o azul).

Não sou bom em soldar porque não tenho bastante experiência com este processo mas mesmo assim obtive bons resultados com ambas as experiências e mais importante: não queimei nenhum componente e nem as minhas mãos!

Provavelmente os resultados na minha próxima prancha serão melhores devido à prática.

Por isso incentivo você a experimentar esse tipo de experiência, pois será excelente para você.

Lembre-se de ter cuidado com o ferro quente e tente não gastar mais do que alguns segundos em um componente para evitar queimá-lo !!

E, finalmente, no Youtube você pode encontrar muitos vídeos sobre soldagem que você pode aprender antes de ir para o mundo real.

Etapa 3: Design de PCB

Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB

Projetei este PCB usando um software dedicado para produzir uma placa de camada dupla e ele foi desenvolvido em várias versões diferentes antes desta última.

No início eu tinha uma versão para cada tipo de display e afinal decidi combinar tudo em uma única versão.

Metas de design:

  • Simples e útil para protótipos.
  • Configuração fácil e expansível.
  • Capaz de usar 3 tipos diferentes de visores.
  • Largura máxima da grande matriz de pontos do LED.
  • Comprimento máximo de 100 mm para minimizar os custos de produção da placa.
  • Aplique componentes tradicionais em vez de SMD para evitar mais dificuldades durante o processo de soldagem manual.
  • A placa deve ser modular para ser conectada a outras placas em cascata.
  • Saída serial ou paralela para outras placas.
  • Várias placas devem ser controladas apenas por um Arduino.
  • Apenas 3 fios de dados para conexão do Arduino.
  • Conexão de alimentação externa 5V.
  • Aumente a robustez elétrica aplicando transistores e drivers (ULN2803) para controlar os LEDS.

Observação:

Com relação a este último item, recomendo que você leia meus outros Instructables sobre estes componentes:

Usando o Shift Register 74HC595 com ULN2803, UDN2981 e BC327

Fabricação de PCB:

Após terminar o projeto, enviei para um fabricante de PCB na China após muitas pesquisas em diferentes fornecedores locais e em diferentes países.

O principal problema estava relacionado à quantidade de placas versus custo, porque eu preciso de apenas algumas delas.

Por fim, decidi fazer um pedido regular (não um pedido expresso devido aos custos mais altos) de apenas 10 pranchas para uma empresa na China.

Após apenas 3 dias as pranchas foram fabricadas e enviadas para mim cruzando o mundo em mais 4 dias.

Os resultados foram excelentes !!

Em uma semana após o pedido de compra as pranchas estavam em minhas mãos e fiquei realmente impressionado com a alta qualidade delas e com a rapidez!

Etapa 4: Programação

Programação
Programação
Programação
Programação

Para a programação, você deve ter em mente alguns conceitos importantes sobre o design do hardware e sobre o registrador de deslocamento 74HC595.

A principal função do 74HC595 é transformar 8 bits Serial-In em 8 Parallel-Out Shift.

Todos os dados seriais vão para o pino # 14 e, a cada sinal de clock, os bits vão para seus pinos de saída paralela correspondentes (Qa a Qh).

Se você continuar enviando mais dados, os bits serão movidos um a um para o Pino # 9 (Qh ') como saída serial novamente e devido a esta funcionalidade você pode colocar outros chips conectados em cascata.

Importante:

Neste projeto temos três CIs de 74HC595. Os dois primeiros funcionam para controlar as colunas (com lógica POSITIVA) e o último para controlar as linhas (com lógica NEGATIVA devido ao funcionamento dos transistores PNP).

A lógica positiva significa que você deve enviar um sinal de nível ALTO (+ 5 V) do Arduino e a lógica negativa significa que você deve enviar um sinal de nível BAIXO (0 V).

Matriz de pontos de LEDs

  1. A primeira é para as saídas dos cátodos dos LEDs Vermelhos (8 x) >> COLUNA VERMELHA (1 a 8).
  2. A segunda é para a saídaL dos cátodos dos LEDs verdes (8 x) >> COLUNA VERDE (1 a 8).
  3. O último é para a saída dos ânodos de todos os LEDs (08 x Vermelho e Verde) >> LINHAS (1 a 8).

Por exemplo, se você deseja ligar apenas o LED verde da coluna 1 e da linha 1, deve enviar a seguinte sequência de dados seriais:

1º) LINHAS

~ 10000000 (apenas a primeira linha é ativada) - O símbolo ~ é para inverter todos os bits de 1 para 0 e vice-versa.

2º) COLUNA Verde

10000000 (apenas a primeira coluna do LED verde está ativada)

3º) COLUNA VERMELHA

00000000 (todas as colunas de LEDs vermelhos estão desligados)

Declarações do Arduino:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Lógica negativa para as linhas

shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Lógica positiva para as colunas verdes

shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Lógica positiva para as colunas vermelhas

Observação:

Você também pode combinar os dois LEDs (verde e vermelho) para produzir a cor AMARELA da seguinte forma:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);

shiftOut (dataPin, clockPin, LSBFIRST, B10000000);

shiftOut (dataPin, clockPin, LSBFIRST, B10000000);

Exibição de 7 segmentos

Para esses tipos de telas, a sequência é a mesma. A única diferença é que você não precisa usar os LEDs verdes.

1º) DIGITAR (1 a 4 da esquerda para a direita) ~ 10000000 (definir o dígito # 1)

~ 01000000 (definir o dígito # 2)

~ 00100000 (definir o dígito # 3)

~ 00010000 (definir o dígito # 4)

2º) NÃO UTILIZADO

00000000 (todos os bits definidos para zero)

3º) SEGMENTOS (A a F e DP - verifique seu display datasheet)

10000000 (definir segmento A)

01000000 (definir segmento B)

00100000 (definir segmento C)

00010000 (definir segmento D)

00001000 (definir segmento E)

00000100 (definir segmento F)

00000010 (definir segmento G)

00000001 (definir DP)

Exemplo do Arduino para definir o Display # 2 com o número 3:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Definir DISPLAY 2 (lógica negativa)

shiftOut (dataPin, clockPin, LSBFIRST, 0); // Defina os dados para zero (não usado)

shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Defina os segmentos A, B, C, D, G)

Finalmente, aplicando este processo, você pode controlar qualquer LED de sua tela e também pode criar quaisquer caracteres especiais que você precisa.

Etapa 5: Teste

Testando
Testando
Testando
Testando
Testando
Testando

Aqui estão dois programas como exemplo de funcionalidade do Módulo de Display.

1) Exibição de contagem regressiva (de 999,9 segundos a zero)

2) Matriz de pontos (dígitos de 0 a 9 e alfabeto de A a Z)

3) Relógio Digital RTC em Display LED de 4 Dígitos e 7 Segmentos

Este último é uma atualização da minha primeira versão do Relógio Digital.

Etapa 6: Conclusão e Próximas Etapas

Conclusão e próximas etapas
Conclusão e próximas etapas
Conclusão e próximas etapas
Conclusão e próximas etapas

Este módulo será útil em todos os projetos futuros que exijam algum display LED.

Como próximos passos irei montar mais algumas placas para trabalhar com elas em modo cascata e irei desenvolver também uma biblioteca para simplificar ainda mais a programação.

Espero que você tenha gostado deste projeto.

Por favor, envie-me seus comentários, pois isso é importante para aprimorar o projeto e as informações deste Instructable.

Cumprimentos, LAGSILVA

26 de maio de 2016

Recomendado: