W ARDUINO mamy 20 pinów I / O, więc możemy zaprogramować 20 pinów UNO do wykorzystania jako wejście lub wyjście. Chociaż na kontrolerze ATMEGA328P jest więcej pinów niż na UNO, dzieje się tak dlatego, że podczas projektowania płytki niektóre szpilki są domyślne.
Teraz dla niektórych aplikacji potrzebujemy więcej niż 30 pinów, powiedzmy, jeśli chcemy zaprojektować CUBE LED 5x5x5, więc do tego potrzebujemy 5x5 + 5 = 30 pinów. W takich przypadkach używamy chipów konwertera szeregowego na równoległy lub rejestru przesuwnego. Chip rejestru przesuwnego pobiera dane szeregowo z płyty UNO i przekazuje dane wyjściowe w 8-bitowej konfiguracji równoległej.
Wymagane składniki
Sprzęt: płytka Arduino uno, piny łączące, rezystor 220Ω, dioda LED (osiem sztuk), układ 74HC595, płytka na chleb.
Oprogramowanie: Arduino nightly
Schemat obwodu i objaśnienie robocze
Tutaj będziemy wysyłać dane o rozmiarze ośmiu bitów przez pojedynczy kanał do rejestru przesuwnego. Rejestr przesuwny przyjmuje dane szeregowo i przechowuje je w swojej pamięci. Gdy dane zostaną przesłane przez kontroler, wyślemy polecenie do rejestru przesuwnego, aby wyświetlić dane na wyjściu, przy czym to polecenie rejestr przesuwny wyprowadza dane równolegle.
Wyjście to jest sygnalizowane przez osiem diod LED podłączonych do wyjścia.
Aby podłączyć rejestr przesuwny do Arduino UNO, musimy zrobić dwie rzeczy:
|
Najpierw musimy ustawić dowolne trzy piny UNO jako wyjście. Następnie musimy podłączyć pin cyfrowy, pin zegara i pin zatrzaskowy do tych trzech pinów wyjściowych. Następnie musimy powiedzieć UNO, który pin chipa jest podłączony do pinów płyty UNO. Odbywa się to poprzez proste wpisanie polecenia „
shiftOut(dataPin, clockPin, data);
”. Dane w tym miejscu mogą być binarne, dziesiętne lub szesnastkowe. Ośmiobitowe informacje, które należy przesłać, są zapisywane w miejsce „danych”.
Przesyłane dane są realizowane w następujący sposób:
Wyłącz zatrzask, to mówi chipowi, aby na razie nie pokazywał wyjścia.
Osiem razy będziemy wysyłać dane z zegarem szeregowo, więc zegar wysoki, niski zegar danych, niski i tak dalej.
Włącz zatrzask, to mówi chipowi, aby wyświetlał ośmiobitowe dane.
Działanie ARDUINO z SHIFT REGISTER jest wyjaśnione krok po kroku w kodzie C podanym poniżej: