取得したリモコン信号の送信(Wiring Pi 利用)
解説
赤外線LEDを使用すると、取得したリモコン信号を送信して、学習リモコンを作ることができます。
リモコンの信号は、赤外線の点灯時間と消灯時間の長さの組み合わせになっています。
「リモコンの信号の取得」で取得した赤外線の点灯時間と消灯時間の長さの組み合わせで、赤外線LEDを点灯、消灯させるプログラムを作成します。(取得した時間の最初の時間は、最初の信号が来るまでの時間であり、信号としてしては意味がないので、使いません。)
ここで、赤外線LEDは、赤外線リモコンの発光周波数である38kHzのパルス波で点灯するように、26[μ秒]周期のPWM出力で点灯させます。(
38kHz => 1/38000[s] = 26.315 * 10 ^ -3 [s] = 26.315[μ秒] )
使用した赤外線LEDは、順電圧100[mA]、順電圧1.35[V]です。
raspberry pi のデジタル出力ピンから供給できる電流は、最大16[mA]なので(参照:Understanding Outputs)、raspberry piのデジタル出力ピンからでは、100[mA]の電流を、赤外線LEDに供給できません。
トランジスタを用いて、電流制御を行います。
3.3[V]出力ピンからであれば、100[mA]の電流を、赤外線LEDに供給することができそうです。
(「Raspberry Pi 1 の3.3[V]出力ピンの最大出力電流は、50[mA]である」という情報もありましたが、
「Raspberry Pi 2やRaspberry Pi 3の最大出力電流は、50[mA]以上ある」という情報もありました。
(参照:Maximum current on each GPIO pin for Raspberry Pi 3 Model B)
実際に試したところ、100[mA]の電流出力は可能でした。)
トランジスタを用いた、電流制御の回路図は、下図のようになります。
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円 |
Raspberry Pi | 1 | Raspberry Pi 3 Model B | 6,300円 |
ブレッドボード | 1 | EIC-801 | 250円 |
ジャンパーワイヤ | 適量 | ジャンパーワイヤ(オス-メス) | 10本300円 |
接続例
送信ボタンの入力ピンとして、GPIO 24 を使用し、
赤外線LEDの出力ピンとして、GPIO 23 を使用した場合の接続例
Wiring Pi のインストール
Raspberry Pi に Wiring Pi をインストールしてない場合は、まず、Wiring Pi をインストールします。
Wiring Pi のインストール
プログラムファイルの作成
「/home/pi/work/wiringpi」フォルダに、「irsender.c」というファイル名で、以下の内容のファイルを作成します。
実行ファイル作成
コンパイルし、実行ファイルを作成します。
以下のコマンドを実行します。
実行
作成した実行ファイルを実行します。
Ctrl + C
で終了します。