Spisu treści:

Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet: 3 kroki
Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet: 3 kroki

Wideo: Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet: 3 kroki

Wideo: Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet: 3 kroki
Wideo: #0529 Biblioteka C, ANALOG INDICATOR - rejestry przesuwne, ekspandery, ADC - AVR 2024, Lipiec
Anonim
Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet
Kaskada rejestrów przesuwnych 74HC595 sterowana przez Arduino i Ethernet

Dziś chciałbym przedstawić projekt, który zrealizowałem w dwóch wersjach. W projekcie wykorzystano 12 rejestrów przesuwnych 74HC595 i 96 diod LED, płytkę Arduino Uno z nakładką Ethernet Wiznet W5100. Do każdego rejestru przesuwnego podłączonych jest 8 diod LED. Liczby 0-9 są reprezentowane przez diody LED. Każdy rejestr przesuwny wyposażony jest w 8 zacisków wyjściowych.

Każdy z 4 rejestrów przesuwnych 74HC595 tworzy logiczną jednostkę - wyświetlacz do wyświetlania 4-cyfrowej liczby. Łącznie w projekcie występują 3 wyświetlacze logiczne składające się z 12 rejestrów przesuwnych.

Implementacje są kompatybilne z płytami Arduino Nano, Mega, Uno oraz nakładkami i modułami Ethernet z rodziny Wiznet, a konkretnie modelami W5100 i W5500 (przy użyciu biblioteki Ethernet2).

Kieszonkowe dzieci

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 do 12 rejestrów przesuwnych 74HC595
  • 32 do 96 diod LED

Krok 1: Wdrożone wdrożenia w projekcie z Arduino:

  • Webserver - serwer HTTP działający bezpośrednio na Arduino, umożliwia interpretację kodu HTML
  • WebClient - Klient zdolny do wysłania żądania HTTP do zdalnego serwera, wysyłania/pobierania danych

Serwer internetowy:

  • Udostępnia stronę internetową HTML z formularzem, który umożliwia wprowadzenie 3 czterocyfrowych liczb.
  • Po przesłaniu formularza dane są przetwarzane i zapisywane w pamięci EEPROM, użytkownik jest informowany o przetwarzaniu danych na osobnej podstronie.
  • Po zapisaniu danych użytkownik zostaje przekierowany z powrotem do formularza.
  • Pamięć EEPROM jest niezależna energetycznie, dane są dostępne nawet po przywróceniu zasilania, ale także po restarcie płyty.
  • Wszystkie liczby są następnie reprezentowane na trzech wyświetlaczach składających się z 12 rejestrów przesuwnych 74HC595.

Klient sieciowy:

  • Komunikacja z serwerem WWW następuje co 5 sekund po protokole
  • Na serwerze WWW działa aplikacja internetowa PHP, która umożliwia wprowadzenie 3 czterocyfrowych liczb za pomocą formularza HTML.
  • Dane z formularza są przechowywane w bazie danych MySQL.
  • Arduino żąda pobrania danych z tej bazy danych poprzez zapytanie do serwera.
  • Przetworzone dane są analizowane przez Arduino, a następnie wykreślane za pomocą rejestrów przesuwnych 74HC595.
  • Dane są również przechowywane w pamięci EEPROM Arduino, są wykorzystywane w przypadku awarii połączenia z serwerem WWW / w przypadku restartu płytek Arduino, służą do wstępnego renderowania danych w rejestrach przesuwnych.
  • Dane w EEPROM są nadpisywane tylko wtedy, gdy dane się zmieniają, komórki EEPROM są zapisywane przed niepotrzebnym nadpisywaniem.

Krok 2: Okablowanie i zrzut ekranu

Okablowanie i zrzut ekranu
Okablowanie i zrzut ekranu
Okablowanie i zrzut ekranu
Okablowanie i zrzut ekranu

Kaskadowe połączenie dla rejestrów przesuwnych 74HC595 (można rozszerzyć o x więcej) - Eksport z TinkerCAD. Screenshot jest tam z interfejsu serwera WWW, gdy pobiera dane za pośrednictwem formularza HTML, przetwarza je i zapisuje w pamięci EEPROM.

Krok 3: 74HC595 + kody źródłowe

Ze schematu jasno wynika, że do sterowania rejestrami przesuwnymi używane są tylko 3 przewody danych:

  • Wyjście danych - (SER do 74HC595)
  • Wyjście zegara - (SRCLK na 74HC595)
  • Wylot zatrzasku - (RCLK do 74HC595)

Rejestry przesuwne można łączyć kaskadowo, a inne peryferia mogą być również sterowane przez rejestry przesuwne – np. przekaźniki do przełączania elementów mocy. Możliwe jest również sterowanie 500 oddzielnymi przekaźnikami (z odpowiednią liczbą rejestrów przesuwnych i zasilaniem) jednym wyjściem danych.

Przy sterowaniu wyjściami rejestrów można również zmienić kolejność bajtów na najbardziej znaczący bit - MSB FIRST lub na LSB - najmniej znaczący bit. W rezultacie odwraca wyjścia. W jednym przypadku świeci się np. 7 diod, w drugim 1 dioda w zależności od wejścia i kolejności bajtów.

Obie implementacje wykorzystują pamięć EEPROM, która może przechowywać dane nawet po awarii zasilania lub po restarcie płyty. Drugim zastosowaniem tej pamięci jest również możliwość reprezentowania ostatnich znanych danych w przypadku braku możliwości komunikacji z serwerem WWW (błąd połączenia, serwer).

Pamięć jest ograniczona do 10 000 do 100 000 transkrypcji. Implementacje są zaprojektowane z myślą o jak najmniejszym obciążeniu pamięci. Dane nie zostaną nadpisane, gdy zostaną zmienione. Jeżeli te same dane są odczytywane z serwera WWW/klienta, nie są one nadpisywane w pamięci EEPROM.

Implementację oprogramowania (strona Arduino) dla WebClient można wypróbować za darmo pod adresem:

Arduino komunikuje się z interfejsem webowym, w którym istnieje możliwość modyfikacji 3 czterocyfrowych liczb:

Poproś o kod dla Arduino jako serwera WWW pod adresem: [email protected] Przekaż więcej instrukcji:

Zalecana: