V ARDUINO máme 20 I / O pinov, takže môžeme naprogramovať 20 pinov UNO na použitie ako vstup alebo výstup. Aj keď na radiči ATMEGA328P je viac pinov ako na UNO, je to tak preto, lebo pri návrhu dosky sú niektoré piny predvolené.
Teraz pre niektoré aplikácie potrebujeme viac ako 30 pinov, povedzme, že ak chceme navrhnúť 5x5x5 LED CUBE, takže na to potrebujeme 5x5 + 5 = 30 pinov. V takýchto prípadoch používame sériovo-paralelné prevodníkové čipy alebo posuvný register. Čip posuvného registra berie dáta z dosky UNO sériovo a dáva výstup v 8 bitovej paralelnej konfigurácii.
Súčasti sú povinné
Hardware: doska Arduino uno, pripájacie kolíky, odpor 220Ω, LED (osem kusov), 74HC595 IC, chlebová doska.
Softvér: Arduino každú noc
Schéma zapojenia a pracovné vysvetlenie
Tu budeme posielať dáta v osembitovej veľkosti cez jeden kanál do posuvného registra. Posuvný register berie dáta sériovo a uloží ich do svojej pamäte. Akonáhle dáta pošle kontrolór, pošleme príkaz do posuvného registra, aby sme zobrazili údaje na výstupe, týmto príkazom posuvný register dáva dáta paralelne.
Tento výstup je zobrazený ôsmimi LED pripojenými na výstupe.
Pre pripojenie posuvného registra k Arduino UNO musíme urobiť dve veci:
|
Najskôr musíme ako výstup nastaviť akékoľvek tri piny UNO. Potom musíme k týmto trom výstupným pinom pripojiť digitálny pin, pin hodín a pin západky. Potom musíme UNO povedať, ktorý pin čipu je pripojený k pinom dosky UNO. To sa deje jednoduchým zápisom do príkazu „
shiftOut(dataPin, clockPin, data);
“. Údaje tu môžu byť binárne, desatinné alebo hexadecimálne. Osembitová informácia, ktorú je potrebné odoslať, sa napíše namiesto „údajov“.
Odosielané údaje sa vykonávajú ako:
Zakázať západku, toto čipu povie, aby nateraz nezobrazoval výstup.
Osemkrát budeme posielať údaje s hodinami sériovo, takže hodiny vysoké, nízke údaje, hodiny nízke a tak ďalej.
Povoliť západku, toto povie čipu, aby zobrazoval osembitové údaje.
Práca ARDUINO s SHIFT REGISTEROM je vysvetlená krok za krokom v C kóde uvedenom nižšie: