Inhoudsopgave:

Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet - Ajarnpa
Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet - Ajarnpa

Video: Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet - Ajarnpa

Video: Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet - Ajarnpa
Video: COUNTER : 7 segment aansturen met shift register 74HC595 2024, Juli-
Anonim
Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet
Cascade van schuifregisters 74HC595 bestuurd via Arduino en Ethernet

Vandaag wil ik een project presenteren dat ik in twee versies heb geïmplementeerd. Het project maakt gebruik van 12 schuifregisters 74HC595 en 96 LED's, Arduino Uno-bord met Ethernet-schild Wiznet W5100. Op elk schuifregister zijn 8 LED's aangesloten. De cijfers 0-9 worden weergegeven door LED's. Elk schuifregister is uitgerust met 8 uitgangsklemmen.

Elk van de 4 schuifregisters 74HC595 vormt een logische eenheid - een display voor het weergeven van een 4-cijferig nummer. In totaal zijn er 3 logische displays in het project bestaande uit 12 schuifregisters.

De implementaties zijn compatibel voor Arduino-boards Nano, Mega, Uno en voor Ethernet-shields en -modules uit de Wiznet-familie, met name modellen W5100 en W5500 (met behulp van de Ethernet2-bibliotheek).

Benodigdheden

  • Arduino Uno/Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 t/m 12 schuifregister 74HC595
  • 32 tot 96 LED-diodes

Stap 1: Geïmplementeerde implementaties in het project met Arduino:

  • Webserver - HTTP-server die rechtstreeks op Arduino draait, maakt het mogelijk om HTML-code te interpreteren
  • WebClient - Client die een HTTP-verzoek kan doen naar een externe server, gegevens verzenden / downloaden

Web Server:

  • Biedt een HTML-webpagina met een formulier waarmee u 3 viercijferige nummers kunt invoeren.
  • Na het versturen van het formulier worden de gegevens verwerkt en opgeslagen in het EEPROM-geheugen, de gebruiker wordt via een aparte subpagina geïnformeerd over de gegevensverwerking.
  • Na het opslaan van de gegevens wordt de gebruiker teruggeleid naar het formulier.
  • EEPROM-geheugen is energieonafhankelijk, gegevens zijn toegankelijk, zelfs na stroomherstel, maar ook opnieuw opstarten van de kaart.
  • Alle nummers worden dan weergegeven op drie displays bestaande uit 12 74HC595 schuifregisters.

Web cliënt:

  • Communicatie met de webserver vindt elke 5 seconden plaats na het
  • De webserver draait een PHP-webtoepassing waarmee u via het HTML-formulier 3 viercijferige getallen kunt invoeren.
  • De gegevens uit het formulier worden opgeslagen in een MySQL-database.
  • Arduino vraagt om gegevens uit deze database op te halen via een query naar de server.
  • De verwerkte gegevens worden geparseerd door Arduino en vervolgens geplot met behulp van schuifregisters 74HC595.
  • De gegevens worden ook opgeslagen in het EEPROM-geheugen van de Arduino, ze worden gebruikt in het geval dat de verbinding met de webserver uitvalt / wanneer de Arduino-boards opnieuw worden gestart, worden ze gebruikt voor de eerste weergave van de gegevens op de schuifregisters.
  • De gegevens worden alleen overschreven in de EEPROM wanneer de gegevens veranderen, de EEPROM-cellen worden gespaard van onnodig overschrijven.

Stap 2: Bedrading & Screenshot

Bedrading en schermafbeelding
Bedrading en schermafbeelding
Bedrading en schermafbeelding
Bedrading en schermafbeelding

Cascadeverbinding voor schuifregisters 74HC595 (kan met x meer worden uitgebreid) - Exporteren vanuit TinkerCAD. Screenshot is er vanaf de webserverinterface, wanneer het gegevens via HTML-formulier ontvangt, verwerkt en opslaat in EEPROM-geheugen.

Stap 3: 74HC595 + broncodes

Uit het schema blijkt duidelijk dat er slechts 3 datadraden worden gebruikt om de schuifregisters aan te sturen:

  • Gegevensuitgang - (SER tot 74HC595)
  • Klokuitgang - (SRCLK op 74HC595)
  • Vergrendelingsuitgang - (RCLK tot 74HC595)

Schuifregisters kunnen in een cascade worden gecombineerd, terwijl andere randapparatuur ook kan worden bestuurd door schuifregisters - bijvoorbeeld relais voor het schakelen van vermogenselementen. Het is ook mogelijk om 500 afzonderlijke relais (met voldoende schuifregisters en voeding) aan te sturen met één data-uitgang.

Bij het besturen van de uitgangen van de registers is het ook mogelijk om de bytevolgorde te wijzigen naar de meest significante bit - MSB FIRST of naar LSB - de minst significante bit. Als gevolg hiervan keert het de uitgangen om. In het ene geval branden bijvoorbeeld 7 diodes, in het andere geval 1 diode afhankelijk van de ingang en bytevolgorde.

Beide implementaties gebruiken EEPROM-geheugen, dat zelfs na een stroomstoring of na een herstart van de kaart gegevens kan opslaan. Het tweede gebruik van dit geheugen is ook de mogelijkheid om de laatst bekende gegevens weer te geven in het geval het niet mogelijk is om met de webserver te communiceren (verbindingsfout, server).

Het geheugen is beperkt tot 10.000 tot 100.000 transcripten. Implementaties zijn ontworpen voor zo min mogelijk geheugenbelasting. De gegevens worden niet overschreven wanneer ze worden gewijzigd. Als dezelfde gegevens van de webserver/client worden uitgelezen, worden deze niet in het EEPROM-geheugen overschreven.

Software-implementatie (Arduino-kant) voor WebClient kan gratis worden geprobeerd op:

Arduino communiceert met een webinterface waarin het mogelijk is om 3 viercijferige nummers aan te passen:

Vraag om code voor Arduino als webserver op: [email protected] voor meer instructables:

Aanbevolen: