ARDUINOSSA meillä on 20 I / O-nastaa, joten voimme ohjelmoida 20 UNO-nastaa käytettäväksi joko tulona tai ulostulona. Vaikka ATMEGA328P-ohjaimessa on enemmän nastoja kuin UNO: ssa, tämä johtuu siitä, että jotkut nastat ovat oletusarvoja levyä suunniteltaessa.
Joissakin sovelluksissa tarvitsemme yli 30 nastaa, esimerkiksi jos haluamme suunnitella 5x5x5 LED CUBE, joten tähän tarvitaan 5x5 + 5 = 30pin. Tällaisissa tapauksissa käytämme sarja- tai rinnakkaismuuntajapiirejä tai siirtorekisteriä. Siirtorekisterisiru ottaa tiedot UNO-kortilta sarjaan ja antaa ulostulon 8-bittisenä rinnakkaiskokoonpanona.
Tarvittavat komponentit
Laitteisto: Arduino uno -kortti, liitintapit, 220Ω vastus, LED (kahdeksan kappaletta), 74HC595 IC, leipälauta.
Ohjelmisto: Arduino iltaisin
Piirikaavio ja selitys työstä
Täällä aiomme lähettää tietoja kahdeksan bitin koossa yhden kanavan kautta rekisterin siirtämiseen. Siirtorekisteri vie tiedot sarjaan ja tallentaa ne muistiinsa. Kun ohjain on lähettänyt tiedot, aiomme lähettää komennon siirtorekisteriin tietojen näyttämiseksi ulostulossa, tällä komennolla siirtorekisteri siirtää tietoja rinnakkain.
Tämä lähtö näkyy kahdeksalla LEDillä, jotka on kytketty lähtöön.
Sillä yhdistävät siirtorekisterin Arduino UNO meidän on tehtävä kaksi asiaa:
|
Ensin meidän on asetettava kaikki UNO-nastat lähtöön. Sitten meidän on liitettävä digitaalinen tappi, kellotappi ja salvatappi näihin kolmeen lähtöliittimeen. Sen jälkeen meidän on kerrottava UNO: lle, mikä sirun nasta on kytketty UNO: n piirilevyihin. Tämä tapahtuu yksinkertaisesti kirjoittamalla komento ”
shiftOut(dataPin, clockPin, data);
”. Tiedot voivat olla binääriä, desimaaleja tai heksadesimaaleja. Lähetettävä kahdeksan bittinen tieto kirjoitetaan “datan” tilalle.
Lähetetyt tiedot tehdään seuraavasti:
Poista salpa käytöstä, tämä käskee sirua olemaan näyttämättä lähtöä toistaiseksi.
Kahdeksan kertaa lähetämme dataa kellolla sarjana, joten kello korkea matala data-kello matala ja niin edelleen.
Ota salpa käyttöön, tämä käskee sirua näyttämään kahdeksan bittistä dataa.
Työstö Arduino siirtorekisterissä selittyy askel askeleelta C-koodin alla: