Jak Připojit Posuvný Registr K Arduinu

Obsah:

Jak Připojit Posuvný Registr K Arduinu
Jak Připojit Posuvný Registr K Arduinu

Video: Jak Připojit Posuvný Registr K Arduinu

Video: Jak Připojit Posuvný Registr K Arduinu
Video: How to Add Outputs to an #Arduino using a Shift Register - The Learning Circuit 2024, Smět
Anonim

V jednom z předchozích článků jsme se již krátce dotkli použití posuvného registru, zejména modelu 74HC595. Pojďme se blíže podívat na možnosti a postup pro práci s tímto mikroobvodem.

Posuvný registr 74HC595
Posuvný registr 74HC595

Nezbytné

  • - Arduino;
  • - posuvný registr 74HC595;
  • - připojení vodičů.

Instrukce

Krok 1

Posuvný registr 74HC595 a podobně se používají jako zařízení pro převod sériových dat na paralelní a lze je také použít jako "západku" pro data, která drží přenesený stav.

Pinout (pinout) je zobrazen na obrázku vlevo. Jejich účel je následující.

Q0… Q7 - paralelní datové výstupy;

GND - zem (0 V);

Q7 '- sériový datový výstup;

^ MR - reset master (aktivní nízká);

SHcp - vstup hodin posuvného registru;

STcp - "západkový" hodinový pulzní vstup;

^ OE - povolení výstupu (aktivní nízká);

DS - vstup sériových dat;

Vcc - napájecí zdroj +5 V.

Strukturálně je mikroobvod vyroben v několika typech případů; Použiji ten, který je zobrazen na obrázku vpravo - výstup - protože s prkénkem na prkénko je jednodušší

Vzhled a pinout posunu registru
Vzhled a pinout posunu registru

Krok 2

Krátce si připomeňme sériové rozhraní SPI, které použijeme k přenosu dat do posuvného registru.

SPI je čtyřvodičové obousměrné sériové rozhraní, na kterém se účastní master a slave. Pánem v našem případě bude Arduino, otrokem bude registr 74HC595.

Vývojové prostředí pro Arduino má vestavěnou knihovnu pro práci na rozhraní SPI. Při jeho použití se použijí závěry, které jsou vyznačeny na obrázku:

SCLK - SPI výstup hodin;

MOSI - data od nadřízeného k podřízenému;

MISO - data od slave k masteru;

SS - výběr otroka.

Arduino deska standardní SPI piny
Arduino deska standardní SPI piny

Krok 3

Spojme obvod jako na obrázku.

Připojím také logický analyzátor ke všem vývodům mikroobvodu posuvného registru. S pomocí toho uvidíme, co se děje na fyzické úrovni, jaké signály směřují kam a zjistíme, co to znamená. Mělo by to vypadat jako fotka.

Schéma zapojení posuvného registru 74HC595 na Arduino
Schéma zapojení posuvného registru 74HC595 na Arduino

Krok 4

Napíšeme si takovou skicu a nahrajeme ji do paměti Arduino.

Proměnná PIN_SPI_SS je interní standardní konstanta, která odpovídá pinu „10“Arduina, pokud je použita jako hlavní rozhraní SPI, které zde používáme. V zásadě můžeme stejně dobře použít jakýkoli jiný digitální pin na Arduinu; pak bychom to museli deklarovat a nastavit jeho provozní režim.

Napájením tohoto kolíku LOW aktivujeme náš posuvný registr pro vysílání / příjem. Po přenosu opět zvýšíme napětí na VYSOKÉ a výměna končí.

Náčrt k demonstraci činnosti posuvného registru
Náčrt k demonstraci činnosti posuvného registru

Krok 5

Pojďme proměnit náš obvod v práci a uvidíme, co nám ukazuje logický analyzátor. Celkový pohled na časový diagram je znázorněn na obrázku.

Modrá přerušovaná čára zobrazuje 4 čáry SPI, červená přerušovaná čára zobrazuje 8 kanálů paralelních dat posuvného registru.

Bod A na časové stupnici je okamžik, kdy je číslo „210“přeneseno do posuvného registru, B je okamžik, kdy je zapsáno číslo „0“, C je cyklus opakující se od začátku.

Jak vidíte, od A do B - 10,03 milisekund, a od B do C - 90,12 milisekund, téměř tak, jak jsme požadovali na náčrtu. Malý přírůstek za 0, 03 a 0, 12 ms je čas pro přenos sériových dat z Arduina, takže zde nemáme přesně 10 a 90 ms.

Časový diagram výměny a posouvacího registru Arduino 74HC595
Časový diagram výměny a posouvacího registru Arduino 74HC595

Krok 6

Podívejme se blíže na sekci A.

Na samém vrcholu je dlouhý puls, kterým Arduino iniciuje přenos na lince SPI-ENABLE - výběr slave. V tuto chvíli se začnou generovat hodinové impulsy SPI-CLOCK (druhý řádek shora), 8 kusů (pro přenos 1 bajtu).

Další řádek shora je SPI-MOSI - data, která přenášíme z Arduina do posuvného registru. Toto je naše číslo „210“v binárním formátu - „11010010“.

Po dokončení přenosu na konci pulzu SPI-ENABLE vidíme, že posuvný registr nastavil stejnou hodnotu na svých 8 ramenech. Zvýraznil jsem to modrou tečkovanou čarou a pro přehlednost jsem označil hodnoty.

Nastavení čísla 210 na paralelní sběrnici přes SPI
Nastavení čísla 210 na paralelní sběrnici přes SPI

Krok 7

Nyní se zaměřme na část B.

Opět vše začíná výběrem otroka a generováním 8 hodinových pulzů.

Data na lince SPI-MOSI jsou nyní „0“. To znamená, že v tuto chvíli zapíšeme do registru číslo „0“.

Ale dokud není přenos dokončen, registr uloží hodnotu „11010010“. Je výstupem na paralelní piny Q0.. Q7 a je výstupem, pokud jsou v řádku hodinové impulsy z paralelního výstupu Q7 'na linku SPI-MISO, kterou zde vidíme.

Nastavení čísla 0 na paralelní sběrnici přes SPI
Nastavení čísla 0 na paralelní sběrnici přes SPI

Krok 8

Podrobně jsme tedy studovali problematiku výměny informací mezi hlavním zařízením, kterým bylo Arduino, a posuvným registrem 74HC595. Naučili jsme se, jak připojit posuvný registr, zapisovat do něj data a číst z něj data.

Doporučuje: