Table of Contents

Posuvný registr s rotačním enkodérem a bat. napájením

Project owner: Cyberian
Interested:
Related:
License: Uveďte původ-Zachovejte licenci CC BY-SA

Materiál

Úvod

Mým cílem je sestavit hračku pro syna a naučit se pracovat s kaskádou posuvných registrů. Původně mělo být jen několik LED a jedna RGB LEDka s rotačním enkodérem, kterým se se řídilo 8 LED diod, změny barvy RGB LEDky a zároveň přepínaly efekty s PWM modulací. Všechny GPIO piny ESP8266 podporují PWM modulaci. GPIO linek však není dostatek a dost jich obsazuje rotační enkodér. Řešením se zdál posuvný registr. Ten však neumí PWM modulaci :) Součástky, které toto umí řešit jsou pro mne zas zbytečně složité.

Napadlo mne tedy, zkusit PWM modulaci vyřešit nějakou rozptylovou funkcí, která by ji nahrazovala počtem 1 a 0 za sekundu a když už jsem u toho tak zkusit dát několik posuvných registrů do kaskády. Nejprve se však pokusím vyřešit rozsvícení LED přes pouze jeden posuvný registr, což se ukázalo podle různých návodů jako poněkuď nefunkční. Přečetl jsem si tedy datasheet k 74HC595 a udělal jsem si to po svém, což se vyplatilo :)

Jak funguje 74HC595N?

Na rovinu jsem o tomto obvodu nevěděl nic a z číslicové techniky mám sotva základ. Před měsícem jsem však o ESP8266 nevěděl také nic a je to teď úplně jinak. Takže Vás chci na tomto místě povzbudit, překonat své bloky a prát se sám se sebou o výsledky.

Tak tedy princip. Osobně chápu posuvný registr jako tři síta s 8 sloty.

  1. První síto je shift register, do kterého postupně posíláte jedním pinem DS, nebo také jinde pojmenovým jako SER, jednotlivé bity. Po zaslání každého bitu pošlete jedničku do pinu SHCP (je dobré se ujistit, že před odesláním bitu je pin SHCP na log. 0).
  2. Pin SHCP slouží jako hodiny, které taktujete při každém odesílání jednotlivého bytu
  3. Druhé síto je storage register. Skladovací register, do kterého propadnou data z posuvného regitru, když pošlete jedničku na pin STCP
  4. Třetí síto je výstupním sítem, kdy se objeví obsah skladovacího registru na výstupech Q0 až Q7. Aby se tak stalo, musí být pin OE (output enable) uzemněn. Tento pin je aktivní při log 0, takže ho stačí trvale uzemnit, pokud chceme aby se data ihned objevila na výstupu. Pozn.: třetímu sítu lze přepnout chování na vstupní síto.

Část 1. Jeden posuvný registr

Použité knihovny z Arduino IDE: Encoder by Paul Stoffregen verze 1.4.1

Zdroje

http://ctsps.wz.cz/sekvobv/reg.html

http://www.farnell.com/datasheets/1886263.pdf

http://www.msilverman.me/2013/01/shift-registers-serial-in-parallel-out/

https://www.onsemi.com/pub/Collateral/NCP59150-D.PDF

https://www.pjrc.com/teensy/td_libs_Encoder.html