わかったような気がします。
10本のANDを取ってさらにもうひとつ(ORの結果)とANDをを取るのを、積の積だからいっぺんに11本のANDをとればいいと考えたのですが、これでは「もう1本」がHにならなければ「10本のAND」がHになりません。10本のANDを見て、それともう1本とのANDを見なければならないのでした。
が、!
次のステップでANDの実験をして行き詰ってしまいました。
ブレッドボードに組んだ回路は、以前揚げた3枚めの基板図と同じです。40813個で10のANDゲートをつないで11本(0_から9_とOR_)のANDを取ります。ごちゃごちゃしていますが、成功で緑失敗で赤のLEDが点くようにしました。Out!(L)とSafe!(H)は電源3.3Vを使い、実験上8番をOut!(L)他はHにしています。
本来であればこの前のNOTに入るところに抵抗を入れてプルダウンしているのですが、この部分単独で実験するのでプルダウン抵抗をつけてあります。
本来の回路では、切断した線はオープンになってL、それがNOTでHになるのですが、この回路では切断するとLになります。それで、実験は切断した線をHに挿し換えることにしました。
実験してみると、Out!をHにすると、OR_がLの場合なにも起こらず、OR_がHの場合成功と失敗が両方点灯します。
この実験がうまく行ったら作ってある回路につないでみようと思ったのですが、本回路だとうまく行くはずがこの実験ではだめなのか、そもそも考え違いをしているのか、おそらく回路は正直に動いていて、私の考えたロジックが誤っているのだと思いますが、頭の整理がつきません。
反転回路を基板に作りました。
手前から入るのは、1本のOut!がHで他の9本がLです。これのNOTが向こう側に出ます。1本のOut!がLで他の9本がHです。
それとは別に10本のORを取ってから反転したものも向こう側に出ます。
地味な基板ですが、ちゃんと動いています。
が、!
この部分については意図したように動くこと、プルダウン抵抗を入れることについても実験できました。次の部分の実験にブレッドボードのままではごちゃごちゃになってしまいそうなので、反転回路を基板で作ります。無駄になるかもしれませんが、ロジックICの実習だと思って。
基板配線図にプルダウン抵抗を加えました。空中配線撲滅が貫徹できないところへもう1本ふえてしまいましたが。
追記:
図に誤りがあったので差し替えました。GNDジャンパ部分です。
NOTの実験をしました。それぞれの入力ピンに10kΩのプルダウン抵抗を付け、出力の様子をデジタルテスターで観察しました。
入力をLにすると出力がH、入力をHにすると出力がLになります。入力ピンをオープンにすると出力はHです。
あたりまえのことなんでしょうが、なるほどと思いました。工業高校の生徒になった気分です。
安定化電源の電流計は0mAのままです。ごくわずかな電流で動いているんですね。
どうするのがよいかわからない入力の抵抗ですが、特に入れずに3.3Vを直接つないでいます。ネットでいろいろ見ると、入れない例から2kΩ、4.7k、10kΩ、適当に、とさまざまですが、何か算出方法があるのでしょうか。入力ピンに流れる電流を調べてみると、Hのときに0.3mAでした。データシートを見ると、「高レベル入力電流」が25℃で10^−5から 0.1μAとあります。この程度におさまるように抵抗値を加減するのでしょうか。見当違いですか?
すみません。見当違いだから仕切り直しでと言われるかなと、先の説明は控えておりました。
図に描こうかとも思いますが、とりあえず言葉で説明します。
@ 抽選回路
実験試作した部分です。10本中1本の「Out!」を決めます。
10本の線が、判定回路(反転回路を経て)に行きます。
A 反転回路
切断する仕掛けを経た10本の線が来ます。2枚目の回路です。
http://mpga.jp/akizuki-fan/index.php?mode=article&id=5272&page=1投稿の時点では、論理がそのままです。
http://mpga.jp/akizuki-fan/index.php?mode=article&id=5274&page=1の投稿で、切断を検出するために、ANDを見る10本をNOTで反転することを考えました。Out!がL、他の9本がHになります。ORは元の論理のままで見てORの結果を反転します。ここは、さっさと反転してしまってからORを見たほうがいいのかなとも思いますが。
0_〜9_とOR_との11本の線が次の判定回路に行きます。
B判定回路
3枚目の回路です。11本の線を受け取ってANDを見ます。
・10本のOR_がLであればOut!の線が残っている
・10本のANDを取って、LであればOutの線が残っている
・ORがLになってもANDがLであれば、他の線が残っているうちにOut!を切断したのだから、「失敗」
・ORがLになってANDがHであれば、最後にOut!を切ったのだから、「成功」
・Out!を切ったのが途中か最後かを見るためにAND結果とOR結果とのANDを取る
結果、成功か失敗かが次の通知基板に行きます。
C通知回路
ここはまだ描いていません。
成功回路と失敗回路それぞれの入り口にフォトリレーを置きます。判定回路からどちらかのリレーがONになります。
それぞれメロディICで「エリーゼのために」と「サイレン」を用意しておきます。どちらがONになるかなので、選曲の仕組みを入れず小さな回路ですからスピーカーまでまるごと2つ置けばいいかなと思っています。
LEDを派手に明滅させたい気持ちもありますが、これは余力があればです。フォトリレーは音用光用で別個になってもいいよう2回路のものを使っておこうと思っています。
以上ですが、私の構想をそれが妥当かどうかは別として捉えていただけたでしょうか。
上のほうで書いた「そもそもな問題」
> 線が切断されたら、そこはオープンになりますよね。そのままじゃまずいですね。
の件、抵抗を入れてプルダウンしておけばよいのですね。
10本それぞれの切断されるところから次の入力になる位置と言ったらいいのでしょうか、そこを抵抗でGNDに引っ張っておけばよいわけですか。