Obsah:

Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet: 3 kroky
Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet: 3 kroky

Video: Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet: 3 kroky

Video: Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet: 3 kroky
Video: VU metr with ATmega8 V2 2024, Červenec
Anonim
Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet
Kaskáda posuvných registrů 74HC595 řízená přes Arduino a Ethernet

Dnes bych chtěl představit projekt, který jsem implementoval ve dvou verzích. Projekt využívá 12 posuvných registrů 74HC595 a 96 LED, desku Arduino Uno s ethernetovým štítem Wiznet W5100. Ke každému posuvnému registru je připojeno 8 LED. Čísla 0-9 jsou znázorněna LED diodami. Každý posuvný registr je vybaven 8 výstupními svorkami.

Každý ze 4 posuvných registrů 74HC595 tvoří logickou jednotku - displej pro výpis 4místného čísla. Celkem jsou v projektu 3 logické displeje sestávající z 12 posuvných registrů.

Implementace jsou kompatibilní pro desky Arduino Nano, Mega, Uno a pro ethernetové štíty a moduly z rodiny Wiznet, konkrétně modely W5100 a W5500 (pomocí knihovny Ethernet2).

Zásoby

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • Posuvný registr 4 až 12 74HC595
  • 32 až 96 LED diod

Krok 1: Implementované implementace v projektu s Arduino:

  • Webový server - HTTP server běžící přímo na Arduinu, umožňuje interpretaci HTML kódu
  • WebClient - klient schopný odeslat požadavek HTTP na vzdálený server, odesílat / stahovat data

Webový server:

  • Poskytuje webovou stránku HTML s formulářem, který vám umožňuje zadat 3 čtyřmístná čísla.
  • Po odeslání formuláře jsou data zpracována a uložena do paměti EEPROM, uživatel je o zpracování dat informován samostatnou podstránkou.
  • Po uložení dat je uživatel přesměrován zpět do formuláře.
  • Paměť EEPROM je energeticky nezávislá, data jsou přístupná i po obnovení napájení, ale také restartu desky.
  • Všechna čísla jsou pak reprezentována na třech displejích skládajících se z 12 posuvných registrů 74HC595.

Webový klient:

  • Komunikace s webovým serverem probíhá každých 5 sekund po protokolu
  • Na webovém serveru je spuštěna webová aplikace PHP, která vám umožňuje zadat 3 čtyřmístná čísla prostřednictvím formuláře HTML.
  • Data z formuláře jsou uložena v databázi MySQL.
  • Arduino požaduje načtení dat z této databáze pomocí dotazu na server.
  • Zpracovaná data jsou analyzována Arduinem a poté vykreslena pomocí posuvných registrů 74HC595.
  • Data jsou také uložena v paměti EEPROM Arduina, používají se v případě selhání připojení k webovému serveru / při restartu desek Arduino slouží k počátečnímu vykreslení dat na posuvných registrech.
  • Data jsou v EEPROM přepsána pouze při změně dat, buňky EEPROM jsou uloženy před zbytečným přepisem.

Krok 2: Zapojení a snímek obrazovky

Zapojení a snímek obrazovky
Zapojení a snímek obrazovky
Zapojení a snímek obrazovky
Zapojení a snímek obrazovky

Kaskádové připojení pro posuvné registry 74HC595 (lze rozšířit o x více) - Export z TinkerCAD. Screenshot je tam z rozhraní webového serveru, když získává data pomocí HTML formuláře, zpracovává je a ukládá do paměti EEPROM.

Krok 3: 74HC595 + zdrojové kódy

Ze schématu je zřejmé, že k ovládání posuvných registrů se používají pouze 3 datové vodiče:

  • Datový výstup - (SER až 74HC595)
  • Hodinový výstup - (SRCLK na 74HC595)
  • Západkový výstup - (RCLK až 74HC595)

Posuvné registry lze kombinovat v kaskádě, zatímco ostatní periferie lze ovládat také posuvnými registry - například relé pro spínání výkonových prvků. Jedním datovým výstupem je také možné ovládat 500 samostatných relé (s dostatečným počtem posuvných registrů a napájením).

Při ovládání výstupů registrů je také možné upravit pořadí bytů na nejvýznamnější bit - MSB FIRST, nebo na LSB - nejméně významný bit. V důsledku toho invertuje výstupy. V jednom případě například svítí 7 diod, ve druhém případě 1 dioda v závislosti na pořadí vstupů a bytů.

Obě implementace používají paměť EEPROM, která může ukládat data i po výpadku napájení nebo po restartu desky. Druhým využitím této paměti je také schopnost reprezentovat poslední známá data v případě, že není možné komunikovat s webovým serverem (chyba konektivity, server).

Paměť je omezena na 10 000 až 100 000 přepisů. Implementace jsou navrženy tak, aby co nejméně zatěžovaly paměť. Data nebudou přepsána, pokud jsou změněna. Pokud jsou z webového serveru / klienta čtena stejná data, nebudou přepsána v paměti EEPROM.

Softwarovou implementaci (strana Arduino) pro WebClient lze zdarma vyzkoušet na:

Arduino komunikuje s webovým rozhraním, ve kterém je možné upravit 3 čtyřciferná čísla:

Požádejte o kód pro Arduino jako webový server na adrese: [email protected]ínky pro další pokyny:

Doporučuje: