取得したリモコン信号の送信

解説

赤外線LEDを使用すると、取得したリモコン信号を送信して、学習リモコンを作ることができます。

リモコンの信号は、赤外線の点灯時間と消灯時間の長さの組み合わせになっています。

リモコンの信号の取得」で取得した赤外線の点灯時間と消灯時間の長さの組み合わせで、赤外線LEDを点灯、消灯させるプログラムを作成します。(取得した時間の最初の時間は、最初の信号が来るまでの時間であり、信号としてしては意味がないので、使いません。)

ここで、赤外線LEDは、赤外線リモコンの発光周波数である38kHzのパルス波で点灯するように、26[μ秒]周期のPWM出力で点灯させます。( 38kHz => 1/38000[s] = 26.315 * 10 ^ -3 [s] = 26.315[μ秒] )


使用した赤外線LEDは、順電圧100[mA]、順電圧1.35[V]です。
mbedのデジタル出力ピンから供給できる電流は、最大40[mA]なので(参照:mbed NXP LPC1760 諸元)、mbedのデジタル出力ピンからでは、100[mA]の電流を、赤外線LEDに供給できません。
トランジスタを用いて、電流制御を行います。
3.3[V]出力ピンからであれば、100[mA]の電流を、赤外線LEDに供給することができそうです。

トランジスタを用いた、電流制御の回路図は、下図のようになります。



2つの抵抗(R1、R2)の抵抗値について。

【R1】
R1は、電流制御を行うための抵抗です。
直流電流増幅率hFEを、「hFE-IC」グラフより求めます。

使用温度を25[℃]、コレクタ・エミッタ間電圧Vceを1[V]とすると、コレクタ電流Icが100[mA]のとき、直流電流増幅率hFEは、80ほど。
トランジスタのベース電流Ibとして流すべき電流値は、
Ib = Ic / hFE = ( 100 * 10 ^ -3 ) / 80 = 1.25 * 10 ^ -3 [A] = 1.25[mA]
ベース・エミッタ間電圧Vbeを、「Ib-Vbe」グラフより求めます。

使用温度を25[℃]とすると、ベース電流Ibが1.25[mA]のとき、ベース・エミッタ間電圧は、コレクタ電流Icが100[mA]のとき、、0.6[V]ほど。
抵抗R1に流れる電流I2は、 コレクタ電流Icと同じなので、
I1 = Ic = 1.25 [mA]
抵抗R1に流れる電圧V1は( ディジタル出力電圧 - ベース・エミッタ間電圧 ) なので、
V1 = 3.3 - 0.6 = 2.7 [V]
よって、抵抗R1の値は、
R1 = V1 / I1 = 2.7 / ( 1.25 * 10 ^ -3 ) = 2.16 * 10 ^ 3 [Ω] = 2.16 [kΩ]
2.16kΩに近く入手しやすい抵抗として、2.2kΩ抵抗を使用します。

【R2】
R2は、赤外線LEDに、100[mA]、1.35[V]の電気を流すための抵抗です。
コレクタ・エミッタ間電圧Vceを、「Ic-Vce」グラフより求めます。

ベース電流Ibが1.25[mA]、コレクタ電流Icが100[mA]のとき、コレクタ・エミッタ間電圧Vceは、1.0[V]ほど。
抵抗R2に流れる電圧V2は ( 出力電圧 - 赤外線LED電圧 - コレクタ・エミッタ間電圧 ) なので、
V2 = 3.3 - 1.35 - 1.0 = 0.95
抵抗R2に流れる電流I2は、コレクタ電流Icと同じなので、
I2 = Ic = 100 [mA] = 100 * 10 ^ -3
よって、抵抗R2の値は、
R2 = V2 / I2 = 0.95 / ( 100 * 10 ^ -3 ) = 9.5 [Ω]
R2として、9.5Ωに近く入手しやすい抵抗として、10Ω抵抗を使用します。

作成したプログラムは、ボタンを押すと、取得したリモコン信号を送信します。

部品表

部品名 数量 商品名 参考価格
赤外線LED 1 高輝度赤外線LED OSI5FU5111C-40 5個100円
10Ω抵抗 1 カーボン抵抗(炭素皮膜抵抗) 1/6W 10Ω 100本100円
NPNトランジスタ 1 トランジスタ2SC1815GR 20個200円
2.2kΩ抵抗 1 カーボン抵抗(炭素皮膜抵抗) 1/6W 2.2kΩ 100本100円
プッシュスイッチ 1 タクトスイッチ 1個10円
10kΩ抵抗 1 カーボン抵抗(炭素皮膜抵抗) 1/6W 10kΩ 100本100円
mbedボード 1 mbed NXP LPC1768 5,250円
ブレッドボード 1 EIC-801 250円
ジャンパーワイヤ 適量 ジャンパーコード(オス-オス)セット 100mm49個
150mm8個
200mm4個
250mm4個
のセット200円

接続例

サンプルコード

mbed.org ページへのリンク

http://mbed.org/users/nobuki/code/irsender2/