Hvordan bruke Top 10HCTOP 105 Shift Register med Arduino

Hvordan bruke Top 10HCTOP 105 Shift Register med Arduino

Alle Arduino -tavlene har et spesifisert antall I/O -pinner, og hvis det er et stort antall enheter som skal kobles til Arduino -styret, kan mangelen på mangel på pinner oppstå. For å imøtekomme dette problemet er det skiftregistre som vi kan øke antall I/O -pinner i Arduino. Hvordan disse skiftregistrene fungerer og hvordan vi kan bruke dem med Arduino, la oss finne ut:

Hvordan skiftregistre fungerer

Som beskrevet ovenfor brukes skiftregisteret hovedsakelig for å løse pinmangel på mikrokontroller i tilfelle når et stort antall enheter skal kobles til mikrokontrolleren. Skiftregisteret forskyver dataene fra en bit til en annen med hensyn til pulsen i klokken til registeret, og dataene de skifter lagres i den. Det er tre hovedpinner i skiftregisteret: den ene er klokkepinnen, det andre er låsestift og den tredje er datapinnen.

PIN -konfigurasjonen av et enkelt skiftregister (74HC595) er gitt nedenfor i tabellen:

Pins kategori (fra venstre side av Grove) PIN -tall Representasjon Beskrivelse
Utgangspinner 1-7 og 15 Q1 til Q7, Q0 Pinner som enheten skal kobles til med kontrolleren
Kraftpinner 8 og 16 GND, VCC Pinner som vil slå opp skiftregisteret
Seriell inngang 14 (Ds) serin PIN som mottar dataene fra kontrolleren gjennom seriell kommunikasjon
Output Aktiver 1. 3 OE Denne pinnen er lav når spenningen er høy og omvendt
Låsestift 12 (ST_CP) RCLK Når denne pinnen er høy, sendes dataene til utgangspinnene og lagres også i minnet
Klokkepinne 11 (SH_CP) Klokkepinne for skiftregisteret
Tilbakestill pin 10 (SH_CP) SRCLR Pin bruker for å tilbakestille registeret ved å gi det lav tilstand
Grensesnitt av andre registre 9 Q7S (QH ') Når mer enn ett registre skal brukes, brukes denne pinnen

Bruke skiftregister med Arduino

For å forklare hvordan vi kan bruke skiftregisteret med Arduino, har vi vist et eksempel på å koble flere lysdioder med Arduino UNO gjennom et skiftregister. Her er listen over komponenter som vi har brukt i dette eksemplet:

  • Brødbrett
  • Koble til ledninger
  • 8 LED -er
  • Arduino Uno
  • 74HC595 Skiftregister

Vi har designet kretsen ved å bruke ovennevnte komponenter, og dens skjema er gitt nedenfor:

Maskinvareenhet for bruk av skiftregister med Arduino Uno

For å se hvordan kretsen vil se ut på brødplaten, har vi først laget maskinvarenheten som på bildet nedenfor:

For din forståelse har vi forklart tilkoblingene til komponentene som brukes i kretsløpene:

  • Den lilla ledningen viser datapinneforbindelsen til skiftregisteret med Arduino ved å bruke PIN 4.
  • Den hvite ledningen representerer tilkoblingen for låsepinnen med Arduino UNO som er koblet til pinnen 5, mens den brune ledningen brukes til å koble klokken til skiftregisteret med Arduino ved å bruke sin pinne 6.
  • For å koble lysdiodene med skiftregisteret har vi brukt de grå ledningene og jording av lysdiodene gjøres ved å bruke de svarte ledningene.
  • For å koble skiftregisteret med forsyning har vi brukt 5-volts alternativet til Arduino fra strømforsyningspinnene.

Arduino -kode for bruk av skiftregister med Arduino Uno

For å bruke skiftregister med Arduino må vi konfigurere det ved å programmere mikrokontrolleren, så nedenfor har vi gitt koden:

int sperre = 5; // pinner 5 av Arduino for sperrepinne av skiftregister
int klokke = 6; // pinner 6 av Arduino for klokkepinne av skiftregister
int data = 4; // PINS 4 av Arduino for datapin for skiftregister
byte LED = 0; // variabel som vil spare verdien av lysdioder
ugyldig oppsett ()

// tilordne arbeidsmodusene til pinnene i skiftregisteret
pinmode (sperre, utgang);
pinmode (data, output);
pinmode (klokke, utgang);

ugyldig sløyfe ()

LED = 0; // I starten vil alle lysdiodene forbli i off -tilstand
ShiftRegister (); // slå på neste LED
forsinkelse (500);
for (int i = 0; i < 8; i++) // loop that will turn the LED one by one

bitett (LED, I); // tilordne de respektive LED de høye verdiene
ShiftRegister (); // slå av forrige LED
forsinkelse (500);


// funksjon som vil oppdatere registeret etter hver iterasjon av for loop
void shiftregister ()

digitalwrite (sperre, lav);
Skift (data, klokke, LSBFIRST, LED);
DigitalWrite (Latch, High);

Maskinvaredemonstrasjon

Vi har implementert kretsen designet for å grensesnitt. For å demonstrere hvordan vi har vendt lysdiodene i et mønster, har vi gitt den animerte GIF nedenfor:

Konklusjon

Skiftregistre brukes mest når vi må øke I/O -pinnene til mikrokontrollerne, slik at vi kan grensesnitt flere enheter med det. For å demonstrere hvordan vi kan bruke skiftregisteret, grensesnitt 8 LED -er med Arduino Microcontroller ved bare å bruke sine 3 pinner. For ytterligere avklaring har vi gitt kretsskjema og implementering av maskinvare sammen med Arduino -skissen som ble brukt til å programmere kontrolleren.