ARDUINO mums ir 20 I / O tapas, tāpēc mēs varam ieprogrammēt 20 UNO tapas, kas jāizmanto kā ievade vai izeja. Lai gan ATMEGA328P kontrolierī ir vairāk tapu nekā UNO, tas notiek tāpēc, ka, izstrādājot tāfeli, dažas tapas tiek noklusētas.
Tagad dažām lietojumprogrammām mums vajag vairāk nekā 30 tapas, teiksim, ja mēs vēlamies izveidot 5x5x5 LED CUBE, tāpēc šim nolūkam mums vajag 5x5 + 5 = 30pins. Šādos gadījumos mēs izmantojam sērijveida vai paralēlas pārveidotāja mikroshēmas vai maiņu reģistru. Maiņu reģistra mikroshēma ņem datus no UNO plates sērijveidā un dod izvadi 8 bitu paralēlā konfigurācijā.
Nepieciešamās sastāvdaļas
Aparatūra: Arduino uno dēlis, savienojošās tapas, 220Ω rezistors, LED (astoņi gabali), 74HC595 IC, maizes dēlis.
Programmatūra: Arduino katru nakti
Shēmas shēma un darba skaidrojums
Šeit mēs nosūtīsim datus astoņu bitu lielumā caur vienu kanālu, lai mainītu reģistru. Maiņu reģistrs ņem datus sērijveidā un glabā tos savā atmiņā. Kad kontrolieris ir nosūtījis datus, mēs nosūtīsim komandu maiņas reģistram, lai parādītu datus izvadē, ar šo komandu maiņu reģistrs izliek datus paralēli.
Šo izeju parāda astoņi gaismas diodes, kas savienotas pie izejas.
Lai savienotu maiņu reģistru ar Arduino UNO, mums jādara divas lietas:
|
Vispirms mums kā izeja ir jāiestata jebkuras trīs UNO tapas. Tad mums ir jāpievieno digitālā tapa, pulksteņa tapa un fiksatora tapa šīm trim izejas tapām. Pēc tam mums jāpasaka UNO, kura mikroshēmas tapa ir savienota ar UNO dēļu tapām. To veic, vienkārši ierakstot komandu “
shiftOut(dataPin, clockPin, data);
”. Dati šeit var būt binārā vai decimāldaļā vai heksadecimālie. Astoņu bitu informācija, kas jānosūta, tiek ierakstīta “datu” vietā.
Nosūtītie dati tiek veikti šādi:
Atspējojiet fiksatoru, tas liek čipam pagaidām nerādīt izvadi.
Astoņas reizes mēs sūtīsim datus ar pulksteni sērijveidā, tātad ar augstu pulksteņa līmeni zemu datu pulksteni zemu un tā tālāk.
Iespējojiet fiksatoru, tas liek čipam parādīt astoņu bitu datus.
Darbs no Arduino ar SHIFT REGISTER skaidrojams soli pa solim C kodu zemāk dotajā: