プログラミング素人のはてなブログ

技術屋の末端。プログラミングも電気回路も専門外です。 コードに間違いなど見つけられたら、気軽にコメントください。 VC#、python3、ラズパイ始めました。

NPNトランジスタのリレー回路

今回はNPNトランジスタでリレー回路を組みます。

以前、PNPトランジスタでもリレーを組みましたが、使い勝手の問題からNPNを検討します。

 

ポンプを動作させることも成功していますが、トランジスタの仕組みを見るために、今日はLEDを点灯させます。

 

使用したのはこちら

 

 

Amazonでも購入できます。↓

 

 

回路はこちら。

 

 

Fritzingの使い方としてはちょっと間違っていますが、出来成りの実態配線にあわせたため、トランジスタの端子は左右逆になっています。

 

ベースには抵抗(200Ω)をはさみAnalog Outputを接続。(Arduinoを保護するためにベースには抵抗をはさんだほうがよいそうです。)

エミッタをGNDに。

コレクタにLEDを接続し、電源のプラスに。

 

タクトスイッチの回路は以前から何度か使っているものと同じで、スイッチを押すとanalog出力がOnになります。

これだけの回路でもリレーは動作しますが、負荷(モーターやポンプなど)には並列にダイオードを逆流防止に入れます。

 

負荷として、LEDではなくポンプを使ったときは "ほぼ" 思い道理に動作しました。

(タクトスイッチに応じて、ポンプの動作がON/OFFしました)

しかし、リレー回路をもう少し詳しく見てみようと、このようなLEDの回路を作ってみると、少し変であることに気づきました。

 

スイッチを押していない(ベースに電圧が印可していない)ときでも、LEDが点灯しているのです。

 

実際LEDの両端の電圧を測定してみると、OFFのはずのときでも1.0Vぐらいが出力されていました。ONのとき2.2Vぐらいになるようにベースの入力を設定しています。

 

どうやら調べてみると、ベースをGNDに抵抗をはさんで逃がしてやる必要があるということが分かりました。

 

参考↓

http://doku.bimyo.jp/bipoler/

 

いくつか手持ちの抵抗を変えてみながらLEDの両端の電圧を測定してみると、5kΩを使うと、LEDの電圧が0.15Vぐらいと一番小さくなりました。

完全に0にするには、この抵抗を計算で最適化する必要がありそうですが、ちょっとまだ難しくてよくわかりません。

 

これでも、LEDは完全にはOFFになりませんが、コレクタ側でLEDに抵抗を直列接続するなどすれば、OFF電圧を調整できるようです。