Taula de continguts:

Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet: 3 passos
Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet: 3 passos

Vídeo: Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet: 3 passos

Vídeo: Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet: 3 passos
Vídeo: How to cascade 74hc595 shift register 2024, De novembre
Anonim
Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet
Cascade of Shift Registers 74HC595 controlat mitjançant Arduino i Ethernet

Avui m'agradaria presentar un projecte que he implementat en dues versions. El projecte utilitza 12 registres de desplaçament 74HC595 i 96 LEDs, placa Arduino Uno amb blindatge Ethernet Wiznet W5100. Es connecten 8 LEDs a cada registre de torns. Els números del 0 al 9 estan representats per LEDs. Cada registre de torns està equipat amb 8 terminals de sortida.

Cadascun dels 4 registres de desplaçament 74HC595 forma una unitat lògica: una pantalla per llistar un número de 4 dígits. En total, hi ha 3 visualitzacions lògiques al projecte que consisteixen en 12 registres de torns.

Les implementacions són compatibles per a les plaques Arduino Nano, Mega, Uno i per a blindatges i mòduls Ethernet de la família Wiznet, específicament els models W5100 i W5500 (mitjançant la biblioteca Ethernet2).

Subministraments

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • Registre de 4 fins a 12 torns 74HC595
  • 32 fins a 96 díodes LED

Pas 1: Implementacions implementades al projecte amb Arduino:

  • Servidor web: servidor HTTP que s’executa directament a Arduino, permet interpretar codi HTML
  • WebClient: client capaç de fer una sol·licitud HTTP a un servidor remot, enviar / descarregar dades

Servidor web:

  • Proporciona una pàgina web HTML amb un formulari que us permet introduir 3 números de quatre dígits.
  • Després d’enviar el formulari, les dades es processen i s’emmagatzemen a la memòria EEPROM i s’informa a l’usuari sobre el processament de dades per una subpàgina diferent.
  • Després de desar les dades, l'usuari es redirigeix al formulari.
  • La memòria EEPROM és independent de l'energia, les dades són accessibles fins i tot després de la recuperació d'energia, però també es reinicia la placa.
  • Totes les xifres es representen en tres pantalles que consten de 12 registres de desplaçament 74HC595.

Client web:

  • La comunicació amb el servidor web té lloc cada 5 segons després del protocol
  • El servidor web executa una aplicació web PHP que us permet introduir 3 números de quatre dígits mitjançant el formulari HTML.
  • Les dades del formulari s’emmagatzemen en una base de dades MySQL.
  • Arduino sol·licita recuperar dades d'aquesta base de dades mitjançant una consulta al servidor.
  • Les dades processades són analitzades per Arduino, i després es representen mitjançant registres de desplaçament 74HC595.
  • Les dades també s’emmagatzemen a la memòria EEPROM de l’Arduino, s’utilitzen en cas que falla la connexió al servidor web / quan es reinicien les plaques Arduino, s’utilitzen per a la representació inicial de les dades als registres de desplaçament.
  • Les dades es sobreescriuen a l'EEPROM només quan les dades canvien, les cel·les d'EEPROM es guarden de sobreescriptures innecessàries.

Pas 2: Cablatge i captura de pantalla

Cablatge i captura de pantalla
Cablatge i captura de pantalla
Cablatge i captura de pantalla
Cablatge i captura de pantalla

Connexió en cascada per als registres de desplaçament 74HC595 (es pot ampliar per x més): exporteu des de TinkerCAD. La captura de pantalla es troba des de la interfície del servidor web, quan obté dades mitjançant formulari HTML, les processa i les desa a la memòria EEPROM.

Pas 3: 74HC595 + Codis font

Del diagrama queda clar que només s’utilitzen 3 cables de dades per controlar els registres de desplaçament:

  • Sortida de dades - (SER a 74HC595)
  • Sortida de rellotge - (SRCLK el 74HC595)
  • Latch Outlet - (RCLK a 74HC595)

Els registres de desplaçament es poden combinar en cascada, mentre que altres perifèrics també es poden controlar mitjançant registres de desplaçament, per exemple, relés per commutar elements de potència. També és possible controlar 500 relés separats (amb un nombre suficient de registres de desplaçament i font d'alimentació) amb una sortida de dades.

Quan es controlen les sortides dels registres, també és possible modificar l'ordre de bytes al bit més significatiu - MSB FIRST o a LSB - el bit menys significatiu. Com a resultat, inverteix les sortides. En un cas, per exemple, s’encenen 7 díodes, en l’altre cas, 1 díode en funció de l’ordre d’entrada i bytes.

Ambdues implementacions utilitzen memòria EEPROM, que pot emmagatzemar dades fins i tot després d'una fallada de corrent o després d'un reinici de la placa. El segon ús d’aquesta memòria és també la possibilitat de representar les darreres dades conegudes en cas que no sigui possible comunicar-se amb el servidor web (error de connectivitat, servidor).

La memòria està limitada a 10.000 a 100.000 transcripcions. Les implementacions estan dissenyades per a la mínima càrrega de memòria possible. Les dades no se sobreescriuran quan es canviïn. Si es llegeixen les mateixes dades des del servidor o client web, no se sobreescriuran a la memòria EEPROM.

La implementació de programari (costat Arduino) per a WebClient es pot provar gratuïtament a:

Arduino es comunica amb una interfície web en la qual és possible modificar 3 números de quatre dígits:

Demaneu codi per a Arduino com a servidor web a: [email protected] Doneu més instruccions:

Recomanat: