blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



Kaskáda posuvných registrov 74HC595 ovládaná cez Arduino
pridal deadawp 22.4. 2020 o 3:12



Dnes by som rád predstavil projekt, ktorý som realizoval v dvoch prevedeniach. Projekt využíva 12 posuvných registrov 74HC595 a 96 LED diód, dosku Arduino Uno s Ethernet shieldom Wiznet W5100. Ku každému posuvnému registru je pripojených 8 LED diód. Prestredníctvom LED diód sú reprezentované čísla 0-9. Každý posuvný register je vybavený 8 výstupnými vývodmi.

Každé 4 posuvné registre 74HC595 tvoria logický celok - displej pre výpis 4-ciferného čísla. Celkovo sú teda v projekte 3 logické displeje tvorené 12-timi posuvnými registrami. Implementácie sú kompatibilné pre Arduino dosky Nano, Mega, Uno a pre Ethernet shieldy a moduly z rodiny Wiznet, konkrétne modely W5100 a W5500 (s využitím Ethernet2 knižnice).
Realizované implementácie v projekte s Arduinom:

  • Webserver - HTTP server bežiaci priamo na Arduine, umožňuje interpretovať HTML kód
  • WebClient - Klient schopný vykonať HTTP požiadavku na vzdialený server, odoslať / prevziať dáta

Webserver:

  • Poskytuje HTML webovú stránku s formulárom, prostredníctvom ktorého je možné zadať 3 štvormiestne čísla.
  • Dáta sa po odoslaní formulára spracujú a uložia sa do EEPROM pamäte, používateľ je informovaný o spracovaní dát samostatnou podstránkou.
  • Po uložení dát je používateľ presmerovaný späť na formulár. EEPROM pamäť je energeticky nezávislá, dáta sú prístupné aj po obnovení napájania, ale aj reštarte dosky.
  • Všetky čísla sú následne reprezentované na troch displejoch tvorených 12-timi posuvnými registrami 74HC595.

WebClient:

  • Komunikácia s webserverom prebieha každých 5 sekúnd po HTTP protokole.
  • Na webserveri beží PHP webaplikácia, ktorá umožňuje prostredníctvom formulára zadať 3 štvormiestne čísla.
  • Dáta z formulára sú uložené v MySQL databáze.
  • Arduino požiadavkou načítava dáta z tejto databázy prostredníctvom dopytu na server.
  • Spracované dáta Arduino rozparsuje, následne vykreslí prostredníctvom posuvných registrov 74HC595.
  • Dáta sú uložené aj do EEPROM pamäte Arduina, využívajú sa v prípade, že vypadne spojenie s webserverom / pri reštarte Arduino dosky sú použité pre prvotné vykreslenie dát na posuvné registre.
  • Dáta sa v EEPROM prepisujú až pri zmene dát, šetria sa EEPROM bunky pred zbytočnými prepismi.

Kaskádové zapojenie pre posuvné registre 74HC595 (možno rozšíriť o x ďalších) - Export z TinkerCAD-u:


Screenshot z prevedenia Arduina ako Webservera - odoslanie dát, spracovanie, presmerovanie: 


Zo schémy je zrejmé, že na ovládanie posuvný registrov sa využívajú iba 3 dátové vodiče:

  • Dátový vývod - (SER na 74HC595)
  • Hodinový vývod - (SRCLK na 74HC595)
  • Latch (klopný) vývod - (RCLK na 74HC595)

Posuvné registre je možné kombinovať do kaskády, pričom je možné ovládať posuvnými registrami aj iné periférie - napríklad relé pre spínanie výkonových prvkov. Jedným dátovým vývodom je možné ovládať aj 500 samostatných relé (s dostatočným počtom shift registrov a napájaním). 


Pri ovládaní výstupov registrov je možné modifikovať aj byte order na najvýznamenší bit - MSB FIRST, alebo na LSB - najmenej významený bit. Vo výsledku to invertuje výstupy. V jednom prípade je rozsvietených napríklad 7 diód, v druhom prípade 1 dióda v závisloti od vstupu a byte order.

Obe implementácie využívajú EEPROM pamäť, ktorá dokáže uchovať dáta aj po výpadku napájania, alebo po reštarte dosky. Druhým využitím tejto pamäte je aj možnosť reprezentovať posledné známe dáta v prípade, že nie je možná komunikácia s webserverom (chyba konektivity, servera).

Pamäť je limitovaná na 10-tisíc až 100-tisíc prepisov. Implementácie sú navrhnuté pre čo najmenšiu záťaž pre pamät. Dáta sa prepíšu až pri ich zmene. V prípade načítania rovnakých dát z webservera / klienta sa neprepisujú v EEPROM pamäti.

Programovú implementáciu pre WebClient-a je možné vyskúšať zdarma na adrese: 
http://arduino.clanweb.eu/register-74hc595.php

Arduino komunikuje s webovým rozhraním v ktorom je možné modifikovať 3 štvorciferné čísla: http://arduino.clanweb.eu/led/



Prístupov 5310
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
ULP aplikácie - ESP8266 / ESP32
[ 14.11.2021] (príspevkov 0)
Detekčná charakteristika - MATLAB
[ 8.8.2021] (príspevkov 0)
Práca s obrázkami - MATLAB
[ 19.7.2021] (príspevkov 1)
Flash Encryption a jeho implementácia v ...
[ 18.7.2021] (príspevkov 0)
Secure Boot V1 a jeho implementácia v ES...
[ 13.7.2021] (príspevkov 0)
Senzor Bosch BME280 v prostredí ESP-IDF
[ 8.7.2021] (príspevkov 0)
Podpora ESP32 do projektu WiFi termostat
[ 1.7.2021] (príspevkov 0)
Beamforming vizualizácia - MATLAB
[ 29.6.2021] (príspevkov 0)
Výroba DPS - AISLER - RFID DOMINATOR
[ 18.6.2021] (príspevkov 0)