ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所

赤外線リモコン スマートリモコン Smart Remote Controller Aruduino PlatformIO ESP32 本項では全画面表示が可能な図番に * を付けています。

はじめに

ESP32を使って学習リモコンを作る(2) ハードウエア では使用した部品と回路の動作概要を説明しました。ここではハードウエア回路設計の勘所を説明します。 量産設計をするわけではないので最大定格に対するマージン設計までは踏み込んでいません。それぞれの部品・定数選定の考え方と実際に使用した部品・定数について説明します。
なお部品・定数の選定についてはできるだけ入手しやすいように配慮しています。

赤外線リモコン信号受信回路

*図1 赤外線リモコン信号受信回路

表1 赤外線リモコン信号受信回路部品表

部品番号 部品名 機能 説明
U1 SPS-445-1 赤外線受光IC キャリア周波数38KHz ローアクティブ出力
Q1 2SC945 NPNトランジスタ レベルシフト用
R1 抵抗 22kΩ プルアップ
R2 抵抗 22kΩ バイアス
R3 抵抗 100Ω 電源平滑
C1 コンデンサ 4.7μF 電源平滑

図1 に赤外線リモコン信号受信回路を示します。

U1 赤外線リモコン信号受信 IC
赤外線リモコン信号の通信フォーマットではサブキャリア周波数として33kHz ~ 40kHz が使用されます。ここでは一番多くの機器で採用されている 38kHz の製品を選択しました。ここでは手持ちの 5V 動作品 SPS-445-1 を使用したので、電源電圧 3.3V の MCU に接続するためのレベルシフト回路が必要になります。 レベルシフト回路は R1, R2, Q1 の3個の部品で構成しました。

Q1 NPNトランジスタ
トランジスタ Q1 が ON した時のコレクタ電流 IC は、
  IC = 3.3V/22kΩ = 0.15mA 
なので、小信号 NPN トランジスタなら何でも使えます。ここでは手持ちの 2SC945 IC=100mAmax、ft=250MHz を使いました。

R1 抵抗
プルアップ抵抗 R1 22kΩ は赤外線リモコン信号のサブキャリア周波数 38KHz をスイッチングできるように抵抗値を選択します。ESP32 の 15 ピン寄生容量を 50pFと仮定して(データシートに記載はなく多めの値を仮定しました)抵抗値と掛け合わせた時定数 τ は、
  τ = 22kΩ x 50pF = 1.1usec
となります。サブキャリア周期 1/38kHz = 26usec の 1/10 以下であればいいでしょう。

R2 抵抗
トランジスタ Q1 は hFE=10 で 飽和すると考えます。そうすると Q1 にベース電流を供給するバイアス抵抗 R2 は抵抗 R1 の 10倍の値 220kΩ 以下に設定します。
ここでは手持ちの抵抗が無かったので 22kΩを使用しました。
ESP32 の 33ピンから 3.3V が出力された時に、トランジスタ Q1 のベースに流れる電流 IB は、
  I= ( 3.3V – 0.7V )/ 22kΩ = 0.118mA 
となります。ベース電流の絶対最大定格 IB(DC) 20mA と比較して十分小さいので許容できます。

R3 抵抗、C1 容量 電源平滑
赤外線リモコン信号受信 IC SPS-445-1 のデータシートでは 電源端子のリップルが 1mVp-p 以下になるように 100Ω、22uF のリップルフィルタが推奨されています。手持ち部品の関係で R3 = 100Ω、C1 = 4.7uF を使用しました。

赤外線リモコン信号送信回路

*図2 赤外線リモコン信号送信回路

表2 赤外線リモコン信号送信回路部品表

部品番号 部品名 機能 説明
LED1 OSI5FU5111C-40 赤外線発光ダイオード 赤外線波長940nm
直径5mm砲弾型
Q2 2SC945 NPNトランジスタ 赤外線LEDスイッチング用
R4,R5 抵抗 75Ω LED電流制限用
R6,R7,R8 抵抗 100Ω ベース電流制限用
R9 抵抗 4.7kΩ ベース電荷放電用

 

LED1 赤外線LED
赤外線リモコンフォーマットでは赤外線 LED の発光波長は 950nm となっています。ここでは発光波長 940nm の OSI5FU5111C-40 を使用しました。
市販されている赤外線 LED は発光波長 940nm が多いと思います。発光波長が 850nm の赤外線LEDは伝送効率が悪くなるので使わない方がいいと思います。

R4,R5 抵抗
R4, R5 は赤外線 LED に流れる電流制限に使用します。OSI5FU5111C-40 のデータシートを見ると順方向電流 IF = 100mA max、順方向電圧 VF = 1.35V typ となっています。
抵抗 R4、R5 に印加される電圧 VR4R5 は電源電圧から順方向電圧を引いて、
  VR4R5 = 5V-1.35V = 3.65V
となります。 抵抗 R4,R5 に最適な抵抗値 RLED を計算すると、
  RLED = 3.65V / 0.1A = 36.5Ω
となります。ここでは手持ちの 75Ω を2本並列にして 37.5Ω として使っています。
抵抗が消費する電力 PR4R5 は、
  PR4R5 = (3.65 V)²/37.5Ω = 0.355 W
となります。定格 1/4W の抵抗2本だと 2/4W = 0.5W なので許容できます。

Q2 トランジスタ
電流 100mA をスイッチングするので小信号用の NPN トランジスタなら何でも使えます。赤外線信号のサブキャリア周波数 38kHz (26usec) をスイッチングできればいいのでトランジション周波数 fT も気にしなくてもいいでしょう。ここでも手持ちの IC(DC) 100mA、f= 250MHzの 2SC945 を使いました。

R6~R8 抵抗
R6~R8 は NPN トランジスタのベース電流を制限します。
NPN トランジスタが ON して飽和した時の hFE = 10 として、赤外線 LED に流す電流、すなわちコレクタ電流が 100mA のとき必要なベース電流 IB は、
  IB = 100mA / 10 =10mA
となります。
データシートからベース飽和電圧 VBE(sat) = 0.86V (条件 IC = 100mA、IB = 10mA)を用いると抵抗 R6~R8 の両端電圧 VR6R8 は、
  VR6R8 = ( 3.3V – 0.86V ) = 2.44V
となります。ベース電流 IB = 10mA を用いて制限抵抗値 RB を求めると、
  RB = 2.44V / 10mA = 244Ω となります。 
E12 系列で一番近い 270Ω があればよかったのですが、ここでは R6~R8 に手持ちの 100Ω を3本直列にして 300Ω としました。
決定した抵抗値から逆算すると、
  IB = 2.44V / 300Ω = 8mA
  hFE = 100mA / 8mA = 12.5
なので飽和とみなせる許容範囲です。

R9 抵抗
R9 は NPN トランジスタが ON から OFF、すなわち飽和領域から能動領域に遷移する時にベースに溜まった電荷を放電して OFF しやすくします。おおむねベース電流制限抵抗の 10 倍でいいと思いますが、あまり小さくすると NPN トランジスタのベースに流れる電流が減少しすぎるので注意が必要です。
ここでは手持ちの 4.7KΩ を使用しました。ベース飽和電圧 VBE(sat) = 0.86V を用いてベースに流れる電流の減少値 IBR を簡易計算すると、
  IBR = 0.86V / 4.7kΩ = 0.183mA
となります。これはベース電流 8mA に対して 2.3% なので誤差範囲内と言えます。

到達距離

赤外線リモコン信号受信 IC のデータシートには、別途赤外線 LED とフォトダイオードを使って赤外線LED の発光強度を調整することで基準送信機を準備して、赤外線リモコン信号受信 IC との間で到達距離を測定するという記載があります。

本機が対象にする TV やオーディオなどの機器は使用する赤外線リモコン信号受信 IC が異なるうえに、筐体には赤外線以外の光を減衰させる目的で黒い光学フィルタが設けられていますが、赤外線リモコン信号もある程度減衰します。これらのファクターをあれこれ検討するとかなり複雑になるので、本機と対象機器の間で現物合わせでいいのでないかと考えています。

到達距離が短い時には以下を検討してみます。

①光軸が合っているか

赤外線 LED は砲弾型の形状の頂点方向に赤外線を一番強く放射する特性があります。対象機器のリモコン受光部分に対して方向が合っているか確認します。

②複数の機器を制御
複数の機器が一方向にならずに光軸がずれて到達距離が下がってしまう場合には、赤外線LEDを複数駆動するようにしてそれぞれの方向に赤外線LEDを向けるといいでしょう。

③到達距離伸ばしたい
到達距離を伸ばしたい場合も複数の赤外線LEDを駆動してみるといいと思います。

上記 ②、③に対応するには 図2 赤外線リモコン信号送信回路において LED1、R4、R5 をもう一回路用意して VCC 5V と トランジスタ Q2 のコレクタに接続すれば駆動することができます。
さらに赤外線 LED を増やしたい場合はコレクタ電流を多く流せるトランジスタに変更する必要があります。

リンク

ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub

(YI)

コメント

error: Content is protected !!
タイトルとURLをコピーしました