Inhaltsverzeichnis:

Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet - Gunook
Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet - Gunook

Video: Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet - Gunook

Video: Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet - Gunook
Video: BitBastelei #63 TFT-Nachschlag: VGA vs. DVI Basics 2024, Juli
Anonim
Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet
Kaskade von Schieberegistern 74HC595, gesteuert über Arduino und Ethernet

Heute möchte ich ein Projekt vorstellen, das ich in zwei Versionen umgesetzt habe. Das Projekt verwendet 12 Schieberegister 74HC595 und 96 LEDs, Arduino Uno-Board mit Ethernet-Shield Wiznet W5100. An jedes Schieberegister sind 8 LEDs angeschlossen. Die Zahlen 0-9 werden durch LEDs dargestellt. Jedes Schieberegister ist mit 8 Ausgangsanschlüssen ausgestattet.

Jedes der 4 Schieberegister 74HC595 bildet eine logische Einheit - ein Display zum Auflisten einer 4-stelligen Zahl. Insgesamt gibt es im Projekt 3 logische Anzeigen bestehend aus 12 Schieberegistern.

Die Implementierungen sind kompatibel für Arduino-Boards Nano, Mega, Uno und für Ethernet-Shields und -Module der Wiznet-Familie, insbesondere die Modelle W5100 und W5500 (unter Verwendung der Ethernet2-Bibliothek).

Lieferungen

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 bis 12 Schieberegister 74HC595
  • 32 bis 96 LED-Dioden

Schritt 1: Implementierte Implementierungen im Projekt mit Arduino:

  • Webserver - HTTP-Server, der direkt auf Arduino läuft, ermöglicht die Interpretation von HTML-Code
  • WebClient - Client, der eine HTTP-Anfrage an einen Remote-Server senden und Daten senden / herunterladen kann

Webserver:

  • Stellt eine HTML-Webseite mit einem Formular bereit, in das Sie 3 vierstellige Zahlen eingeben können.
  • Nach Absenden des Formulars werden die Daten verarbeitet und im EEPROM-Speicher abgelegt, der Nutzer wird auf einer gesonderten Unterseite über die Datenverarbeitung informiert.
  • Nach dem Speichern der Daten wird der Benutzer zurück zum Formular geleitet.
  • Der EEPROM-Speicher ist energieunabhängig, Daten sind auch nach Netzwiederkehr, aber auch nach Neustart der Platine zugänglich.
  • Alle Zahlen werden dann auf drei Displays dargestellt, die aus 12 74HC595-Schieberegistern bestehen.

WebClient:

  • Die Kommunikation mit dem Webserver erfolgt alle 5 Sekunden nach dem
  • Auf dem Webserver läuft eine PHP-Webanwendung, die Ihnen die Eingabe von 3 vierstelligen Zahlen über das HTML-Formular ermöglicht.
  • Die Daten aus dem Formular werden in einer MySQL-Datenbank gespeichert.
  • Arduino fordert über eine Abfrage an den Server an, Daten aus dieser Datenbank abzurufen.
  • Die verarbeiteten Daten werden von Arduino geparst und dann mit den Schieberegistern 74HC595 geplottet.
  • Die Daten werden auch im EEPROM-Speicher des Arduino gespeichert, sie werden verwendet, falls die Verbindung zum Webserver fehlschlägt / wenn die Arduino-Boards neu gestartet werden, werden sie zum ersten Rendern der Daten auf den Schieberegistern verwendet.
  • Die Daten werden im EEPROM nur überschrieben, wenn sich die Daten ändern, die EEPROM-Zellen werden vor unnötigem Überschreiben bewahrt.

Schritt 2: Verkabelung & Screenshot

Verkabelung & Screenshot
Verkabelung & Screenshot
Verkabelung & Screenshot
Verkabelung & Screenshot

Kaskadenverbindung für Schieberegister 74HC595 (kann um x mehr erweitert werden) - Export aus TinkerCAD. Screenshot ist von der Webserver-Schnittstelle da, wenn es Daten per HTML-Formular erhält, verarbeitet und speichert sie im EEPROM-Speicher.

Schritt 3: 74HC595 + Quellcodes

Aus dem Diagramm ist ersichtlich, dass zur Steuerung der Schieberegister nur 3 Datenleitungen verwendet werden:

  • Datenausgang - (SER bis 74HC595)
  • Taktausgang - (SRCLK auf 74HC595)
  • Verriegelungsausgang - (RCLK bis 74HC595)

Schieberegister können zu einer Kaskade zusammengefasst werden, andere Peripheriegeräte lassen sich ebenfalls über Schieberegister ansteuern – zum Beispiel Relais zum Schalten von Leistungsteilen. Es ist auch möglich 500 separate Relais (bei ausreichender Anzahl von Schieberegistern und Stromversorgung) mit einem Datenausgang anzusteuern.

Bei der Steuerung der Ausgänge der Register ist es auch möglich, die Bytereihenfolge auf das höchstwertige Bit - MSB FIRST oder auf LSB - das niedrigstwertige Bit zu ändern. Als Ergebnis invertiert es die Ausgänge. Im einen Fall leuchten beispielsweise 7 Dioden, im anderen Fall je nach Eingang und Byte-Reihenfolge 1 Diode.

Beide Implementierungen verwenden einen EEPROM-Speicher, der Daten auch nach einem Stromausfall oder nach einem Neustart der Platine speichern kann. Die zweite Verwendung dieses Speichers ist auch die Möglichkeit, die letzten bekannten Daten darzustellen, falls eine Kommunikation mit dem Webserver nicht möglich ist (Verbindungsfehler, Server).

Der Speicher ist auf 10.000 bis 100.000 Transkripte begrenzt. Implementierungen sind für die geringstmögliche Speicherbelastung ausgelegt. Die Daten werden bei einer Änderung nicht überschrieben. Werden die gleichen Daten vom Webserver / Client gelesen, werden diese nicht im EEPROM-Speicher überschrieben.

Die Softwareimplementierung (Arduino-Seite) für den WebClient kann kostenlos ausprobiert werden unter:

Arduino kommuniziert mit einem Webinterface, in dem 3 vierstellige Zahlen geändert werden können:

Fordern Sie Code für Arduino als Webserver an: [email protected] für weitere Anleitungen:

Empfohlen: