Innehållsförteckning:

Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet: 3 steg
Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet: 3 steg

Video: Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet: 3 steg

Video: Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet: 3 steg
Video: Зеркало Регистратор + Установка 2024, November
Anonim
Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet
Kaskad av skiftregister 74HC595 kontrollerad via Arduino och Ethernet

Idag skulle jag vilja presentera ett projekt som jag har genomfört i två versioner. Projektet använder 12 skiftregister 74HC595 och 96 lysdioder, Arduino Uno -kort med Ethernet -sköld Wiznet W5100. 8 lysdioder är anslutna till varje skiftregister. Siffrorna 0-9 representeras av lysdioder. Varje skiftregister är utrustat med 8 utgångsterminaler.

Var och en av de 4 skiftregistren 74HC595 bildar en logisk enhet - en display för att ange ett fyrsiffrigt nummer. Totalt finns det tre logiska displayer i projektet som består av 12 skiftregister.

Implementeringarna är kompatibla för Arduino -kort Nano, Mega, Uno och för Ethernet -sköldar och moduler från Wiznet -familjen, specifikt modellerna W5100 och W5500 (med Ethernet2 -biblioteket).

Tillbehör

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 upp till 12 skiftregister 74HC595
  • 32 upp till 96 LED -dioder

Steg 1: Implementerade implementeringar i projektet med Arduino:

  • Webbserver - HTTP -server som körs direkt på Arduino, gör det möjligt att tolka HTML -kod
  • WebClient - Klient som kan göra en HTTP -begäran till en fjärrserver, skicka / ladda ner data

Webbserver:

  • Ger en HTML-webbsida med ett formulär som låter dig ange tre fyrsiffriga nummer.
  • Efter att formuläret har skickats behandlas och lagras data i EEPROM -minnet, användaren informeras om databehandlingen av en separat undersida.
  • Efter att ha sparat data omdirigeras användaren tillbaka till formuläret.
  • EEPROM -minne är energioberoende, data är tillgänglig även efter strömåtervinning, men också omstart av kortet.
  • Alla nummer representeras sedan på tre displayer bestående av 12 74HC595 skiftregister.

WebClient:

  • Kommunikation med webbservern sker var femte sekund efter HTTP -protokollet.
  • Webbservern kör en PHP-webbapplikation som låter dig ange tre fyrsiffriga nummer via HTML-formuläret.
  • Data från formuläret lagras i en MySQL -databas.
  • Arduino begär att hämta data från denna databas via en fråga till servern.
  • De bearbetade data analyseras av Arduino och plottas sedan med hjälp av skiftregister 74HC595.
  • Data lagras också i EEPROM -minnet på Arduino, de används om anslutningen till webbservern misslyckas / när Arduino -korten startas om används de för den första återgivningen av data i skiftregistren.
  • Data skrivs över i EEPROM endast när data ändras, EEPROM -cellerna sparas från onödig överskrivning.

Steg 2: Kabeldragning och skärmdump

Kabeldragning och skärmdump
Kabeldragning och skärmdump
Kabeldragning och skärmdump
Kabeldragning och skärmdump

Kaskadanslutning för skiftregister 74HC595 (kan förlängas med x mer) - Exportera från TinkerCAD. Skärmdump finns från webbservergränssnittet, när det får data via HTML -formulär, bearbeta dem och spara dem i EEPROM -minne.

Steg 3: 74HC595 + källkoder

Det framgår tydligt av diagrammet att endast 3 datatrådar används för att styra skiftregistren:

  • Datauttag - (SER till 74HC595)
  • Klockutgång - (SRCLK på 74HC595)
  • Låsuttag - (RCLK till 74HC595)

Skiftregister kan kombineras i en kaskad, medan andra kringutrustning också kan styras av skiftregister - till exempel reläer för växling av effektelement. Det är också möjligt att styra 500 separata reläer (med ett tillräckligt antal skiftregister och strömförsörjning) med en datautgång.

När du styr utmatningarna från registren är det också möjligt att ändra byteordningen till den mest signifikanta biten - MSB FIRST eller till LSB - den minst signifikanta biten. Som ett resultat inverterar det utgångarna. I ett fall tänds till exempel 7 dioder, i det andra fallet 1 diod beroende på ingång och byteordning.

Båda implementeringarna använder EEPROM -minne, som kan lagra data även efter ett strömavbrott eller efter en omstart av kortet. Den andra användningen av detta minne är också möjligheten att representera de senast kända data om det inte är möjligt att kommunicera med webbservern (anslutningsfel, server).

Minnet är begränsat till 10 000 till 100 000 transkript. Implementeringarna är utformade för minsta möjliga minnesbelastning. Data kommer inte att skrivas över när de ändras. Om samma data läses från webbservern / klienten skrivs de inte över i EEPROM -minnet.

Programvaruimplementering (Arduino-sida) för WebClient kan provas gratis på:

Arduino kommunicerar med ett webbgränssnitt där det är möjligt att ändra tre fyrsiffriga nummer:

Be om kod för Arduino som webbserver på: [email protected] Donera för fler instruktioner:

Rekommenderad: