Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Matriz de LED de rolagem 48 x 8 usando Arduino.

Componentes e suprimentos

Arduino UNO
× 1
74HC595 8 bits Serial to Parallel Shift Register
× 7
Resistor 475 ohm
× 56
Cabeçalho masculino 40 posição 1 linha (0,1 ")
× 2
Cabeçalho feminino 8 posição 1 linha (0,1 ")
× 21
Placa PCB de uso geral 6 "x4"
× 4
Matriz LED 8X8
× 6
Transistor BC 548
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Pistola de cola quente (genérica)
Multímetro digital Digilent Mastech MS8217 Autorange

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Olá a todos!

Este projeto é sobre fazer uma matriz de LED de rolagem programável 48x8 usando um Arduino UNO e registradores de deslocamento 74HC595.

Este foi meu primeiro projeto com uma placa de desenvolvimento Arduino. Foi um desafio que meu professor me deu para tentar construir um. Então, na hora de aceitar esse desafio, eu nem sabia piscar um LED usando um arduino. Então, acho que até um iniciante pode fazer isso com um pouco de paciência e compreensão. Encontrei o diagrama de circuito online e essa foi minha única referência para construir este projeto. Comecei com um pouco de pesquisa sobre registradores de deslocamento e multiplexação no arduino.

O Circuito

Reunir componentes

Reuni todos os componentes de diferentes fontes. Comprei este display de matriz LED de cátodo comum 8x8 de 5 mm em um site online.

Construindo o Protótipo

É mostrado no circuito que um único registrador de deslocamento é usado para controlar as 8 linhas e para controlar as colunas, usamos um registrador de deslocamento para cada 8 colunas.

Portanto, se você for capaz de fazer uma matriz 8x8 simples, pode simplesmente replicar a parte do circuito para o controle de coluna e estender a matriz para qualquer número de colunas. Você só precisa adicionar um 74hc595 para cada 8 colunas (um módulo 8x8) adicionado ao circuito. Tendo isso em mente, fiz meu protótipo 8x8.

Estágio de soldagem

Peguei painéis de pontos separados para fazer os controles de linha e coluna e fios estendidos e cabeçalhos para conectá-los.









Depois de criar uma matriz 8x8 com sucesso, você só precisa conectar mais registros de deslocamento com clock comum para acionar as colunas. ele só precisa de um único 74hc595 para conduzir todas as linhas. Portanto, com base no número de colunas, mais registradores de deslocamento podem ser adicionados, não há limite para o número de colunas que você pode adicionar.

Construindo o segundo tempo

Como eu não tinha acesso à impressão 3D na época, procurei um carpinteiro local para fazer um caso.

A caixa que ele fez era muito maior do que eu esperava, é melhor projetar uma caixa menor usando o Fusion 360 ou qualquer outro software de design e imprimir em 3D a caixa. Furos foram feitos na caixa para conectar os cabos de alimentação e usb.

O Código

O Código pode ser encontrado nos anexos deste projeto.

Aqui, iremos varrer as linhas e alimentar as linhas das colunas com os níveis lógicos apropriados. O código determinará a velocidade da mensagem de rolagem, bem como a mensagem que vamos exibir. A direção da rolagem é da direita para a esquerda por padrão no código, mas com uma pequena modificação, ela pode ser implementada em outras direções também.

O Resultado





Obrigado! :)

Código

  • Código Arduino para matriz LED 48x8
Código Arduino para matriz LED 48x8 C / C ++
Código Aduino para matriz LED 48x8. As conexões e o código são explicados como comentários no próprio código.
 / * /////////////////////////////////// /////////////////////////////////////////////////////// * Código Arduino para exibir caracteres de rolagem em 6 ou mais matrizes LED 8x8. * * O número de matrizes pode ser aumentado com uma pequena mudança no código. * * Comentários são dados em cada declaração para edição. * * Codificado por Prasanth KS * * Contact:[email protected] * / * //////////////////////////////////// //////////////////////////////////////////////////// char msg [] ="WELCOME WIZ"; // Altere o texto aqui.int scrollspeed =5; // Defina a velocidade de rolagem (inferior =mais rápido) int x; int y; // Columnsint clockPin1 =2; // Pino do Arduino conectado ao pino 11 do relógio de 74HC595int latchPin1 =3; // Pino do Arduino conectado ao pino de trava 12 de 74HC595int dataPin1 =4; // Pino do Arduino conectado ao pino de dados 14 de 74HC595 // Rowsint clockPin2 =5; // Pino do Arduino conectado ao pino 11 do relógio de 74HC595int latchPin2 =6; // Pino do Arduino conectado ao pino de trava 12 de 74HC595int dataPin2 =7; // Pino do Arduino conectado ao pino de dados 14 de 74HC595 // BITMAP // Os bits neste array representam um LED da matriz // 8 é o número de linhas, 6 é o número de LED matricesbyte bitmap [8] [7]; int numZones =sizeof (bitmap) / 8; // Uma zona se refere a uma matriz de 8 x 8 (grupo de 8 colunas) int maxZoneIndex =numZones-1; int numCols =numZones * 8; // FONT DEFENITIONbyte alfabetos [] [8] ={{0,0,0, 0,0}, // @ como ESPAÇO // {8,28,54,99,65}, // <<{31, 36, 68, 36, 31}, // A {127, 73, 73, 73, 54}, // B {62, 65, 65, 65, 34}, // C {127, 65, 65, 34, 28}, // D {127, 73, 73, 65, 65}, // E {127, 72, 72, 72, 64}, // F {62, 65, 65, 69, 38}, // G {127, 8, 8, 8, 127}, // H {0 , 65, 127, 65, 0}, // I {2, 1, 1, 1, 126}, // J {127, 8, 20, 34, 65}, // K {127, 1, 1, 1, 1}, // L {127, 32, 16, 32, 127}, // M {127, 32, 16, 8, 127}, // N {62, 65, 65, 65, 62}, // O {127, 72, 72, 72, 48}, // P {62, 65, 69, 66, 61}, // Q {127, 72, 76, 74, 49}, // R {50 , 73, 73, 73, 38}, // S {64, 64, 127, 64, 64}, // T {126, 1, 1, 1, 126}, // U {124, 2, 1, 2, 124}, // V {126, 1, 6, 1, 126}, // W {99, 20, 8, 20, 99}, // X {96, 16, 15, 16, 96}, // Y {67, 69, 73, 81, 97}, // Z}; void setup () {pinMode (latchPin1, OUTPUT); pinMode (clockPin1, OUTPUT); pinMode (dataPin1, OUTPUT); pinMode (latchPin2, OUTPUT); pinMode (clockPin2, OUTPUT); pinMode (dataPin2, OUTPUT); // Limpar bitmap para (int row =0; row <8; row ++) {for (int zone =0; zone <=maxZoneIndex; zona ++) {bitmap [row] [zone] =0; }}} // FUNÇÕES // Exibe a matriz de bitmap na matrizvoid RefreshDisplay () {for (int row =0; row <8; row ++) {int rowbit =1 < =0; zona--) {shiftOut (dataPin1, clockPin1, MSBFIRST, bitmap [linha] [zona]); } // vire as duas travas de uma vez para eliminar a oscilação digitalWrite (latchPin1, HIGH); // Retorne o pino da trava 1 alto para o chip de sinal digitalWrite (latchPin2, HIGH); // Retorne o pino da trava 2 alto para o chip de sinal // Aguarde delayMicroseconds (300); }} // Converte linha e coluna em bitmap e desativa / evita Plot (int col, int row, bool isOn) {int zone =col / 8; int colBitIndex =x% 8; byte colBit =1 <> 1; // Muda o bit mais baixo da próxima zona como o bit mais alto desta zona. if (zona  

Esquemas

Apenas para fins de referência. Para conexões de pinos, consulte os comentários no código.

Processo de manufatura

  1. Faça Monitor Ambilight usando Arduino
  2. Arduino com Bluetooth para controlar um LED!
  3. Matriz LED + Display da porta do sensor de movimento [Arduino Holiday]
  4. Arduino Quadruped
  5. Controle de brilho do LED usando Bolt e Arduino
  6. Relógio giratório Arduino de matriz de LED único
  7. Arduino RGB Color Mixer
  8. Controlando uma matriz de LED com Arduino Uno
  9. Rádio FM usando Arduino e RDA8057M
  10. DMX RGB LED externo