Урок 1. Луч и CD4011

В картинках

После этого урока в библиотеке первая микросхема серии CMOS 4000 — CD4011, четыре И-НЕ в корпусе, с теми же именами ног, что в даташите Texas Instruments, — а на холсте работает ИК-луч: перекрыл — лампа «кто-то прошёл» загорается и держится, пока не нажмут «Сброс».


1.1. Идея: как магазин считает людей

У входа в магазин на уровне пояса стоят два невидимых луча: излучатель на одной стороне двери, приёмник — на другой. Пока проход свободен, луч доходит, и приёмник выдаёт 1. Человек заслонил луч — приёмник выдаёт 0. Весь набор — о том, как из этих нулей и единиц получить два числа на табло: сколько людей сейчас внутри и сколько зашло за день.

проход (вид сверху)улицазалE1R1луч AE2R2луч B
Два луча поперёк прохода, вид сверху. Излучатель E светит через проход в приёмник R. Луч A — ближе к улице, луч B — ближе к залу. Входящий перекрывает сначала A, потом оба, потом только B; выходящий — наоборот.

1.2. Идея: серия CMOS 4000

В 1968 году RCA выпустила серию CMOS 4000 — микросхемы на парах транзисторов P и N, ровно как наши вентили. Они работали от батарейки и почти не грелись, поэтому попали в часы, калькуляторы и счётчики. Номера ног и имена — из даташита Texas Instruments, который выпускает эти микросхемы до сих пор.

  • CD4011 — четыре И-НЕ. Входы A–H, выходы J–M;
  • нога 7 — VSS (земля), нога 14 — VDD (питание). У нас питание общее, этих ног нет.
CD40114 × И-НЕ1A14VDD2B13H3J12G4K11M5C10L6D9F7VSS8E
CD4011: четыре И-НЕ. Вентили: A·B → J, C·D → K, E·F → L, G·H → M. Нога 7 — VSS (земля), 14 — VDD (питание): у нас питание общее, этих ног у чипа нет. Нумерация от выемки против часовой стрелки.

1.3. Идея: И-НЕ на все руки

Из одних И-НЕ собирается что угодно, поэтому в этом наборе вся логика направления — на CD4011:

  • И-НЕ с соединёнными входами — это НЕ: XA = НЕ BA;
  • два И-НЕ крест-накрест — защёлка: ноль на одном входе ставит её в 1, ноль на другом — в 0, единицы на обоих — помнит.
BARSTnRSTSEENSEENNE=BA, F=SEENN, L=SEEN · G=nRST, H=SEEN, M=SEENN · C=D=RST, K=nRST
Защёлка «кто-то прошёл» — два И-НЕ из одной CD4011 крест-накрест. Луч перекрыли — BA = 0 — SEEN становится 1 и держится, когда луч снова цел. Кнопка «Сброс» через третий И-НЕ (оба входа вместе — это НЕ) даёт nRST = 0 и гасит SEEN.

1.4. Сборка

Новый проект. Нужен вентиль NAND — из урока 0 или любого набора серии.

Шаг 1. Чип CD4011 — 4 × И-НЕ (NAND)

Ноги корпуса по даташиту TI: 1 A, 2 B, 3 J, 4 K, 5 C, 6 D, 8 E, 9 F, 10 L, 11 M, 12 G, 13 H; 7 — VSS (земля), 14 — VDD (питание) — у нас питание общее для всех чипов, этих ног нет. Имя порта = имя ноги: двойной клик по порту → A и т. д. Вентили внутри: A·B → J, C·D → K, E·F → L, G·H → M.

ДетальНогаМетка
Порт входавыходA
Порт входавыходB
Порт входавыходC
Порт входавыходD
Порт входавыходE
Порт входавыходF
Порт входавыходG
Порт входавыходH
Порт выходавходJ
Порт выходавходK
Порт выходавходL
Порт выходавходM
NANDI0
I1
O0
A
B
J
NANDI0
I1
O0
C
D
K
NANDI0
I1
O0
E
F
L
NANDI0
I1
O0
G
H
M

Ctrl+G → имя CD4011. Ноги: входы A, B, C, D, E, F, G, H; выходы J, K, L, M.

Шаг 2. Питание, ИК-пара и кнопка

ИК-пара — палитра Датчики: ставятся сразу излучатель E1 и приёмник R1 на канале 1, между ними — луч. Излучатель светит, пока на его входе 1, — сажаем на VCC. Приёмник даёт 1, пока луч доходит, и 0, когда луч перекрыт.

ДетальНогаМетка
PowerвыходVCC
GroundвыходGND
ИК-пара: излучатель E1InVCC
ИК-пара: приёмник R1OutBA
Button «Сброс»выходRST

Шаг 3. Одна CD4011 — три дела

Вентиль A B → J: оба входа на луче — И-НЕ с одинаковыми входами работает как НЕ: XA = 1, когда луч перекрыт. Вентиль C D → K так же переворачивает кнопку: nRST. Вентили E F → L и G H → M крест-накрест — защёлка: луч перекрыли (BA = 0) — SEEN = 1 и держится, даже когда луч снова цел, пока не нажмут «Сброс» (nRST = 0).

ДетальНогаМетка
CD4011A
B
J
K
C
D
E
F
L
M
G
H
BA
BA
XA
nRST
RST
RST
BA
SEENN
SEEN
SEENN
nRST
SEEN

Шаг 4. Лампы

XA — луч перекрыт сейчас, SEEN — кто-то прошёл (запомнено).

ДетальНогаМетка
LEDвходXA
LEDвходSEEN

1.5. Проверка

  1. Нажми Сброс: обе лампы не горят.
  2. Нажми на луч между E1 и R1 и держи — луч перекрыт: горят XA и SEEN.
  3. Отпусти — луч снова цел: XA гаснет, а SEEN горит — защёлка помнит, что кто-то прошёл.
  4. Сброс — SEEN гаснет.
  5. Alt/⌘ + клик по лучу — луч перекрыт и зафиксирован (на луче — поперечная черта); тот же щелчок снимает. Так перекрывают несколько лучей сразу — понадобится в уроке 5.
Что сделалXASEENЧто это
Сброс○○никого не было
перекрыл луч●●человек в луче
отпустил луч○●человек прошёл — защёлка помнит
Сброс○○забыли

Вставка урока 1 (Cmd+I)

Нужен вентиль NAND (урок 0). Вставка — микросхема CD4011 и луч с защёлкой.

# Урок 1 — луч и CD4011: ИК-пара, микросхема 4 × И-НЕ и защёлка «кто-то прошёл».# Вставка: Cmd+I в проект, где есть вентиль NAND (урок 0). # CD4011 — 4 × И-НЕ (NAND). Ноги: 1 A, 2 B, 3 J, 4 K, 5 C, 6 D, 8 E, 9 F, 10 L, 11 M, 12 G, 13 Hchip CD4011 {  portIn(A)  portIn(B)  portIn(C)  portIn(D)  portIn(E)  portIn(F)  portIn(G)  portIn(H)  portOut(J)  portOut(K)  portOut(L)  portOut(M)  NAND(A, B, J)  NAND(C, D, K)  NAND(E, F, L)  NAND(G, H, M)} # ---------- луч ----------power(VCC)ground(GND)# ИК-пара: излучатель горит всегда, приёмник даёт 1, пока луч целirtx{channel=1}(VCC)irrx{channel=1}(BA)button{label="Сброс"}(RST)# одна CD4011: XA — луч перекрыт (И-НЕ с обоими входами на луче = НЕ); nRST — перевёрнутая кнопка;# SEEN/SEENN — защёлка из двух И-НЕ крест-накрест: луч перекрыли — SEEN = 1 и держится до «Сброса»CD4011(A=BA, B=BA, J=XA, K=nRST, C=RST, D=RST, E=BA, F=SEENN, L=SEEN, M=SEENN, G=nRST, H=SEEN)# ---------- лампы ----------led(XA)led(SEEN)

Не получается? Что-то не работает →