Índice:

Matriz de botão de pressão LED: 4 etapas
Matriz de botão de pressão LED: 4 etapas

Vídeo: Matriz de botão de pressão LED: 4 etapas

Vídeo: Matriz de botão de pressão LED: 4 etapas
Vídeo: 3 Modos de ligar botões no Arduino - Push Button 2024, Novembro
Anonim
Matriz de LED de botão de pressão
Matriz de LED de botão de pressão

Este projeto pode ser pensado como outro projeto introdutório ao Arduino que é um pouco mais avançado do que seu projeto típico de 'piscar um LED'. Este projeto incorpora uma matriz de LED, botões de pressão, registradores de deslocamento (que podem salvar pinos em sua placa Arduino) e um conceito chave chamado multiplexação. Espero que você ache o tutorial esclarecedor e se desafie a melhorá-lo!

Suprimentos

(1x) Arduino Uno

(5x) Botões táteis

(2x) Capacitores de 0,1 uF

(2x) Capacitores de 1 uF

(8x) Resistores 1k

(5x) Resistores de 10k

(2x) registradores de deslocamento 74HC595

Jumper Wires

Fio Preto

Fio vermelho

Etapa 1: Etapa 1: Fazendo uma matriz de LED

Etapa 1: Fazendo uma matriz de LED
Etapa 1: Fazendo uma matriz de LED
Etapa 1: Fazendo uma matriz de LED
Etapa 1: Fazendo uma matriz de LED
Etapa 1: Fazendo uma matriz de LED
Etapa 1: Fazendo uma matriz de LED

O tutorial que usei para fazer a matriz 8x8 LED neste projeto pode ser encontrado aqui. Existem configurações comuns para uma matriz de LED:

a) Ânodo de linha comum

b) Cátodo de fileira comum

Como usei o arranjo Common Row Cathode da matriz, discutirei principalmente aqui e você pode estender a mesma lógica para o arranjo Common Row Anode. No arranjo de cátodo de linha comum, os cátodos dos LEDs (ou terminais negativos que é a perna mais curta em um LED) são conectados juntos em linhas, enquanto os anodos (ou terminais positivos que é a perna mais longa em um LED) são conectados juntos em colunas. Para abordar um determinado LED, puxe a linha do cátodo em que o cátodo do LED está baixo e puxe a coluna do ânodo em que o ânodo do LED está alto.

Nota: Ao fazer a matriz de LED mostrada no link acima, certifique-se de conectar as colunas anódicas com os resistores de 1k ohm antes de aplicar qualquer quantidade de tensão aos LEDs.

Etapa 2: Etapa 2: Conexão dos botões de pressão e registros de deslocamento

Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança
Etapa 2: Conectando os botões de pressão e os registros de mudança

A fiação para os botões de pressão e registradores de deslocamento é mostrada acima. Gostaria de observar que os registradores de deslocamento no diagrama de circuito não mostram os pinos de aterramento (pino 8 do IC) e Vcc ou da fonte de alimentação (pino 16 do IC) para os chips; o pino terra é conectado ao pino GND da placa Arduino e o Vcc é conectado ao pino 5V da placa Arduino. O pino Vcc de cada registro de deslocamento também é conectado a um capacitor de 0,1 uF conectado ao aterramento.

Nota: As saídas de cada registrador de deslocamento são listadas como QA para QH (ignorar QH *). Eles são listados em termos do bit menos significativo (LSB) (para QA) ao bit mais significativo (MSB) (para QH), ou seja, o QA controlaria a 0ª linha ou coluna, etc.

Etapa 3: Etapa 3: Upload do código

O código para controlar a matriz de LED está anexado a este tutorial. Tentei comentar o máximo que pude do código para que ficasse muito claro como o programa funciona. A base principal do programa é que há uma matriz que mantém o controle de quais LEDs devem estar ligados ou desligados. Para que os vários LEDs sejam exibidos corretamente sem acender acidentalmente diodos indesejados, é necessário usar um conceito chamado multiplexação. A multiplexação é essencialmente iluminar LEDs individuais em uma determinada linha, enquanto todos os outros LEDs em outras linhas, fazendo o mesmo para as linhas restantes. O truque é que, se os LEDs percorrerem as fileiras com rapidez suficiente, seus olhos perceberão que as fileiras individuais estão sendo acesas uma de cada vez. Se você gostaria de explorar mais maneiras de enganar seus olhos com LEDs, convém examinar o conceito de persistência da visão (facilmente pesquisável no Google ou no Instructables).

A forma como as colunas anódicas e as linhas catódicas são atualizadas é por meio de uma função definida pelo usuário chamada 'UpdateShiftRegisters'. Essa função primeiro transforma o pino de trava, que controla se um novo byte (8 bits) é enviado para a saída, para baixo, de forma que nenhuma alteração nas saídas seja possível enquanto novos bits estão sendo gravados no chip. Então, usando uma função integrada do Arduino chamada 'ShiftOut', que lida especificamente com o envio de dados para registradores de deslocamento, o programa grava qualquer linha (cátodo) que seria baixa e quais colunas (ânodo) deveriam ser altas. Finalmente, o pino de trava é puxado para cima para atualizar a saída (os LEDs).

Etapa 4: informações / recursos adicionais

Aqui estão alguns links para sites ou livros que podem fornecer informações adicionais sobre este projeto:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Introdução ao Arduino, 2ª edição por Massimo Banzi

Recomendado: