ON/OFFスイッチを作ってみます。
つけたらついたまま、切ったら切れたままのタイプです。
用意するもの
- ボタン(任意の入力信号)
- AND
- フラグ
繋ぎ方
ボタンを押すとフラグがONになり、フラグがONの状態でボタンを押すとOFF(リセット)になります。単純明快!
拡張
ちょっとこれだけでは物足りないので拡張してみます。出来上がるのは2進数のカウンターみたいなもの?です。実用性は不明(笑)
スイッチの数を増やすので、今使ったフラグをAとして、次をB、その次をCとしていきます。
AがONかつボタンを押したらBがONになる
みやすさのためにワイヤーワープを使います。一応フラグの名前と同じです。
ANDノードンにボタンの出力とフラグ(A)の出力を繋ぎます。
フラグ(A)がONのときにボタンが押されるとANDノードンが1を出力するという状態です。
ANDをボタンに見立てて1つ目と同じようにつなぐ
1つ目のフラグ(A)と同じように繋ぎます。
違うのはボタンノードンの出力を直接つなぐのではなく、上でつないだANDノードンの出力をつなぐ点だけです。
このフラグはBとします。
さらに拡張
AとBがONかつボタンが押されたらという風にどんどん拡張していきます。
次はCですね。
ANDをたくさん繋げるのはめんどう
さて、このまま拡張を続けるとどんどん必要なANDノードンが増えて大変なことになってしまうので、少し変えてみようと思います。
つなぐフラグ(n番目)よりも前のフラグが全てONであるとき1を出力するノードンがあればいいわけです。※n番目:Aは1番目,Bは2番目,Cは3番目、8番目を考えるならH
今回はくらべるノードンを使ってみようと思います。
はじプロでは「1つの入力に対して複数の出力をつないだ場合、足し算された値が入力される」という仕様があります。
なので、くらべるノードンの入力の片側にn番目を除いた全てのフラグの出力を集め、もう片側にその最大値(n-1)となる定数をつなぐと、うまく機能するはずです。
定数を間違えるとダメになるのでANDを繋いだ方が確実ですが、ノードンの数を減らせるという大きな利点があるかと思います。
わざわざ2進数作って何するのという話ではありますが、、