Jak Podłączyć Rejestr Przesuwny Do Arduino?

Spisu treści:

Jak Podłączyć Rejestr Przesuwny Do Arduino?
Jak Podłączyć Rejestr Przesuwny Do Arduino?

Wideo: Jak Podłączyć Rejestr Przesuwny Do Arduino?

Wideo: Jak Podłączyć Rejestr Przesuwny Do Arduino?
Wideo: How to Add Outputs to an #Arduino using a Shift Register - The Learning Circuit 2024, Może
Anonim

W jednym z poprzednich artykułów już pokrótce poruszyliśmy użycie rejestru przesuwnego, w szczególności 74HC595. Przyjrzyjmy się bliżej możliwościom i procedurze pracy z tym mikroukładem.

Rejestr zmian 74HC595
Rejestr zmian 74HC595

Niezbędny

  • - Arduino;
  • - rejestr przesuwny 74HC595;
  • - przewody łączące.

Instrukcje

Krok 1

Rejestr przesuwny 74HC595 i tym podobne są używane jako urządzenia do konwersji danych szeregowych na równoległe, a także mogą być używane jako „zatrzask” dla danych, utrzymujący przesłany stan.

Pinout (pinout) pokazano na rysunku po lewej stronie. Ich cel jest następujący.

Q0… Q7 - równoległe wyjścia danych;

GND - masa (0 V);

Q7 '- szeregowe wyjście danych;

^ MR - reset mastera (aktywny niski);

SHcp - wejście zegara rejestru przesuwnego;

STcp - wejście impulsowe "zatrzaskowe";

^ OE - załączenie wyjścia (aktywny niski);

Ds - szeregowe wejście danych;

Vcc - zasilanie +5 V.

Strukturalnie mikroukład jest wykonywany w kilku rodzajach przypadków; Użyję tego pokazanego na rysunku po prawej - wyjście - ponieważ jest łatwiejszy w użyciu z płytką do krojenia chleba.

Shift register wygląd i pinout
Shift register wygląd i pinout

Krok 2

Przypomnę pokrótce interfejs szeregowy SPI, którego użyjemy do przesyłania danych do rejestru przesuwnego.

SPI to czteroprzewodowy dwukierunkowy interfejs szeregowy, w którym uczestniczą master i slave. Master w naszym przypadku będzie Arduino, slave będzie rejestrował 74HC595.

Środowisko programistyczne dla Arduino posiada wbudowaną bibliotekę do pracy na interfejsie SPI. Podczas jego stosowania wykorzystywane są wnioski zaznaczone na rysunku:

SCLK - wyjście zegara SPI;

MOSI - dane od mastera do slave'a;

MISO - dane od slave do master;

SS - wybór slave'a.

Standardowe piny SPI płytki Arduino
Standardowe piny SPI płytki Arduino

Krok 3

Złóżmy obwód jak na zdjęciu.

Podłączę również analizator logiczny do wszystkich pinów mikroukładu rejestru przesuwnego. Za jego pomocą zobaczymy, co dzieje się na poziomie fizycznym, jakie sygnały dokąd zmierzają i dowiemy się, co one oznaczają. Powinno wyglądać jak na zdjęciu.

Schemat połączeń dla rejestru przesuwnego 74HC595 do Arduino
Schemat połączeń dla rejestru przesuwnego 74HC595 do Arduino

Krok 4

Napiszmy taki szkic i załadujmy go do pamięci Arduino.

Zmienna PIN_SPI_SS jest wewnętrzną standardową stałą, która odpowiada pinowi „10” Arduino, gdy jest używany jako master interfejsu SPI, którego tutaj używamy. W zasadzie równie dobrze moglibyśmy użyć dowolnego innego pinu cyfrowego w Arduino; wtedy musielibyśmy go zadeklarować i ustawić jego tryb pracy.

Podając ten pin LOW, aktywujemy nasz rejestr przesuwny do nadawania/odbierania. Po transmisji ponownie podnosimy napięcie na WYSOKIE i wymiana się kończy.

Szkic demonstrujący działanie rejestru przesuwnego
Szkic demonstrujący działanie rejestru przesuwnego

Krok 5

Zamieńmy nasz obwód w pracę i zobaczmy, co pokazuje nam analizator stanów logicznych. Ogólny widok wykresu czasowego pokazano na rysunku.

Niebieska linia przerywana pokazuje 4 linie SPI, czerwona linia przerywana pokazuje 8 kanałów równoległych danych rejestru przesuwnego.

Punkt A na skali czasu to moment przeniesienia liczby „210” do rejestru przesuwnego, B to moment zapisania liczby „0”, C to cykl powtarzający się od początku.

Jak widać, od A do B - 10,03 milisekund, a od B do C - 90,12 milisekund, prawie tak, jak prosiliśmy na szkicu. Małym dodatkiem w 0, 03 i 0,12 ms jest czas przesyłania danych szeregowych z Arduino, więc nie mamy tu dokładnie 10 i 90 ms.

Schemat czasowy wymiany i rejestru przesuwnego Arduino 74HC595
Schemat czasowy wymiany i rejestru przesuwnego Arduino 74HC595

Krok 6

Przyjrzyjmy się bliżej sekcji A.

Na samej górze znajduje się długi impuls, którym Arduino inicjuje transmisję na linii SPI-ENABLE - wybór slave'a. W tym czasie zaczynają się generować impulsy zegarowe SPI-CLOCK (druga linia od góry), 8 sztuk (do przesyłania 1 bajta).

Kolejna linia od góry to SPI-MOSI - dane, które przenosimy z Arduino do rejestru przesuwnego. To jest nasza liczba "210" w systemie binarnym - "11010010".

Po zakończeniu przesyłania, na końcu impulsu SPI-ENABLE widzimy, że rejestr przesuwny ustawił taką samą wartość na swoich 8 nogach. Podkreśliłem to niebieską przerywaną linią i oznaczyłem wartości dla jasności.

Ustawienie numeru 210 na szynie równoległej przez SPI
Ustawienie numeru 210 na szynie równoległej przez SPI

Krok 7

Zwróćmy teraz uwagę na sekcję B.

Ponownie wszystko zaczyna się od wybrania urządzenia podrzędnego i wygenerowania 8 impulsów zegarowych.

Dane na linii SPI-MOSI to teraz „0”. Oznacza to, że w tym momencie wpisujemy do rejestru liczbę „0”.

Ale dopóki transfer nie zostanie zakończony, rejestr przechowuje wartość „11010010”. Jest wyprowadzany na równoległe piny Q0.. Q7 i jest wyprowadzany, gdy w linii od równoległego wyjścia Q7 'do linii SPI-MISO, którą widzimy tutaj, występują impulsy zegarowe.

Ustawienie numeru 0 na szynie równoległej przez SPI
Ustawienie numeru 0 na szynie równoległej przez SPI

Krok 8

W związku z tym szczegółowo przeanalizowaliśmy kwestię wymiany informacji pomiędzy urządzeniem nadrzędnym, którym było Arduino, a rejestrem przesuwnym 74HC595. Nauczyliśmy się, jak podłączyć rejestr przesuwny, zapisywać do niego dane i odczytywać z niego dane.

Zalecana: