かまりくんの遊び場

電子工作とか

論理回路をトランジスタで作ろう1

こんにちはかまりです。今回はトランジスタ論理回路作ってみたので紹介します。いろいろ調べたのにあんまり論理回路についての記事がなかったから紹介します。

電子工作初心者なので間違ってることあるとおもうので、見つけたらコメントするかTwitterで教えてください。

 

論理回路ってなあに

論理回路ってのは要するにANDとかORとかNOTとかそういった類の論理演算子を実際に電子回路で作ろうねっていうやつです。

まあ、超適当にいうとコンピュータに使われてるICを再現しよう見たいな感じです。0と1で情報を表すやつ。

 

ANDとOR

多分知ってると思いますが、ANDは日本語で言うところの「かつ」で、ORは「または」です。

そのANDとORの回路ですが、結論から言うとANDは直列回路ORは並列回路です。

豆電球を考えればすぐわかると思います。

直列つなぎの時は片方だけ豆電球がつながってても電気流れませんよね。だから、直列がAND。並列の時は片方だけついててもと電気流れるのでORってことです。真理値表いちおう下に書いときます。(スイッチがオンの時を1、オフの時を0としてあらわす。)

P Q PかつQ PまたはQ
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

 

まあ、こういうわけですよ。それで、じっさいに回路組むときにこれだけだったら単純にスイッチを直列並列にそれぞれつないでカチカチすればいいんですよ。だけど、ちょっと複雑になる(ほかの論理記号と組み合わせる)と応用が利かなくなる(さすがに全部手動でスイッチ押してらんないよー)ので、トランジスタつかってスイッチしようというわけです。

そういうわけで、LTSpiceで回路組んでみました。下の図みたいになります。

f:id:kamarikun:20190128162119p:plain

AND回路とOR回路

見ての通り直列と並列です。

で、多分AND回路の二個目のNPNトランジスタのコレクタについてる抵抗(R17)ってなんで必要なの??ってなった人いると思います。これは二個目のトランジスタだけがonになってるときに本来ならば電流は流れていないはずなのに、ベースからわずかながらに電流流れちゃうからなんですよね。

AND単体ならほぼ問題ないですが、出力した電流拾ってほかのトランジスタのベース電流とかに使うと、増幅されてあとでよくわかんないところで電流流れるみたいなことが起こるのでつけといたほうがいいです。

実際にあとで説明するのですが、NAND回路組んだ時に真理値表通りに動かなくて苦しみました。

二度と同じ苦しみを味わう人間がこの世からいなくなるように世界平和を祈ろうと思います。

 

NOT

さて、NOT回路です。

NOT回路はプログラミングでいう if文みたいなのをトランジスタで再現すればできます。

こんな感じです。

f:id:kamarikun:20190128165937p:plain

NOT回路

ようするに、ベースに電流が流れるときは電流がエミッタに流れて、ベースに電流が流れないときはコレクタにエミッタに流れないでOUTPUT(R95)のほうに電流が流れるというわけです。

そこまで複雑じゃないです。

 

NOTをANDやORとうまいこと組み合わせるとNAND、NOR、XORなどどんな論理回路でも作れます。ちなみにNANDだけで全部の論理回路が組めるらしいですよ。気になる人はググってください。

 

終わりに

本当はXOR回路を作った話を自慢しようと思って書き始めた記事だったのですが、疲れたのでここまでにしたいと思います。次の記事ではXOR回路とかについて多分書くと思います。

あと、二進数の足し算計算機をロジックIC使わないで作ろうプロジェクト始めたのでできたら報告しようと思います。

 

なにかあったら、Twitterに報告してください。

twitter.com