Lekce 12 - Posuvný registr 74HC595

16.03.2013 19:09

V dnešním dílu si něco řekneme o posuvném registru 74HC595 (Shift Register). Dále si ukážeme několik příkladů jeho využití. Takže co vůbec posuvný registr dělá? V zásadě je to soustava klopných obvodů, kterými se logická informace posouvá dále pomocí hodinového impulsu. K vysvětlení posuvný registr má celkem má celkem pro nás potřebné 3 vstupy (SER, SRCLK, SCLK)  a celkem v našem případě 8 výstupů (QA - QH). 

Z toho již vyplývá trošku, že k ovládání 8 výstupů je zapotřeba pouze 3 piny na Arduinu. (pozn. v zapojení posuvných registrů v kaskádě je počet výstupů mohonásobně vyšší - vysvětlíme a ukážemě později). K vysvětlení samotné funkce. Když přijde hodinový signál na SRCLK posune se logická hodnota se SER do posuvného registru. Pro naše účely tam pro vysvětlení takto posuneme do obvodu 8 různých hodnot. Takto ovšem můžeme do registru zapisovat pouze když bude na vstupu SCLK logická 0. Po zápisu a přepnutí SCLK do stavu logické 1 se data zobrazí na výstupech. 

Pro naše účely si obvod zapojíme. Budeme potřebovat nepájivé kontakní pole, posuvný registr 74HC595, led diody ( v mém případě jsem použil LED baragraf), odpory k diodám (1,3 kOhm), propojovací kablíky. Nejdříve si na nepájivém kontaktním poli zapojíme napájení posuvného registu. U tohoto typu je to +5V na vývodu 16 a GND na vývodu 8. Potom ještě připojíme vývod 10 na +5V a vývod 13 na GND. Podle obrázku obvodu - zapojení vývodů zapojíme vstup sériových dat na pinu 14 (SER) do Arduina pin 2 (modrý kablík na fotu) a hodinový signál vývod 11 (SRCLK) na Arduino pin 4 a nakonec zapojíme RCLK z vývodu 12 na Arduino pin 3. Výstupy z registru jsou na vývodu 15 (to je Qa) a dále na vývodech 1 - 7 (Qb - Qh). Ty povedou k LED diodám na + a dále přes odpor (nutno spočítat u mě cca 1,3 kOhm - spíš víc než míň). Potřeba je tedy 8 ledek pro jeden registr.  

Obrázek zapojení pro ilustraci s Arduinem UNO (pozor na nastavení pinu pro komunikaci v programu !!! (obrázek převzatý ze serveru abs.stijncoppens.com)

 

Pro větší přehlednost jsem registr zapojil na 2 nepájivé kontaktní pole, ale s přehledem se vejdou i na jedno. Na obrázku níže zapojení napájení. 

Zapojení napájení a vývodu 10 a 13

 

Kompletně zapojený obvod i s LED diodami (LED baragraf), na obrázku je chyba označená oranžovou šipkou - nějakým nedopatřením se vývod obvodu 10 dostal na GND místo na +5V (ač je červený a svou orientaci značí jasně :-). Prosím tedy přepojte pokud nemáte na +5V. V předchozím obrázku tato chyba není.

Na tomto obrázku je jasné, že k ovládání posuvného registru stačí 3 piny z Arduina

 

Program není složitý, jak sami můžete vidět:

Pokud jste vše správně zapojili, výsledek by měl vapadat jako na obrázku níže. Dle programu jsme do Arduina odeslali hodnotu 10101010, podle které se nám výstupy nastavily.Odeslání proběhlo pomocí funkce ShiftOut, ketrá nám právě sama odešle i s hodinovým signálen data na určený pin. Zkuste si sami změnit binární hodnotu a uvidíte, že i výstup bude jiný.  

Na obrázku svítí každá druhá LEDka z prvních 8. Poslední 2 nejsou zapojeny, prože výstupů je jenom 8

Aby jsme neposílali do registruje jen jednu 8 bitovou hodnotu, trošku si program upravíme:

Jak po spupštění můžete, vidět vytvořili jsme si takové běžící světloa. Efekt je uložen v poli data, kde máme uloženo 14 8bitových hodnot. Sami si sekvenci můžete upravit podle svého, nebo jí i rozšířit.

Nyní si vysvětlíme jak zapojit dva registry do kaskády. Jak jste si všimli, jeden vývod tzv. posuvného regostu je nezapojen. Jedná se QH'. Z tohoto pinu tzv. přetečou data, která byla v registu. Toho můžeme využít a zapojit další posuvný regist. Data z QH' budou zapojena do vývodu SER (14) na registru.

Zapojení s Arduinem UNO a 2 registry

 

Na obrázku je videt modrý vodič z QH' (9), kterým se posouvají data do druhého registru na SER (14) 

 

Kód pro toto zapojení se neliší skoro vůbec od našeho zakládního kódu s jedním posuvným registrem:

Pro efekt běžícího světla je kód zde:

Jak můžete v kódu vidět data do registru pošleme pomocí funkce shiftOut() dvakrát. První pro druhý regist (nejdrívě se samozřejmně načtou do prvního) a podruhé pro první registr (při druhém volání funkce se data posunou z prvního do druhého).

Aby, jsme také registry mohli využít také smysluplně zkusíme si připojit k registrům také 2 číslice 7-segmentového dipleje. Kód, který je pod obrázkem počítá s tím, že číslovky mají společný +, a jednotlivé segmenty se rozsvicují přivedením GND (země) na jednotlivé vývody LED dipleje a samořejmně přes adekvátní odpor. (U mě opět cca 1,3 kOhm).

Na přoloženém videu můžete vidět, že jsem připojil v jednom případě také třetí registr. Registrů můžete za sebou zapojit kolik chcete. Dají se využít i v mnoha jiných případech, ale to je už na vás. Tak doufám, že vše bylo pochopeno a příště naschledanou.

Zpět

Diskusní téma: Lekce 12 - Posuvný registr 74HC595

Datum
Vložil
Titulek

Http://85.92.118.149/storereviews

Datum
Vložil
Titulek

Http://172.104.177.16/tribratanews/main/detail/395/Cegah-Pungli--KBO-Samapta-IPDA-Doholy-pimpin-Razia/

Datum
Vložil
Titulek

Детейлинг в России

Datum
Vložil
Titulek

ответы на вопросы

Ошибаетесь.
в угоду кому чего но ась?

Datum
Vložil
Titulek

paper

Прошу прощения, что вмешался... У меня похожая ситуация. Пишите здесь или в PM.

Datum
Vložil
Titulek

english

А что тут говорить то?

Datum
Vložil
Titulek

Виртуальный номер

привет

Datum
Vložil
Titulek

кофе это овощ или фрукт

Охотно принимаю. Вопрос интересен, я тоже приму участие в обсуждении.

---
Какие нужные слова... супер, замечательная идея как различать кофе, какие есть сорта кофе и польза в зерновом кофе и витамины

Datum
Vložil
Titulek

кофе черный натуральный

Мне очень жаль, ничем не могу помочь, но уверен, что Вам помогут найти правильное решение. Не отчаивайтесь.

---
Жаль, что сейчас не могу высказаться - очень занят. Но вернусь - обязательно напишу что я думаю. и кофе, характер кофе меню или какие бывают зерна кофе

Datum
Vložil
Titulek

1xbet рабочее зеркало

Замечательная мысль

<< 3 | 4 | 5 | 6 | 7 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.