Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
project:esp8266_shift [2019/05/19 15:02]
cyberian úvod
project:esp8266_shift [2019/05/19 18:35] (current)
cyberian [Část 1. Jeden posuvný registr]
Line 5: Line 5:
 | **License:​** | [[https://​creativecommons.org/​licenses/​by-sa/​3.0/​|Uveďte původ-Zachovejte licenci CC BY-SA]] ​ | | **License:​** | [[https://​creativecommons.org/​licenses/​by-sa/​3.0/​|Uveďte původ-Zachovejte licenci CC BY-SA]] ​ |
  
-**Materiál**:+===== Materiál ​=====
   * ESP8266 D1 mini   * ESP8266 D1 mini
   * KY-040 rotační enkodér s tlačítkem   * KY-040 rotační enkodér s tlačítkem
Line 18: Line 18:
   * 74HC595 nebo 74HCT595, posuvný registr s tří stavovým výstupem   * 74HC595 nebo 74HCT595, posuvný registr s tří stavovým výstupem
   * Pevný VLDO stabilizátor na 3,3V. Např. NCP59151-33   * Pevný VLDO stabilizátor na 3,3V. Např. NCP59151-33
 +  * Držák baterie 4xAA
 +  * 4x AA baterie, počítáno je s nabíjecími,​ které mají 1,2 V. Stabilizátor je do 13,5 V
 +  * cca 37 kusů propojek ;-) pro variantu s jedním posuvným registrem
 +===== Úvod =====
  
-**Ú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. 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é. Ř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é.
Line 26: Line 29:
 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 :) 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? =====
 +{{:​project:​74hc595_pinout.png?​nolink|}}{{ :​project:​74hc595_func_dia.png?​nolink|}}
 +
 +
 +
 +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. ​
 +
 +  - 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).
 +  - Pin SHCP slouží jako hodiny, které taktujete při každém odesílání jednotlivého bytu
 +  - 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
 +  - 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 =====
 +{{:​project:​shift_reg_01.jpg?​direct&​400|}} ​ {{:​project:​shift_reg_02.jpg?​direct&​400|}}
 +
 +Použité knihovny z Arduino IDE:
 +Encoder by Paul Stoffregen verze 1.4.1
 +===== Zdroje =====
  
-**Zdroje**: 
 http://​ctsps.wz.cz/​sekvobv/​reg.html http://​ctsps.wz.cz/​sekvobv/​reg.html
  
 http://​www.farnell.com/​datasheets/​1886263.pdf 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.onsemi.com/​pub/​Collateral/​NCP59150-D.PDF
 +
 +https://​www.pjrc.com/​teensy/​td_libs_Encoder.html
  • project/esp8266_shift.1558270939.txt.gz
  • Last modified: 2019/05/19 15:02
  • by cyberian