U ARDUINO imamo 20 I / O pinova, tako da možemo programirati 20 pinova UNO koji će se koristiti kao ulaz ili izlaz. Iako na upravljaču ATMEGA328P ima više iglica nego na UNO-u, to je zato što su tijekom dizajniranja ploče neke iglice zadane.
Sada nam za neke aplikacije treba više od 30 pinova, recimo ako želimo dizajnirati LED CUBE 5x5x5, tako da za to trebamo 5x5 + 5 = 30pinova. U takvim slučajevima koristimo serijske i paralelne pretvaračke čipove ili registar pomaka. Čip registra pomaka serijski uzima podatke s UNO ploče i daje izlaz u 8-bitnoj paralelnoj konfiguraciji.
Komponente potrebne
Hardver: Arduino uno ploča, priključne igle, otpor 220Ω, LED (osam komada), 74HC595 IC, ploča za kruh.
Softver: Arduino svake noći
Kružni dijagram i radno objašnjenje
Ovdje ćemo poslati podatke u veličini od osam bitova kroz jedan kanal za pomicanje registra. Registar pomaka podatke uzima serijski i pohranjuje ih u svoju memoriju. Jednom kada podatke pošalje kontroler, poslat ćemo naredbu za pomicanje registra za prikaz podataka na izlazu, s ovom naredbom pomični registar paralelno izbacuje podatke.
Ovaj izlaz prikazuje osam LED-a povezanih na izlazu.
Za povezivanje registra smjene s Arduino UNO moramo učiniti dvije stvari:
|
Prvo trebamo postaviti bilo koja tri klina UNO-a kao izlaz. Zatim na ove tri izlazne igle moramo spojiti digitalni zatik, zatik sata i zatik zasuna. Nakon toga moramo UNO-u reći koji je pin čipa povezan s pinovima UNO ploče. To se postiže jednostavnim upisivanjem naredbe "
shiftOut(dataPin, clockPin, data);
". Podaci ovdje mogu biti u binarnom ili decimalnom ili heksadecimalnom obliku. Osmobitne informacije koje treba poslati napisane su umjesto "podataka".
Poslani podaci obavljaju se kao:

Onemogućite zasun, ovo govori čipu da za sada ne prikazuje izlaz.
Osam puta ćemo podatke slati sa satom serijski, tako da je sat nizak i tako dalje.
Omogući zasun, ovo govori čipu da prikazuje osmobitne podatke.
Rad ARDUINO-a sa SHIFT REGISTER-om objašnjen je korak po korak u C kodu datom u nastavku:
