V ARDUINO máme 20 I / O pinů, takže můžeme naprogramovat 20 pinů UNO, které budou použity buď jako vstup nebo výstup. Ačkoli na řadiči ATMEGA328P je více pinů než na UNO, je to proto, že při návrhu desky jsou některé piny implicitně nastaveny.
Nyní pro některé aplikace potřebujeme více než 30 pinů, řekněme, že pokud chceme navrhnout LED CUBE 5x5x5, takže k tomu potřebujeme 5x5 + 5 = 30 pinů. V takových případech používáme sériové a paralelní převodníky nebo posuvný registr. Čip posuvného registru bere data z desky UNO sériově a poskytuje výstup v 8bitové paralelní konfiguraci.
Požadované komponenty
Hardware: deska Arduino uno, připojovací kolíky, rezistor 220 Ω, LED (osm kusů), 74HC595 IC, chlebová deska.
Sofware: Arduino každou noc
Schéma zapojení a pracovní vysvětlení
Zde budeme posílat data v osmibitové velikosti jedním kanálem do posuvného registru. Posuvný registr bere data sériově a ukládá je do své paměti. Jakmile jsou data odeslána kontrolérem, pošleme příkaz do posuvného registru, aby se zobrazila data na výstupu, s tímto příkazem posuvný registr uvádí data paralelně.
Tento výstup je zobrazen osmi LED připojenými na výstupu.
Pro připojení posuvného registru k Arduino UNO musíme udělat dvě věci:
|
Nejprve musíme jako výstup nastavit libovolné tři piny UNO. Pak musíme k těmto třem výstupním pinům připojit digitální pin, pin hodin a západku pin. Poté musíme UNO říct, který pin čipu je připojen k pinům desky UNO. To se provádí jednoduchým zápisem do příkazu „
shiftOut(dataPin, clockPin, data);
“. Data zde mohou být binární, desítková nebo hexadecimální. Osmbitové informace, které je třeba odeslat, se zapíší místo „dat“.
Odesílaná data se provádějí jako:
Deaktivovat západku, toto řekne čipu, aby zatím nezobrazoval výstup.
Osmkrát budeme posílat data s hodinami sériově, takže hodiny vysoké, nízké hodiny, nízké hodiny atd.
Povolte západku, to řekne čipu, aby zobrazoval osm bitových dat.
Práce ARDUINO s SHIFT REGISTEREM je vysvětlena krok za krokem v C kódu uvedeném níže: