Como Conectar O Shift Register Ao Arduino

Índice:

Como Conectar O Shift Register Ao Arduino
Como Conectar O Shift Register Ao Arduino

Vídeo: Como Conectar O Shift Register Ao Arduino

Vídeo: Como Conectar O Shift Register Ao Arduino
Vídeo: Как добавить выходы в #Arduino с помощью регистра сдвига - схема обучения 2024, Maio
Anonim

Em um dos artigos anteriores, já mencionamos brevemente o uso de um registrador de deslocamento, em particular, o 74HC595. Vamos dar uma olhada mais de perto nas capacidades e procedimentos para trabalhar com este microcircuito.

Registro de deslocamento 74HC595
Registro de deslocamento 74HC595

Necessário

  • - Arduino;
  • - registrador de deslocamento 74HC595;
  • - fios de conexão.

Instruções

Passo 1

O registrador de deslocamento 74HC595 e semelhantes são usados como dispositivos para converter dados seriais em paralelo e também podem ser usados como uma "trava" para dados, mantendo o estado transferido.

A pinagem (pinagem) é mostrada na figura à esquerda. Seu objetivo é o seguinte.

Q0… Q7 - saídas de dados paralelas;

GND - terra (0 V);

Q7 '- saída de dados seriais;

^ MR - reset mestre (baixo ativo);

SHcp - entrada do relógio do registrador de deslocamento;

STcp - entrada de pulso de clock "latch";

^ OE - habilitação de saída (baixo ativo);

Ds - entrada de dados seriais;

Vcc - fonte de alimentação +5 V.

Estruturalmente, o microcircuito é feito em diversos tipos de caixas; Vou usar o mostrado na figura à direita - a saída - porque é mais fácil de usar com uma placa de ensaio.

Aparência e pinagem do registro de deslocamento
Aparência e pinagem do registro de deslocamento

Passo 2

Deixe-me relembrar brevemente a interface serial SPI, que usaremos para transferir dados para o registrador de deslocamento.

SPI é uma interface serial bidirecional de quatro fios da qual participam um mestre e um escravo. O mestre em nosso caso será o Arduino, o escravo será o registrador 74HC595.

O ambiente de desenvolvimento para Arduino possui uma biblioteca integrada para trabalhar na interface SPI. Na aplicação, são utilizadas as conclusões que estão assinaladas na figura:

SCLK - saída de relógio SPI;

MOSI - dados do mestre para o escravo;

MISO - dados do escravo ao mestre;

SS - seleção de escravo.

Pinos SPI padrão da placa Arduino
Pinos SPI padrão da placa Arduino

etapa 3

Vamos montar o circuito como na foto.

Também conectarei um analisador lógico a todos os pinos do microcircuito do registrador de deslocamento. Com a ajuda dele, veremos o que está acontecendo no nível físico, quais sinais estão indo para onde, e descobriremos o que eles significam. Deve ser parecido com a foto.

Diagrama de fiação para o registrador de deslocamento 74HC595 para o Arduino
Diagrama de fiação para o registrador de deslocamento 74HC595 para o Arduino

Passo 4

Vamos escrever um esboço como este e carregá-lo na memória do Arduino.

A variável PIN_SPI_SS é uma constante padrão interna que corresponde ao pino "10" do Arduino quando usada como mestre da interface SPI que estamos usando aqui. Em princípio, poderíamos muito bem usar qualquer outro pino digital no Arduino; então teríamos que declará-lo e definir seu modo de operação.

Ao alimentar este pino LOW, ativamos nosso registrador de deslocamento para transmissão / recepção. Após a transmissão, elevamos a tensão para ALTA novamente e a troca termina.

Um esboço para demonstrar o funcionamento do registrador de mudança
Um esboço para demonstrar o funcionamento do registrador de mudança

Etapa 5

Vamos transformar nosso circuito em trabalho e ver o que o analisador lógico nos mostra. A visão geral do diagrama de tempo é mostrada na figura.

A linha tracejada azul mostra 4 linhas SPI, a linha tracejada vermelha mostra 8 canais de dados paralelos do registrador de deslocamento.

O ponto A na escala de tempo é o momento em que o número "210" é transferido para o registrador de deslocamento, B é o momento em que o número "0" é escrito, C é o ciclo que se repete desde o início.

Como você pode ver, de A a B - 10,03 milissegundos, e de B a C - 90,12 milissegundos, quase como pedimos no esboço. Uma pequena adição em 0, 03 e 0, 12 ms é o tempo para transferir dados seriais do Arduino, portanto, não temos exatamente 10 e 90 ms aqui.

Diagrama de tempo de troca do Arduino e registrador de deslocamento 74HC595
Diagrama de tempo de troca do Arduino e registrador de deslocamento 74HC595

Etapa 6

Vamos dar uma olhada mais de perto na seção A.

No topo está um pulso longo com o qual o Arduino inicia a transmissão na linha SPI-ENABLE - seleção de escravo. Neste momento, pulsos de relógio SPI-CLOCK começam a ser gerados (segunda linha a partir do topo), 8 peças (para transferência de 1 byte).

A próxima linha do topo é SPI-MOSI - os dados que transferimos do Arduino para o registrador de deslocamento. Este é o nosso número "210" em binário - "11010010".

Após a conclusão da transferência, no final do pulso SPI-ENABLE, vemos que o registrador de deslocamento configurou o mesmo valor em suas 8 pernas. Eu destaquei isso com uma linha pontilhada azul e rotulei os valores para maior clareza.

Definir o número 210 em um barramento paralelo via SPI
Definir o número 210 em um barramento paralelo via SPI

Etapa 7

Agora vamos voltar nossa atenção para a seção B.

Novamente, tudo começa com a escolha de um escravo e a geração de 8 pulsos de clock.

Os dados na linha SPI-MOSI agora são "0". Ou seja, neste momento escrevemos o número "0" no registrador.

Mas até que a transferência seja concluída, o registro armazena o valor "11010010". É enviado para os pinos paralelos Q0.. Q7 e é emitido quando há pulsos de clock na linha da saída paralela Q7 'para a linha SPI-MISO, que vemos aqui.

Configurando o número 0 em um barramento paralelo via SPI
Configurando o número 0 em um barramento paralelo via SPI

Etapa 8

Assim, estudamos em detalhes a questão da troca de informações entre o dispositivo mestre, que era o Arduino, e o registrador de deslocamento 74HC595. Aprendemos como conectar um registrador de deslocamento, escrever dados nele e ler dados dele.

Recomendado: