Dirigindo 7 segmentos usando o Arduino Shift e Register Top 10HCtop 105

Dirigindo 7 segmentos usando o Arduino Shift e Register Top 10HCtop 105
O uso de exibições para mostrar as entradas e saídas de um projeto Arduino pode variar com base no tipo de dados. Para exibir a quantidade limitada de dados, a tela de 7 segmentos pode ser usada, mas esses monitores têm um grande número de pinos que podem levar muitos pinos digitais da placa Arduino, sem espaço para outros dispositivos.

Para atender a tais problemas, pode -se usar registros de mudança de troca que podem salvar os pinos da placa Arduino para outros dispositivos. Discutimos como interagem o 7-segmento com Arduino usando o registro de turno.

7 segmentos com Arduino usando o registro de turno

Conforme explicado, os registros de turnos anteriores são úteis quando o número de dispositivos que devem ser interfigurados no microcontrolador é grande. Para interagir o 7-segmento com o Arduino usando os registros de turno, você exigirá os seguintes componentes:

  • Exibição de 7 segmentos
  • Pão de pão
  • Arduino Uno
  • Conectando fios
  • 74HC595 Registro de turno
  • 7 resistores 220-OHM

Para usar o registro de turno para interface o segmento de 7 com Arduino Uno, projetamos um circuito cujo esquema é dado abaixo que está usando a lista de componentes dados acima.

Conjunto de hardware para usar o registro de turno com Arduino para exibição de 7 segmentos

Antes de implementar o circuito no hardware real, criamos o conjunto de hardware que ajudará a fazer conexões dos componentes no hardware real. Abaixo da imagem dada, mostra o conjunto de hardware para usar o registro de turno com Arduino para interagir o 7-segmento com ele.

As conexões para os 7 segmentos com registro de turno são bastante simples se você seguir os números de pinos do registro de turno. Explicamos conexões do circuito nos seguintes pontos:

  • Para conectar o segmento 7 com o registro de turno, conectamos o pino “A” de 7 segmentos com o pino 15 e continuamos conectando os pinos na ordem alfabética até “G” usando o fio cinza.
  • Para conectar o pino de dados do registro de mudança com o Arduino Uno, usamos o fio roxo que se conecta ao pino 4 do Arduino.
  • Usamos o fio branco para conectar o pino de trava do registro de mudança com o Arduino Uno usando seu pino 5.
  • O fio marrom é usado para conectar o pino de trava do registro de mudança com o Arduino Uno usando seu pino 6.
  • Para acionar o circuito, usamos o suprimento de 5 voltos do Arduino Uno e as conexões são representadas pelos fios vermelhos e pretos.

Programa Arduino para usar o Shift Register para interface o 7-segmento com Arduino Uno

Para interagir o 7-segmento com o Arduino usando o registro de turno, temos para programar o microcontrolador que é dado abaixo:

const int dados = 4; // pino Arduino para pino de dados do registro de turno
const int latch = 5; // pino Arduino para pino de trava do registro de turno
const int clock = 6; // pino Arduino para o pino do relógio do registro de turno
const char comum = 'c'; // 7-segmento com cátodo comum
Void Setup ()
// atribuindo os modos de trabalho aos pinos de mudança de turno
pinmode (dados, saída);
pinmode (trava, saída);
pinmode (relógio, saída);

Void Loop ()
para (int i = 0; i <= 9; i++) // for loop to generate number from 0 to 9
bits bits = binário (i); / * Detecte o binário dado para o respectivo número dos casos fornecidos abaixo */
exibição (bits); // exibindo os números no 7-segmento
atraso (500);


Void Display (byte oitobits)
if (comum == 'c') // se a configuração for cátodo comum
oitobits = oitobits ^ b11111111; // então altere os bits de 0 para 1

DigitalWrite (trava, baixo); // Preparando o registro de turno para dados
shiftout (dados, relógio, lsbfirst, oitobits); /* Enviando os dados para 7SEGMNET a partir de bit menos significativo*/
DigitalWrite (trava, alta); / * Exibindo os dados no segmento 7 */

/ *Casos para detectar o binário dos números gerados de 0 a 9 */
byte binário (número int)
Switch (número)
Caso 0:
Retornar B1111111100; // se 0 for gerado, então binário para zero
quebrar;
caso 1:
Retornar B01100000; // se 1 for gerado, então dando binário para um
quebrar;
Caso 2:
Retorno B11011010; // se 2 for gerado, então dando binário para dois
quebrar;
Caso 3:
Retornar B1111110010; // se 3 for gerado, então dando binário para três
quebrar;
Caso 4:
Retornar B01100110; // se 4 for gerado, então dando binário para quatro
quebrar;
Caso 5:
Retorno B10110110; // Se 5 for gerado, então dando binário para cinco
quebrar;
Caso 6:
Retorno B10111110; // Se 6 for gerado, então dando binário para seis
quebrar;
Caso 7:
Retorno B11100000; // Se 7 for gerado, então dando binário para sete
quebrar;
Caso 8:
Retornar B11111110; // se 8 for gerado, então dando binário para oito
quebrar;
Caso 9:
retornar B11110110; // se 9 for gerado, então dando binário para nove

Ao controlar o pino de trava do registro de turno, podemos enviar os dados de Arduino para o 7-segmento. Portanto, quando o pino de trava está em baixo estado, ele recebe os dados e, quando o pino entra em alto estado, ele envia mais os dados.

Para gerar os números, usamos o loop for e a cada iteração do loop, o estado do pino de trava é alterado usando a função digitalWrite () e, para cada número, damos o binário para ele que ligará o LED dos 7 -segmentos de acordo.

Demonstração de hardware para usar o Shift Register com Arduino para interface o 7-segmento

Implementamos o circuito na placa de ensaio para interface 7-segmentos usando um registro de turno com Arduino Uno de acordo com a montagem de hardware que descrevemos anteriormente. Para demonstrar que demos o GIF animado abaixo:

Conclusão

Os registros de turno são de grande importância nos projetos em que há um grande número de dispositivos para serem usados ​​com Arduino. Nós interfiguramos a tela de 7 segmentos com o Arduino usando um registro de turno que reduz o uso de pinos Arduino de 6 a 3. Também fornecemos o esquema de circuito, a montagem de hardware e o código Arduino que o ajudarão a entender o conceito de usar o registro de turno.