Hoe Om Skofregister Aan Arduino Te Koppel

INHOUDSOPGAWE:

Hoe Om Skofregister Aan Arduino Te Koppel
Hoe Om Skofregister Aan Arduino Te Koppel
Anonim

In een van die vorige artikels het ons die gebruik van 'n skofregister, veral die 74HC595, kortliks aangeraak. Kom ons bekyk die funksies en prosedures om met hierdie mikrokring te werk.

Skofregister 74HC595
Skofregister 74HC595

Nodig

  • - Arduino;
  • - skofregister 74HC595;
  • - verbindingsdrade.

Instruksies

Stap 1

Skuifregister 74HC595 en dergelike word gebruik as toestelle vir die omskakeling van seriële data na parallel, en kan ook gebruik word as 'n 'grendel' vir data, wat die oordraende toestand hou.

Die pinout (pinout) word in die figuur links getoon. Hulle doel is soos volg.

Q0… Q7 - parallelle data-uitsette;

GND - grond (0 V);

Q7 '- seriële data-uitvoer;

^ MR - reset master (aktief laag);

SHcp - skuifregisterklokinvoer;

STcp - "klink" -klokpulsinvoer;

^ OE - uitset aktiveer (aktief laag);

Ds - seriële data invoer;

Vcc - kragbron +5 V.

Struktureel word die mikrostroombaan in verskillende tipes gevalle vervaardig; Ek gebruik die een wat in die figuur hiernaas getoon word - die uitset - omdat dit is makliker om saam met 'n broodbord te gebruik.

Skuif register voorkoms en pinout
Skuif register voorkoms en pinout

Stap 2

Laat ek kortliks die seriële koppelvlak van SPI onthou, wat ons sal gebruik om data na die skofregister oor te dra.

SPI is 'n vierdrade tweerigting-seriële koppelvlak waaraan 'n meester en 'n slaaf deelneem. Die meester in ons geval sal die Arduino wees, die slaaf is register 74HC595.

Die ontwikkelingsomgewing vir Arduino het 'n ingeboude biblioteek om aan die SPI-koppelvlak te werk. Wanneer u dit toepas, word die gevolgtrekkings gebruik wat in die figuur aangedui word:

SCLK - SPI-klokuitset;

MOSI - data van meester tot slaaf;

MISO - data van slaaf tot meester;

SS - slawe seleksie.

Arduino bord standaard SPI-penne
Arduino bord standaard SPI-penne

Stap 3

Laat ons die stroombaan saamstel soos op die foto.

Ek sal ook 'n logiese ontleder aan al die penne van die skuifregister-mikrokring koppel. Met die hulp daarvan sal ons sien wat op fisiese vlak gebeur, watter seine waarheen gaan, en ons sal uitvind wat dit beteken. Dit moet soos die foto lyk.

Bedradingsdiagram vir skofregister 74HC595 na Arduino
Bedradingsdiagram vir skofregister 74HC595 na Arduino

Stap 4

Kom ons skryf 'n skets soos hierdie en laai dit in die Arduino-geheue.

Die veranderlike PIN_SPI_SS is 'n interne standaardkonstante wat ooreenstem met pen "10" van die Arduino wanneer dit gebruik word as die meester van die SPI-koppelvlak wat ons hier gebruik. In beginsel kan ons net sowel enige ander digitale pen op die Arduino gebruik; dan sal ons dit moet verklaar en die werkmodus moet instel.

Deur hierdie pen LAAG in te voer, aktiveer ons ons skofregister vir stuur / ontvang. Na die oordrag verhoog ons die spanning weer na HOOG, en die uitruil eindig.

'N Skets om die werking van die skofregister te demonstreer
'N Skets om die werking van die skofregister te demonstreer

Stap 5

Kom ons verander ons stroombaan en kyk wat die logiese ontleder ons wys. Die algemene aansig van die tyddiagram word in die figuur getoon.

Die blou stippellyn toon 4 SPI-lyne, die rooi stippellyn toon 8 kanale van parallelle data van die skofregister.

Punt A op die tydskaal is die oomblik wanneer die getal "210" na die skofregister oorgedra word, B is die oomblik waarop die getal "0" geskryf word, C is die siklus wat van die begin af herhaal.

Soos u kan sien, van A tot B - 10.03 millisekondes, en van B tot C - 90.12 millisekondes, amper soos ons in die skets gevra het. 'N Klein toevoeging in 0, 03 en 0, 12 ms is die tyd vir die oordrag van reeksdata vanaf die Arduino, dus ons het nie presies 10 en 90 ms hier nie.

Tyddiagram van Arduino-uitruil- en skofregister 74HC595
Tyddiagram van Arduino-uitruil- en skofregister 74HC595

Stap 6

Kom ons kyk na afdeling A van naderby.

Heel bo is 'n lang pols waarmee die Arduino oordrag op die SPI-ENABLE-lyn begin - slawe seleksie. Op hierdie tydstip begin die SPI-CLOCK-klokpulse gegenereer word (tweede lyn van bo), 8 stukke (vir die oordrag van 1 byte).

Die volgende reël van bo is SPI-MOSI - die data wat ons van die Arduino na die skofregister oordra. Dit is ons nommer "210" in binêre - "11010010".

Na afloop van die oordrag, aan die einde van die SPI-ENABLE-pols, sien ons dat die skofregister dieselfde waarde op sy 8 bene gestel het. Ek het dit met 'n blou stippellyn uitgelig en die waardes vir duidelikheid benoem.

Stel die nommer 210 op 'n parallelle bus via SPI
Stel die nommer 210 op 'n parallelle bus via SPI

Stap 7

Kom ons vestig nou aandag op afdeling B.

Weereens, dit begin alles met die keuse van 'n slaaf en die opwekking van 8 klokpulse.

Die data op die SPI-MOSI-lyn is nou '0'. Op hierdie oomblik skryf ons die nommer "0" in die register.

Maar totdat die oordrag voltooi is, stoor die register die waarde "11010010". Dit word uitgevoer na die parallelle penne Q0.. Q7, en word uitgevoer wanneer daar klokimpulse in die lyn is vanaf die paralleluitgang Q7 'na die SPI-MISO-lyn, wat ons hier sien.

Stel die nommer 0 op 'n parallelle bus via SPI in
Stel die nommer 0 op 'n parallelle bus via SPI in

Stap 8

Daarom het ons die kwessie van inligtinguitruiling tussen die meestertoestel, wat die Arduino was, en die 74HC595-skofregister in detail bestudeer. Ons het geleer hoe om 'n skofregister te koppel, data daarin te skryf en data daaruit te lees.

Aanbeveel: