目次
- 赤外線リモコンを自作する - その1データ解析編
- 赤外線リモコンを自作する - その2データ送信編
- 赤外線リモコンを自作する - その3温度/湿度センサー編
- 赤外線リモコンを自作する - その4サーバサイド編
- 赤外線リモコンを自作する - その5クライアント編
赤外線リモコンを自作する - その2データ送信編
今回は、前回取得した赤外線データを赤外線LEDより送信できるようにする。
用意するもの
機器 | 型番 | 参考価格 |
---|---|---|
Arduino互換機 | ESP32-DevKitC-32D | 1,480円 |
赤外線LED | OSI5FU5111C-40 | 1個20円 |
トランジスタ | 2SC1815L-GR-T92-K | 1個5円 |
設計
電子回路詳しくないので、自己判断でお願いします。
赤外線LEDを点滅させることで、信号を送信する。ただし、出力が足りないため、トランジスタを挟む。
抵抗値計算
赤外線LED仕様
- 順方向電流IF: 100mA
- 順方向電圧VF: 1.35V
抵抗値計算
(5V - 1.35V) / 0.1A = 36.5Ω
トランジスタ仕様
- ベースエミッタ間飽和電圧VBE: 1V
- 直流電流増幅率hFE: 300
抵抗値計算
- 赤外線LEDに必要な電流100mA
- ベースに流したい電流 100mA / 300(増幅率) = 0.33mA
- ベースへの抵抗 (3.3V - 1V) / 0.33mA = 6.9KΩ
回路図
赤外線データ送信プログラム
赤外線リモコンを自作する - その1データ解析編の通りに、IRremoteESP8266ライブラリをインストールしておく。
受信した赤外線データをuint16_t cmds[]として初期化する。
下記では、10秒に1度、赤外線データを送信する。
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#define KHZ 38
#define PIN_SEND 32
IRsend irsend(PIN_SEND);
uint16_t cmds[] = {3486, 1718, 450, ...};
void setup(void) {
Serial.begin(115200);
irsend.begin();
}
void loop() {
irsend.sendRaw(cmds, sizeof(cmds) / sizeof(cmds[0]), KHZ);
delay(10 * 1000);
}