Índice:

Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet: 3 etapas
Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet: 3 etapas

Vídeo: Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet: 3 etapas

Vídeo: Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet: 3 etapas
Vídeo: Exemplo de uso de Registrador de Deslocamento - 74HC595 - Arduino - 15 leds 2024, Novembro
Anonim
Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet
Cascata de registros de deslocamento 74HC595 controlados via Arduino e Ethernet

Hoje gostaria de apresentar um projeto que implementei em duas versões. O projeto usa 12 shift registers 74HC595 e 96 LEDs, placa Arduino Uno com blindagem Ethernet Wiznet W5100. 8 LEDs são conectados a cada registro de deslocamento. Os números 0-9 são representados por LEDs. Cada registrador de deslocamento é equipado com 8 terminais de saída.

Cada um dos 4 registradores de deslocamento 74HC595 forma uma unidade lógica - um display para listar um número de 4 dígitos. No total, existem 3 visores lógicos no projeto, consistindo em 12 registradores de deslocamento.

As implementações são compatíveis com as placas Arduino Nano, Mega, Uno e com os shields e módulos Ethernet da família Wiznet, especificamente os modelos W5100 e W5500 (utilizando a biblioteca Ethernet2).

Suprimentos

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 a 12 registradores de deslocamento 74HC595
  • 32 a 96 diodos LED

Etapa 1: Implementações implementadas no projeto com Arduino:

  • Webserver - servidor HTTP rodando diretamente no Arduino, permite interpretar o código HTML
  • WebClient - cliente capaz de fazer uma solicitação HTTP a um servidor remoto, enviando / baixando dados

Servidor web:

  • Fornece uma página da web em HTML com um formulário que permite inserir 3 números de quatro dígitos.
  • Após o envio do formulário, os dados são processados e armazenados na memória EEPROM, o usuário é informado sobre o processamento dos dados por uma subpágina separada.
  • Após salvar os dados, o usuário é redirecionado de volta ao formulário.
  • A memória EEPROM é independente de energia, os dados são acessíveis mesmo após a recuperação de energia, mas também a reinicialização da placa.
  • Todos os números são então representados em três visores consistindo em 12 registradores de deslocamento 74HC595.

Cliente da web:

  • A comunicação com o servidor web ocorre a cada 5 segundos após o protocolo
  • O servidor da web executa um aplicativo da web PHP que permite inserir 3 números de quatro dígitos por meio do formulário HTML.
  • Os dados do formulário são armazenados em um banco de dados MySQL.
  • O Arduino solicita a recuperação de dados desse banco de dados por meio de uma consulta ao servidor.
  • Os dados processados são analisados pelo Arduino e, em seguida, plotados usando os registradores de deslocamento 74HC595.
  • Os dados também são armazenados na memória EEPROM do Arduino, são utilizados no caso de falha na conexão com o servidor web / quando as placas do Arduino são reiniciadas, são utilizados para a renderização inicial dos dados nos registradores de deslocamento.
  • Os dados são sobrescritos na EEPROM somente quando os dados mudam, as células EEPROM são salvas de sobrescritos desnecessários.

Etapa 2: Fiação e captura de tela

Fiação e captura de tela
Fiação e captura de tela
Fiação e captura de tela
Fiação e captura de tela

Conexão em cascata para os registradores de deslocamento 74HC595 (pode ser estendido em x mais) - Exportar do TinkerCAD. Screenshot está lá da interface do servidor web, quando obtém os dados via formulário HTML, processa-os e salva na memória EEPROM.

Etapa 3: 74HC595 + Códigos Fonte

É claro a partir do diagrama que apenas 3 fios de dados são usados para controlar os registradores de deslocamento:

  • Saída de dados - (SER para 74HC595)
  • Saída de relógio - (SRCLK em 74HC595)
  • Saída de trava - (RCLK para 74HC595)

Os registradores de deslocamento podem ser combinados em cascata, enquanto outros periféricos também podem ser controlados por registradores de deslocamento - por exemplo, relés para comutação de elementos de potência. Também é possível controlar 500 relés separados (com um número suficiente de registradores de deslocamento e fonte de alimentação) com uma saída de dados.

Ao controlar as saídas dos registradores, também é possível modificar a ordem dos bytes para o bit mais significativo - MSB PRIMEIRO, ou para LSB - o bit menos significativo. Como resultado, ele inverte as saídas. Em um caso, por exemplo, 7 diodos estão acesos, no outro caso 1 diodo dependendo da entrada e da ordem dos bytes.

Ambas as implementações usam memória EEPROM, que pode armazenar dados mesmo após uma falha de energia ou após uma reinicialização da placa. A segunda utilização desta memória é também a capacidade de representar os últimos dados conhecidos caso não seja possível a comunicação com o servidor web (erro de conectividade, servidor).

A memória é limitada a 10.000 a 100.000 transcrições. As implementações são projetadas para a menor carga de memória possível. Os dados não serão substituídos quando forem alterados. Se os mesmos dados forem lidos do servidor / cliente da web, eles não serão sobrescritos na memória EEPROM.

A implementação de software (lado do Arduino) para WebClient pode ser testada gratuitamente em:

O Arduino se comunica com uma interface web na qual é possível modificar 3 números de quatro dígitos:

Solicite o código do Arduino como servidor da web em: [email protected] para mais instructables:

Recomendado: