kairo-gokko (30) OR / NOR / XOR



基本的なところでいうと OR がまだ残っています。 作りましょう。

OR

スイッチを並列つなぎにすると OR になります。

f:id:sonota88:20200322061317g:plain

これまでグリッド線を描画していましたが、 見にくいような気がしてきたため、 コメントアウトして描画を止めてみました。


今作った OR だと、下の方のリレーを右側の子回路の内側に引き込まないといけない都合のため配線が微妙にすっきりしないのと、 2つの入力が非対称な印象になるのがちょっと気になりました。

これを解消するために、並列部分の線を交差させたものを思いついて作ってみました。 こうするとスイッチの位置を縦に揃えることができます。 こういうちまちました改良も楽しい。

f:id:sonota88:20200322061649g:plain

これは自分で思いついてやってみたものですが、 こういう工夫はきっと昔の人によって考え尽くされてるんでしょうね……。


もうひとつ、 NAND を使ったタイプも作ってみました。 NAND の入力を not リレーで両方とも反転すると OR になります。

f:id:sonota88:20200322062643g:plain

たしかに OR の挙動になってるけどちょっと不思議な感じがしますね。

NOR

これは OR の出力を反転するだけ。

f:id:sonota88:20200322062927g:plain

「入力が両方とも L のときだけ出力が H」ですね。

こういう場合慣例では L/H で表現するようなのですが、 L, H というのは low, high の略で、電圧の低い・高いを示しています。 つまり、 「(電流は流れているけど)電圧が低い」 「(電流は流れていて)電圧が高い」 なわけで、これまでの 「通電してない」「通電している」と表現してきたモデルとは食い違っています。

が、ここはあまり深く考えず

  • L (low)
    • 電圧が低い
    • 通電していない
  • H (high)
    • 電圧が高い
    • 通電している

という対応になっているのだ、ということにして進めます。

XOR

「基本的なものだからやっておこうか」というのと、 これまで出てきた部品を組み合わせた少し大きなものの例として作ってみた、というものです。

Wikipedia に載っている回路を見ながら作ってみました(英語版に載っていたものとミックスした感じになっています)。

論理回路図っぽく描くとこうです。

f:id:sonota88:20200322081424p:plain

動かした様子です。

f:id:sonota88:20200322070643g:plain

  • (1) 入力が両方とも L
    • 上の NAND の出力は H だが 下の OR の出力が L なので 出力は L
  • (2) 入力が L/H または H/L の場合
    • 下の OR 経由で出力が H になる
  • (3) 入力が両方とも L
    • (2) の場合と同じく下の OR 経由で出力が H になるかと 思いきや、この場合だけ上の NAND の出力が L になるため 一番右上にあるスイッチが OFF にされ、出力が L になる

……のように文章で説明するより、 実際に動かしたときの挙動とにらめっこしたり、 各部分がどうなるか次のように表を書いてみたりする方が分かりやすいと思います。

入力1 入力2 NAND(上) OR(下) 出力
L L H L L
L H H H H
H L H H H
H H L H L

以下の iframe で実際に動かせます。 音量小さめにしていますが音が出ます。

※ ここらへんからスマホでは全体が表示できなくなると思います。PCブラウザなどで見てください……。

こちらも同じものです。
https://sonota88.github.io/kairo-gokko/pages/30/index.html