Hradla, volty, jednočipy
  • index
  • Poděkování
  • Předmluva vydavatele
  • Předmluva mentora
  • Výmluvy místo předmluvy
  • 1 Budu velkým elektronikem a budu stavět hrozně cool obvody!
    • 1.1 Blikač
    • 1.2 „Dílna“
    • 1.3 Kde nakoupit součástky?
    • 1.4 Nákupní seznam: Součástky pro blikač
  • 2 Postavte si blikač – teď už to snad půjde lépe
    • 2.1 Který rezistor je ten pravý?
    • 2.2 Měření multimetrem
    • 2.3 LED podrobněji
  • 3 Hlava, koleno, zem…
    • 3.1 „Nemá to něco společného s atomy?“
    • 3.2 Napětí
    • 3.3 Proud
    • 3.4 Vodič a nevodič
    • 3.5 Odpor
    • 3.6 Měření, měření!
    • 3.7 Ohmův zákon
    • 3.8 Výkon
    • 3.9 … a malé opáčko
    • 3.10 Zkratky u značení
    • 3.11 Vyvolená čísla
    • 3.12 Pro lepší představu
    • 3.13 Střídavý proud
    • 3.14 Zkrat
    • 3.15 Multimetr jako zkrat?
    • 3.16 Elektromagnetická indukce
    • 3.17 Značky pro schémata
  • 4 Zdroje napětí
    • 4.1 Společná zem
  • 5 Vedle sebe, za sebou
    • 5.1 Svítilna s LEDkou
    • 5.2 Sériové zapojení
    • 5.3 Dělič napětí
    • 5.4 Paralelní zapojení
    • 5.5 Kirchhof 2
    • 5.6 Baterie sériově – paralelně
    • 5.7 Potenciometr
    • 5.8 Úbytek napětí na LED
    • 5.9 Co jsou vlastně ty diody zač?
    • 5.10 Datasheet
  • 6 Základní elektronické součástky
    • 6.1 Rezistor
    • 6.2 Kondenzátor
    • 6.3 Cívka
    • 6.4 Transformátor
  • 7 Polovodiče
    • 7.1 P-N přechod
    • 7.2 Dioda
    • 7.3 Tranzistor
    • 7.4 Rozsvítíme prstem LED!
    • 7.5 Tranzistor řízený polem (FET)
    • 7.6 Šoupejte nožkou…
    • 7.7 MOSFET
    • 7.8 A to je všechno s polovodiči?
  • 8 Pouzdra elektronických součástek
    • 8.1 Co je to SMT a THT
    • 8.2 DIP, DIL
    • 8.3 Co s těmi ostatními?
  • 9 Blikač s Arduinem
    • 9.1 Když se řekne Arduino
    • 9.2 Programování Arduina
    • 9.3 Blikání Arduinem
    • 9.4 Krok zpět k drátům
    • 9.5 Arduino a EduShield
  • 10 Fotorezistor
    • 10.1 Obrácená logika
    • 10.2 Trimry
    • 10.3 Lepší řešení detektoru tmy
    • 10.4 Fotorezistor a Arduino
  • 11 Termistor
  • 12 LM35
  • 13 „Jak naučit kámen počítat“
    • 13.1 Stavebnice
    • 13.2 Logické funkce
    • 13.3 TTL a CMOS
    • 13.4 Operace s bity
    • 13.5 Booleova algebra, výroková logika
    • 13.6 Logika v číslicové technice
    • 13.7 U-káz-ka! U-káz-ka!
    • 13.8 Tlačítko a přepínač
    • 13.9 Pull Up a Pull Down
    • 13.10 Pomalé tlačítko
    • 13.11 Schmittův obvod
    • 13.12 Blokovací kondenzátor
    • 13.13 Buzení z Arduina
  • 14 Kombinační logika
    • 14.1 De Morganův zákon
    • 14.2 XOR
    • 14.3 Logické funkce dvou proměnných
    • 14.4 Vícevstupová hradla
    • 14.5 Mimochodem, když máme NAND, co ty ostatní?
    • 14.6 Zjednodušování logických výrazů
    • 14.7 AND-OR-INVERT
    • 14.8 Multiplexor
    • 14.9 Proč slučujeme přes OR?
    • 14.10 Dekodér (demultiplexor) „1-z-N“
    • 14.11 Vícebitové varianty
    • 14.12 Otevřený kolektor, třetí stav, OE
    • 14.13 Dekodéry
    • 14.14 Pojďme, budeme už fakt něco počítat!
    • 14.15 Aritmeticko-logická jednotka (ALU)
  • 15 Sedmisegmentovky LED
    • 15.1 Víc sedmisegmentovek…
  • 16 Jak vypadá hradlo uvnitř
    • 16.1 Proč zapojovat blokovací kondenzátory k napájení
    • 16.2 Negované signály
    • 16.3 MOS, CMOS
  • 17 „Plnou parou vzad!“ – „Ale jak daleko?“
    • 17.1 Ještě pípat!
  • 18 Zpětná vazba
    • 18.1 Astabi-cože?
    • 18.2 Blikač
    • 18.3 Krystalový oscilátor DIL
    • 18.4 Monostabilní klopný obvod
    • 18.5 Detektor pohybu
    • 18.6 Bistabilní klopný obvod R-S
    • 18.7 Zakázané kombinace, zpětná vazba, …
    • 18.8 Hodiny
    • 18.9 Synchronní / Asynchronní
    • 18.10 Symbol pro klopný obvod
    • 18.11 Reálný klopný obvod D: 7474
    • 18.12 Reálný latch 7475
  • 19 Panna, nebo orel?
    • 19. 1 Náhoda? Nemyslím si…
    • 19.2 Střída
    • 19.3 PWM
    • 19.4 Dělení kmitočtů
    • 19.5 Klopný obvod T
    • 19.6 Klopný obvod J-K
  • 20 Čítače
    • 20.1 Čítač s nulováním
    • 20.2 Čítače v praxi
    • 20.3 Hrací kostka
    • 20.4 Další čítače
    • 20.5 Ještě nějaké čítače?
    • 20.6 Rotační enkodér
    • 20.7 Čítač s dekodérem 1-z-10 typu 744017
    • 20.8 Počítadlo k autodráze
  • 21 Posuvné registry
  • 22 Paralelní a sériová rozhraní
    • 22.1 Buzení displeje ze sedmisegmentovek
    • 22.2 Posuvný řadič SIPO 74HCT595
  • 23 Sériová komunikace
    • 23.1 Sériová sběrnice SPI
    • 23.2 Sériová sběrnice I2C
    • 23.3 Prakticky…
    • 23.4 EduShield a displej
    • 23.5 RS-232, UART, Serial…
    • 23.6 Převodník USB na sériové rozhraní
    • 23.7 1-Wire
  • 24 Paměti
    • 24.1 7489 – 64 bitů RAM
    • 24.2 Dynamická RAM
    • 24.3 ROM, PROM a další
    • 24.4 To nejlepší z obou světů
    • 24.5 Několik tipů k pamětem
    • 24.6 Jak se zapisuje do EEPROM či FLASH?
    • 24.7 Sériové paměti
  • 25 Sériová paměť prakticky
  • 26 Hodiny reálného času
  • 27 Paměťové karty
  • 28 Logický analyzátor, logická sonda
  • 29 Elektronika a svět kolem nás
    • 29.1 Ovládáme přírodu elektronikou
    • 29.2 Příroda ovládá elektroniku
  • 30 Meteostanice
    • 30.1 Výběr součástek
    • 30.2 Špinavej trik
    • 30.3 Stavíme z polotovarů
  • 31 Bezdrátový přenos dat
    • 31.1 Vysílání na 433 MHz
    • 31.2 nRF24L01+
  • 32 Procesory, počítače, mikrořadiče
    • 32.1 Mikroprocesor 8080A
    • 32.2 Přerušení
    • 32.3 Periferie
    • 32.4 Složitější periferie
    • 32.5 Jednočipový mikropočítač
    • 32.6 Atmel AVR
    • 32.7 Další mikrokontroléry
    • 32.8 Tak málo nožiček…
    • 32.9 Programování jednočipů
  • 33 Displeje
    • 33.1 Znakový displej 1602, 2004
    • 33.2 Grafický displej 12864
    • 33.3 Další displeje
    • 33.4 Bezdrátový displej k naší meteostanici
  • 34 Klávesnice
    • 34.1 Šetříme vývody
    • 34.2 Připojujeme klávesnici od PC
    • 34.3 Matice tlačítek
    • 34.4 Postavte si třeba… kalkulačku?
  • 35 Osm tlačítek na třech vodičích
    • 35.1 Multiplexior / Demultiplexor
    • 35.2 PISO a SPI
    • 35.3 Analogová cesta
    • 35.4 R-2R
  • 36 Joystick
  • 37 ESP8266 WiFi
    • 37.1 Moduly ESP8266
    • 37.2 Převodník napěťových úrovní
    • 37.3 WeMos D1 Mini, NodeMCU
    • 37.4 Bezdrátový teploměr s WiFi
    • 37.5 Instalace podpory ESP8266 do Arduino IDE
    • 37.6 WiFi Manager
    • 37.7 Klient / server?
  • 38 Low Power
    • 38.1 Solární články
  • 39 Sigfox
    • 39.1 Co je to Sigfox?
    • 39.2 Cloudový teploměr se Sigfoxem
    • 39.3 Co s daty v Sigfoxu?
  • 40 Šťastnou cestu…
  • Přílohy
    • Nástroje a weby
    • Nákupní seznam začínajícího hobby elektronika
    • EduShield
    • Nahrání firmware do EduShieldu
    • Turris Omnia pro experimenty s elektronikou
    • Karnaughova mapa
    • „Dobré rady nad zlato“ na jednom místě
Powered by GitBook
On this page
  • 20.5.1 Johnsonův kód
  • 20.5.2 Grayův kód

Was this helpful?

  1. 20 Čítače

20.5 Ještě nějaké čítače?

Previous20.4 Další čítačeNext20.6 Rotační enkodér

Last updated 5 years ago

Was this helpful?

Samozřejmě, že jsou na skladě. Třeba takový Johnsonův čítač.

Představme si řetěz obvodů typu D, podobně jako u výše zmíněných čítačů. Každý vstup D je připojen na výstup Q předchozího obvodu. Vstup D prvního obvodu v řadě je zapojen na invertovaný výstup /Q posledního obvodu.

Všechny klopné obvody mají spojený vstup CLK, a všechny mají vyvedený vstup CLR (Reset).

Začíná se od stavu 0000, a čítač nabývá postupně hodnot 0000, 0001, 0011, 0111, 1111, 1110, 1100, 1000 – a pak zase od 0000. Počítá tedy v takzvaném „Johnsonově kódu“…

20.5.1 Johnsonův kód

Klasický binární kód má jednu nevýhodu – někdy se mění hodnota více bitů najednou, třeba při přechodu ze stavu 0011 do stavu 0100 se mění rovnou tři bity. Pokud změna probíhá pomaleji a ne (ideálně) najednou, objeví se postupně sekvence velmi rychlých změn, např. 0011 -> 0010 -> 0000 -> 0100. Pokud je další zařízení dostatečně rychlé, může tyto změny zaznamenat a fungování obvodů bude narušené. Někdy to lze vyřešit změnou obvodového řešení, ale někdy taková možnost není. Proto se používají i kódy, kde se při přechodu mezi stavy mění vždy hodnota jednoho jediného bitu. Johnsonův kód je příklad jednoho takového kódu. Pro N bitů může nabývat 2N kombinací, jak jsme si ukázali výš.

Čtyřbitový Johnsonův kód tvoří postupně tyto hodnoty: 0000, 0001, 0011, 0111, 1111, 1110, 1100, 1000.

20.5.2 Grayův kód

Další podobný kód je kód Grayův. Vychází z binárního kódu, ale čísla jsou přeuspořádaná tak, že mezi dvěma po sobě následujícími stavy se také mění hodnota právě jednoho jediného bitu:

Hodnota

Binárně

Grayův kód

0

0000

0000

1

0001

0001

2

0010

0011

3

0011

0010

4

0100

0110

5

0101

0111

6

0110

0101

7

0111

0100

8

1000

1100

9

1001

1101

10

1010

1111

11

1011

1110

12

1100

1010

13

1101

1011

14

1110

1001

15

1111

1000

Grayův kód se používá místo binárního tam, kde by případná změna více bitů nemusela proběhnout přesně ve stejný čas. Navíc se poměrně snadno převádí na binární a zpět, pomocí operace XOR. Pokud si bity binárního kódu označíme jako b3-b0 a Grayova kódu jako g3-g0, tak převodní vzorce jsou jednoduché:

g0 = b0 XOR b1

g1 = b1 XOR b2

g2 = b2 XOR b3

g3 = b3 XOR 0 = b3

Tedy vždy jako XOR daného bitu a bitu o řád vyššího (u nejvyššího bereme nulu).

Představte si, že máte cosi, co se otáčí, a vy chcete vědět, jakým směrem je to natočené. Pro jednoduchost řekněme, že vám to stačí znát s přesností plus minus 45 stupňů. Připevníte k otáčivé věci kolo, to si rozdělíte na osm segmentů, a protože osm hodnot zakódujete do tří bitů, tak si uděláte tři soustředné kružnice. A v nich si některé segmenty vybarvíte a jiné ne, takže pak budete moci prostým způsobem, třeba optickým snímačem, určit, jak je kolo natočeno.

První pokus bude vypadat nějak takto:

Jenže stačí drobná nepřesnost, a hned v pozici „nahoře“ vám vznikne přechod 001 – 011 – 010, popřípadě 001 – 000 – 010. Když použijeme Grayův kód, nic takového nehrozí:

260-1.png
262-1.png
262-2.png