赤外線LEDドライブ回路の決定版

[2017.1.31追記]Raspberry Piの赤外線が1mくらいしか届かないとお悩みの方へ。原因はソフトウェアにあるかもしれません。特にWiringPiを利用したプログラムは時間管理の精度が甘いため、信号を正確に再現できていない恐れがあります。

これまでのテストで2SC1815によるベタな赤外線LEDドライブ回路はRaspberry Piだと赤外線LEDを十分な明るさで点灯できないことが判明している。コレクタに300mAくらい流してもhFEが落ちないトランジスタがほしいのだが部品店ではなかなか見付からない。たぶん2SC1815の人気がありすぎてその付近の特性をもつほかのトランジスタは売れないのだと思う。仕方がないからできるだけ簡単な回路ですませようという気持ちを捨てて本格的なやつを作った。

ir_led_view

Raspberry Piからの制御信号はlircの既定値に合わせてGPIO17に出力(ブレッドボードだからどこへ接続してもいい)。これを2N7000で受け、赤外線LEDはIRFU9024NPBFでドライブする。IRFU9024NPBFはゲート電圧が電源電圧に対し-4.5V以下になれば1Aを流せる。その条件は2N7000が難なくクリアする。そしてオーディオマニアにウケそうなオールFET。トランジスタは相次いで製造が打ち切られており、いずれこういう回路が当たり前になるはずだ。
ir_led_sch
組み立てはブレッドボードだが、配線の仕方にちょっと気合を入れてみた。ジャンパを1本しか使っておらず、あとはただ部品を挿すだけ。しかもRaspberry Piへまっすぐ配線できる奇跡の部品配置。とはいえブレッドボードだからどんなに素晴らしくてもいずれはバラす運命。氷の彫刻みたいなもん。刹那の芸術だ。
ir_led_bb
赤外線LEDの電流は各部の電圧を調べる関係で点灯しっぱなしにしても壊れない135mAにとどめてある(本当は100mAまで)。IRFU9024NPBFが出力する電圧はオンのとき4.85V、オフのとき-0.06V(完璧にオフなのでLEDと抵抗次第)で、まさに理想的。本番は38kHzで点灯するのだから500mAくらいまで増量しようと思う。この回路ならそれに耐えられる(はず)。

ir_led_on

ガラケーで撮った画質の悪い写真で判断する限り光り方は2SC1815に計算上100mA(実質推定50mA)を流したときより圧倒的に明るい。ちなみに、赤外線LEDは燃え尽きてしまわないようこちらのプログラムで5秒おきに点灯/消灯させている。光っている様子は1眼レフで撮っても写るんだろうが、1眼レフのファインダだと光っているタイミングがわからない。

カテゴリー: RaspBerryPi パーマリンク

赤外線LEDドライブ回路の決定版 への33件のフィードバック

  1. raspberry pi初心者 より:

    参考にさせていただいています。
    500mAに増量する場合、具体的にどこをどのように変更するのでしょうか?

  2. raspberry pi初心者 より:

    vintagechipsさん、情報ありがとうございます。
    色々試行錯誤してみます。

  3. はじめまして、クマガイと申します。当方三流電氣屋だったのでLEDドライブのくだりは何とか理解できます。しかしGPIO制御の方が良く分かりません。最近最新モデルRaspberry Pi2 ModelBを入手して弄っていますが管理人様のRaspberry のモデルは当方と違っていると思われ、上記リンクの「点灯/消灯プログラム」をそのまま適応出来ないと?考えています。とりあえずダウンロードしてviエディターで開いてみたのですがgpioポート番号を指定する部分が無い?様に(初心者ですいません)どこでポート番号を指定すれば良いか?教えていただけないでしょうか。ちなみにccでコンパイル出来るのは確認できました(笑)

    • vintagechips より:

      はじめましてこんにちは。「点灯/消灯プログラム」は特定の機種に依存しないのでRaspberry Piの全モデルはもとよりBeagleBone Blackなどでも動作します。GPIOの番号は引数で指定します。と、冒頭のコメントに書いてあります。また、コマンドラインプログラムの慣例に従い引数なしの「sudo ./wink」で実行したとき使いかたを表示するようになっています。

  4. より:

    間違っているかもしれませんが、気になったので…FETのゲートは、定常状態では電流はほぼ流れませんが、オンオフ切り替え時に電流が流れるので、直接GPIOにつなぐのではなく、200Ω以上の抵抗を挟んだほうがいいのでは?

    参考資料
    FETのベースはcapacitive loadsにあたると思います。

    http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/gpio-pin-electrical-specifications

    Do not drive capacitive loads. Do not place a capacitive load directly across the pin. Limit current into any capacitive load to a maximum transient current of 16 mA. For example, if you use a low pass filter on an output pin, you must provide a series resistance of at least 3.3V/16mA = 200 Ω.

    • vintagechips より:

      ひさん、こんにちは。FETは容量性負荷です。抵抗を挟むのが理想です。腕に覚えがあるとお見受けしたので、この機会に詳細を説明させてください。問題は容量の大きさです。ご紹介いただいた文章は、FETより遥かに大きな本物の容量(キャパシタ)が負荷となるローバスフィルタの例ですから、たとえショートしても壊れない大きさの抵抗を入れるべきだといっています。一方、2N7000の容量は60pFです。DRAMを8個並べるとちょうどそのくらいです。こういう回路でもよくダンピング抵抗を入れますが、それはピンの破壊を防ぐものではなく、波形の乱れを抑えるためです。抵抗の代わりに出力10mAくらいのバッファを入れることもあります。出力16mAのピンならバッファより強力なので直結していいと思います。公式な見解として大丈夫と保証する度胸はありません。また、行儀が悪いという話ならその通りです。

  5. オレンジーナオレンジーナ より:

    初心者なのでよくわかりませんが赤外線LEDに500mAも流して大丈夫なのでしょうか?
    自分はパルス幅26usのデューティー比50%で使おうと思っています。
    出力を高めれば高められるほど良いです。
    ちなみに0,1秒しか電流は流しません。
    いろいろ調べてみても141mA程度が最大だというものしか見つからなくて。。

    • vintagechips より:

      オレンジーナオレンジーナさん、こんにちは。赤外線LEDの一般的な仕様は、DC連続だと100mA、パルス幅≦100usとデューティ比≦1/100で1A、その中間はやってみなさい、ということになっています。ですから直感を頼りにやってみるしかないのです。141mAが最大だという話はきいたことがないので、オレンジーナオレンジーナさんに尋ねられた人が、やってみるしかありませんとは答えられなくて、無理やりひねり出した数字だと思います。私の直感でいいますと、パルス幅26us、デューティー比50%、0,1秒なら500mAまで大丈夫だと思います。保証はしませんけどね。ちなみに、ボクは家電製品のリモコンを5台バラして中身を調べましたが、すべて、電流調整用抵抗が入っていないというありさまで、電流が電池の限界まで流れ放題です。1Aくらいは流れているんじゃないかな。

      • オレンジーナオレンジーナ より:

        そうなんですね!
        とても分かりやすいです。LEDの1つくらい壊れてもいいので試してみますね。
        だからあんなにテレビのリモコンの出力が強いんですね・・・
        ありがとうございました!

  6. ピンバック: 格安スマートリモコンの作り方 | IT技術情報局

  7. ピンバック: 大学生の初めての電子工作 スマートリモコン編 | IT技術情報局

  8. ピンバック: Information science

  9. ピンバック: Information Science Katuo

  10. ピンバック: 「長い」コードのエアコンに対応した赤外線学習リモコンを作る – korintje.com

  11. ピンバック: エアコンの長い赤外線コードに対応した学習リモコンを作る – korintje.com

  12. 関口隆 より:

    とても有益な情報提供ありがとうございます。TR2のIRFU9024NPBFをオーダーしましたが初めて使うので楽しみにしています。ところで上記点灯回路図ではTR2の真ん中のピンがSourceとして配線されていますが、秋月にリンクされた下記DataSheetではDrainとなっています。http://akizukidenshi.com/download/ds/ir/IRFU9024NPBF_IRFR9024NPBF.pdf
    私の方で勘違いしていると思いますがご指摘いただければ幸いです。

    • vintagechips より:

      回路図のTR2は上がS、下がDです。実態配線図は上がS、真ん中がDです。真ん中をSとして配線していません、ややこしいけど合ってます。

  13. ピンバック: 【Raspberry Pi3】terminalで自宅家電をコントロールしてみた。 | KATUBLO

  14. ピンバック: Google Home + Raspberry PiリモコンでIoT | Nori Blog

  15. ピンバック: エアコンの長い赤外線コードに対応した学習リモコンを作る – korintje.com

  16. りさこ より:

    流れる電流が135m A とはどのように計算したのか
    教えていただけますでしょうか?

    • vintagechips より:

      2N7000のゲート電圧がVGS(th)を上回り、その結果、IRFU9024NPBFのゲート電圧がVGS(th)を下回ったとき、IRFU9024NPBFのドレイン-ソース間は導通です(正確には0.175Ωだけど)。電源電圧が5V、赤外線LED(OSI5FU5111C-40)の両端の電圧は1.35Vだから、抵抗27Ωの両端の電圧は3.65V、したがって電流は135mAです。

  17. らく より:

    こんにちは。初歩的な質問ですが、直接IRFU9024NPBFをドライブせずに、2N7000で受けている理由があれば教えてください。IRFU9024NPBFの入力容量が比較的大きいことが関係しているのかもと思っています。

    • vintagechips より:

      ものすごく簡単に言いますとIRFU9024NPBFのゲートを5V/0Vで振りたいからです。ラズパイから直接だと3.3V/0Vでしか振れません。

      • らく より:

        ありがとうございます。おかげですっきりしました(笑)
        物心ついた頃からPC8001を触っていたので、他の記事も読ませていただきます。

  18. ピンバック: エアコンの長い赤外線コードに対応した学習リモコンを作る | korintje.com

  19. ピンバック: リモコン忍者kikuzoのリモコン部分を作る|うちの実験的Web

  20. kaneshige より:

    はじめまして。カネシゲと申します。Raspberry pi + MOSFET で調べていたらみなさんこちらの記事を参考にされていてすごいなと思いました。
    素人の質問なのですが、2N7000だけで動作させないのはドレイン電流が200mAまで(将来的に500mAまで増やす予定)だからですか?
    こちらの記事を参考にされている方々の回路を見ていると、2N7000だけで十分なのでは?と思うような回路が多かったので、質問させていただきました。

    • vintagechips より:

      カネシゲさんこにんちは。2N7000はゲート電圧を上げるほどドレイン電流が増加します。ラズパイのポートは3.3Vで、これをゲートに入れたとき、ドレイン電流は100mA強です。ラズパイからこれより高い電圧を入れることはできないため、2N7000だけだと100mA強が上限です。Arduinoのようにポートが5Vのマイコンだと2N7000だけでそこそこ行けるかもしれません。

      • kaneshige より:

        なるほど!ゲートに入れた電圧によってドレイン電流が増えるんですね!
        電子回路は奥が深いです・・・。ありがとうございます!

コメントを残す