第一部 Raspberry Pi Pico 2 WHでつくる赤外線エアコンIoT
この資料では、Raspberry Pi Pico 2 WHを中心に、赤外線受信・赤外線送信・温湿度測定・タクトスイッチを組み合わせ、対象エアコン 日立 白くまくん RAS-AJ3626S の純正リモコン信号を学習して再送信できる装置を作る。電子工作の経験がほとんどない状態からでも、「何をどこへつなぐか」「なぜその部品が必要か」「何を確認すれば成功か」が分かる順番で進める。
→座学 →やりたい1. 研究の目的
家にあるELEGOO Arduino UNO R3スターターキットの部品をできるだけ再利用し、不足する部品だけを追加購入して、エアコンを赤外線で操作できるIoT装置を作る。
第1部ではPico 2 WH単体で、赤外線信号の受信・保存・再送信、DHT20による温湿度測定、タクトスイッチによる手動操作まで完成させる。画面は付けない。動作確認はUSBシリアル出力で行う。第2部ではPico 2 WHのWi-Fiを使い、Raspberry Pi 4Bなどのサーバー側から命令を送る構成へ発展させる。
2. 今回の構成
| 部品 | 入手方法 | 役割 |
|---|---|---|
| Raspberry Pi Pico 2 WH | 購入 | GPIO制御、I²C、赤外線処理、Wi-Fi通信を担当する中心装置 |
| PL-IRM1838B | 購入 | 約38kHzで変調された赤外線リモコン信号を受信・復調する |
| DHT20 | 購入 | I²Cで温度・湿度を測定する |
| OSI5LA5A33A-B 940nm IR LED | 購入 | エアコンへ赤外線を送信する |
| BC337-40BU(秋月 105998) | 購入 | IR LEDに流す電流をON/OFFするNPNトランジスタ。ON Semiconductor品。TO-92、最大コレクタ電流800mA |
| タクトスイッチ | ELEGOOキット | 手動で赤外線送信を実行する |
| 2kΩ・5kΩ・330Ω・100Ωなどの抵抗 | ELEGOOキット | I²Cのプルアップ、トランジスタのベース電流、IR LED電流の調整に使う |
| 0.1µF セラミックコンデンサ(秋月 110147) | 購入 | DHT20のVDD-GND間のデカップリング |
| 47µF 電解コンデンサ(秋月 117887) | 購入 | PL-IRM1838Bの電源フィルタ。+/−の極性あり |
| ブレッドボード・ジャンパ線 | ELEGOOキット | はんだ付けせず回路を組む |
最初はELEGOO付属のDHT11モジュールとIR受信モジュールを使う予定だった。しかし、Arduino UNOは5V系、Pico 2 WHのGPIOは3.3V系なので、5V信号をPicoへ直接入力しないための電圧変換が必要になる。そこで、3.3Vで扱いやすいDHT20とPL-IRM1838Bへ変更した。IR送信側のトランジスタは、メーカーと足順を確定できるBC337-40BU(秋月105998)を購入して使う。抵抗はELEGOOキットのものを再利用する。
秋月116732はDHT20本体を「モジュール」として販売しているもので、抵抗・コンデンサ付きの別基板ではない。メーカー標準回路に従い、SDAとSCLには外付けプルアップ抵抗を1本ずつ入れる。代表値4.7kΩに対し、今回は手元の5kΩをSDA用・SCL用に各1本使う。またVDD-GND間には0.1µF(100nF)のセラミックコンデンサを1個入れ、DHT20のできるだけ近くへ置く。
3. 完成後の流れ
4. 電子工作の最低限の基礎
4-1. 3.3V、5V、GPIOは同じものではない
Pico 2 WHには3.3V電源出力があり、USB給電時にはVBUSに約5Vが来る。しかしGPIOの信号レベルは3.3Vで固定されている。したがって、5Vを電源として使える場合でも、5V信号をGPIOへ直接入力してはいけない。
今回のIR LED回路はPicoをUSBで給電している間、Pin 40 VBUSを約5V電源として使う。将来USBを外してVSYSなど別の方法で給電する構成に変える場合は、VBUSをIR LED電源として使えるとは限らないため、電源回路を再確認する。
4-2. GNDを共通にする
GNDは電圧を測る基準の0Vである。Pico、センサー、トランジスタが同じHIGH/LOWを理解するため、すべてのGNDを共通につなぐ。
4-3. 抵抗を入れる理由
抵抗は電流を制限する。IR LEDへ抵抗なしで電源をつなぐと大きすぎる電流が流れる可能性がある。またBC337-40BUのBASEにも抵抗を入れ、GPIOから流れる電流を制限する。
5. Pico 2 WHの使用ピン
| 用途 | GPIO | 物理ピン | 接続先 |
|---|---|---|---|
| DHT20 SDA | GP4 | 6 | DHT20 Pin 2 SDA(5kΩ プルアップ経由) |
| DHT20 SCL | GP5 | 7 | DHT20 Pin 4 SCL(5kΩ プルアップ経由) |
| タクトスイッチ | GP15 | 20 | スイッチ片側 → GND(内部プルアップ) |
| IR 受信 | GP16 | 21 | PL-IRM1838B Pin 1 OUT |
| IR 送信 | GP18 | 24 | 2kΩ → BC337-40BU BASE(Pin 2) |
| 3.3V 電源 | — | 36 | DHT20、PL-IRM1838B(100Ω フィルタ経由) |
| GND | — | 3/8/13/18/23/28/38 など | 全回路共通 |
| USB 給電時の 5V | VBUS | 40 | IR LED 送信回路の電源(330Ω 経由) |
5-1. Pico 2 WHピン図
5-2. 今回使う抵抗・コンデンサの早見表
| 部品 | 値 | 接続場所 | 何のためか |
|---|---|---|---|
| 抵抗 | 5kΩ ×2 | DHT20のSDA→3.3V、SCL→3.3V | I²Cの信号線をHIGHへ戻す外付けプルアップ。今回のDHT20では2本とも使用する。 |
| コンデンサ | 0.1µF ×1 | DHT20のVDD-GND間 | 電源の細かな揺れ・高周波ノイズを吸収する。 |
| 抵抗 | 100Ω ×1 | 3.3V→PL-IRM1838B VCCの直前 | メーカー推奨の47〜100Ω電源フィルタ。手元の100Ωを使用する。 |
| 電解コンデンサ | 47µF ×1 | PL-IRM1838B側VCC-GND間 | 受信モジュールの電源ノイズを減らす。秋月117887を購入して使用する。 |
| 抵抗 | 2kΩ ×1 | Pico GP18→BC337-40BU BASE(Pin 2) | GPIOからBASEへ流れる電流をおおむね1mA程度に制限し、トランジスタをスイッチとして駆動する。 |
| 抵抗 | 330Ω ×1 | VBUS→抵抗→IR LED | IR LED電流を最初は約10mA級に制限する。 |
| 抵抗 | 100Ω | PL-IRM1838Bの電源フィルタに使用。IR LED直列には使わない | IR LEDへ使うと上限寄りの概算で約34mAまで増えるため、初回のLED駆動には330Ωを使う。 |
同じ「抵抗」でも役割は異なる。5kΩは信号線の状態を決めるプルアップ抵抗、2kΩはトランジスタBASEへ流れる電流を抑えるベース抵抗、330ΩはIR LEDを守る電流制限抵抗である。値だけでなく「どこに何の目的で入れるか」を区別する。
6. ブレッドボード全体配置
Pico 2 WHはブレッドボード中央の溝をまたぐように挿す。片側にDHT20とIR受信、反対側にIR送信回路とボタンを置くと配線を追いやすい。
7. DHT20の詳細配線
DHT20はI²C通信を使う。SDAがデータ線、SCLがクロック線である。I²Cでは信号線を部品が直接HIGHへ押し上げるのではなく、LOWだけを作り、HIGHはプルアップ抵抗で作る。このためSDAとSCLそれぞれに数kΩ程度の抵抗を3.3Vへつなぐ。DHT20のデータシート例は4.7kΩだが、4.7kΩと5kΩの差は約6%なので、今回の短いブレッドボード配線では手元の5kΩを使う。
| DHT20 | Pico 2 WH | 理由 |
|---|---|---|
| Pin 1 VDD | 3V3(OUT) Pin 36 | 3.3VはDHT20の2.2〜5.5V動作範囲内。 |
| Pin 2 SDA | GP4 Pin 6 | I²Cのデータ線。 |
| Pin 3 GND | GND | 共通の0V基準。 |
| Pin 4 SCL | GP5 Pin 7 | I²Cのクロック線。 |
| 5kΩ×2 | SDA→3.3V、SCL→3.3V | I²C信号をHIGHへ戻すプルアップ。データシート例4.7kΩの代わりに手元の5kΩを使う。 |
| 0.1µF | VDD-GND間 | 電源ノイズを吸収する。 |
7-1. なぜ5kΩでよいのか
I²Cのプルアップ抵抗は「4.7kΩでなければ動かない」というものではない。小さすぎるとLOWへ下げるときの電流が増え、大きすぎるとHIGHへ戻る速度が遅くなる。今回は配線が短く、手元の5kΩがデータシート例の4.7kΩに近いため5kΩを使う。
| 抵抗値 | 今回の判断 | 理由 |
|---|---|---|
| 4.7kΩ | 基準値 | DHT20資料の代表例。 |
| 5kΩ | 今回使用 | 4.7kΩとの差が小さく、短いブレッドボード配線では同じ目的で使える。 |
| 2kΩ | DHT20には今回は使わない | 5kΩよりLOW時の電流が増える。5kΩがあるためそちらを優先する。 |
7-2. 0.1µFコンデンサは何をしているのか
抵抗が電流の流れ方を決める部品なのに対し、コンデンサは一時的に電気をためたり放したりできる。DHT20が測定や通信をするときに生じる短い電源の揺れやノイズを吸収するため、0.1µFコンデンサをVDDとGNDのすぐ近くへつなぐ。
SDA→3.3Vに5kΩを1本、SCL→3.3Vに5kΩを1本、VDD-GND間に0.1µFを1個入れる。DHT20のメーカー資料では、外付けプルアップ抵抗(例4.7kΩ)を使うことと、VDD-GND間へ100nFのデカップリングコンデンサをセンサーの近くに置くことが示されている。
8. PL-IRM1838Bの詳細配線
PL-IRM1838Bは、内部で約37.9kHzの赤外線キャリアを検出して復調する。つまりPicoは38,000回/秒の光を直接数えるのではなく、「赤外線が来ている区間/来ていない区間」をHIGH/LOWとして読む。出力はアクティブLOWなので、赤外線を検出している間はLOW側になる。
メーカーの応用回路では、PL-IRM1838BのVCC直前に47〜100Ωの直列抵抗を入れ、受信モジュール側のVCC-GND間に47µFコンデンサを置く構成が示されている。電源ノイズが受信回路へ入りにくくするためである。手元の100Ω抵抗はこの用途に使える。47µFには秋月117887(47µF・35V・電解コンデンサ)を使用できる。電解コンデンサは極性があるため、+を受信モジュール側VCC、−をGNDへ接続する。
メーカー外形図で、受光部(丸いレンズ側)を正面から見て足を下にすると左から Pin 1=Output、Pin 2=Ground、Pin 3=Vcc。今回の3.3V給電では出力HIGHも約3Vなので、Picoの3.3V GPIOへ直接入力できる。
9. IR LED送信回路の詳細
IR LEDをGPIOへ直接つながない。GPIOは「トランジスタをON/OFFする指令」だけを出し、LEDの電流はVBUS側から流す。
IR LEDは アノードを330Ω/VBUS側、カソードをBC337-40BUのCollector側へ接続する。BC337-40BUは平らな面を手前・足を下にして左から C(Pin 1)- B(Pin 2)- E(Pin 3)。
9-1. なぜBC337-40BUを使うのか
IR LEDはある程度の電流を流した方が遠くまで届く。一方、GPIOからLED電流を直接取り出す設計にはしない。そこでNPNトランジスタBC337-40BUを電子スイッチとして使う。秋月105998はON Semiconductor製で、BC337-40BUは45V・800mAのTO-92品なので、今回の約10mA級のIR LED駆動には十分な余裕がある。GP18がHIGHになるとBASEへ少量の電流が流れ、COLLECTOR–EMITTER間がONになり、LED側の電流が流れる。
9-2. なぜBASEに2kΩを入れるのか
BASE–EMITTER間はダイオードに近い性質を持つので、GPIOをそのままBASEへつなぐと電流が流れすぎる。今回は手元の2kΩを使う。BASE–EMITTER間電圧をおよそ0.7〜1.0V程度とみなすと、ベース電流はおおむね (3.3V − 0.7〜1.0V) ÷ 2000Ω ≒ 1.15〜1.3mA 程度になる。IR LEDを330Ωで約10mA級から試す構成には十分余裕のある駆動である。LED電流を大きく変更する場合は、ベース抵抗も再計算する。
9-3. なぜIR LEDに330Ωを入れるのか
OSI5LA5A33A-Bの代表的な順電圧を約1.6V、USB給電時のVBUSを約5Vとすると、トランジスタの電圧降下をいったん無視した上限寄りの概算は (5 − 1.6) ÷ 330 ≒ 0.0103A、約10.3mAとなる。実際にはBC337-40BUのCOLLECTOR–EMITTER間にも少し電圧がかかるため、LED電流はこれよりわずかに小さくなる。最初の動作確認では安全側の約10mA級から始めるため、今回は330Ωを使う。
| IR LED直列抵抗 | 上限寄りの概算電流※ | 今回の扱い |
|---|---|---|
| 330Ω | 約10.3mA | 最初に使用。安全側で送信確認する。 |
| 220Ω | 約15.5mA | 手元にあれば次の候補。330Ωで距離不足のときに検討する。 |
| 100Ω | 約34mA | 最初から使わない。LED定格だけでなくパルス幅・デューティ比・BC337-40BUの駆動条件を確認してから検討する。 |
※ VBUS=5V、LED順電圧=1.6V、トランジスタの電圧降下を無視して計算した値。実際の電流は少し小さくなる。
抵抗値を小さくするとLED電流は増えて赤外線が強くなる可能性があるが、その分LEDとBC337-40BUへの負担も増える。「LEDの最大順電流が100mAだから100mAまで自由に流してよい」という意味ではない。連続電流とパルス電流では許容条件が異なるため、まず330Ωで動作を確認する。
OSI5LA5A33A-Bのメーカー資料ではPin 1がAnode(アノード)、Pin 2がCathode(カソード)。DC順電流の絶対最大定格は100mA、パルス順電流は最大1000mAだが、パルス幅10ms以下・デューティ比1/10以下という条件付きである。今回の初期回路は330Ωで約10mAに抑えるため、最大定格近くを狙わない。
秋月105998はON Semiconductor製BC337-40BUで、メーカー資料のTO-92端子番号は 1=Collector、2=Base、3=Emitter。平らな面を手前、足を下にして見ると左から C-B-E になる。今回の回路ではPin 1 CollectorをIR LEDのカソード側、Pin 2 Baseを2kΩ経由でGP18、Pin 3 EmitterをGNDへ接続する。
10. タクトスイッチの詳細配線
スイッチはGP15とGNDの間へ接続し、Pico内部のプルアップを有効にする。押していないときはHIGH、押すとGNDへつながってLOWになる。外付け抵抗は不要。
11. 対象エアコンと赤外線信号について
対象は日立 白くまくん RAS-AJ3626S。日立公式の2026年AJシリーズ資料では、このシリーズの付属ワイヤレスリモコンはRAR-8P2と確認できる。
エアコン型式 RAS-AJ3626S と純正リモコン RAR-8P2 は確定している。一方、日立の公開仕様で赤外線キャリア周波数や通信フォーマットまでは確認できていない。そのため「日立だからNEC方式」「必ず38.0kHz」と決めつけず、PL-IRM1838Bで純正リモコンの信号を実測する。PL-IRM1838Bの中心周波数は37.9kHzなので、まず実機のRAR-8P2を受信できるかを確認し、受信できたMARK/SPACE時間列をそのまま学習対象にする。
12. 実験1:PL-IRM1838Bで純正リモコンを受信する
RAR-8P2は受信モジュールへ向けるのではなく、普段どおりRAS-AJ3626Sへ向ける。PL-IRM1838Bは、その送信光を横から同時に受けられる位置へ置く。
- Picoの電源を外した状態でPL-IRM1838Bを配線する。
- USBでPicoをPCへ接続する。
- MicroPythonでGP16を入力に設定する。
- 立ち上がり・立ち下がりの時刻を記録する。
- 純正リモコンRAR-8P2をRAS-AJ3626Sへ向けて電源ONを押す。
- エアコンが反応し、同時にGP16へパルス列が入ることを確認する。
- 電源OFF、温度変更、モード変更でも同様に記録する。
from machine import Pin
from time import ticks_us, ticks_diff, sleep_ms
IR_RX = 16
pin = Pin(IR_RX, Pin.IN)
last = ticks_us()
pulses = []
def edge(p):
global last
now = ticks_us()
pulses.append((p.value(), ticks_diff(now, last)))
last = now
pin.irq(trigger=Pin.IRQ_RISING | Pin.IRQ_FALLING, handler=edge)
print("純正リモコンをエアコンへ向けて1回操作")
sleep_ms(3000)
pin.irq(handler=None)
print(pulses)
13. 実験2:赤外線信号を「時間列」として保存する
PL-IRM1838Bは38kHzキャリアを復調するので、保存するのは主に「赤外線がある区間(MARK)」と「ない区間(SPACE)」の長さである。エアコンのプロトコルを最初からNECなどと決めつけず、まず実測値を保存する。
操作名と時間列を対応付けて保存する。例:power_on、cool_26、dryなど。エアコンリモコンは設定状態をまとめて送る機種が多いため、「温度+ボタン」だけを単独コマンドと考えず、実際に受信したフレームを基準にする。
14. 実験3:まず38kHzでIR LEDを点滅させる
赤外線受信モジュールは単にIR LEDを点灯しただけでは反応しにくい。赤外線リモコンでは数十kHzの搬送波で高速点滅させる。RAR-8P2の正確な搬送波周波数は公開仕様で未確認なので、まずPL-IRM1838Bの中心周波数に近い38kHzで試す。PicoではPWMで38kHzの搬送波を作れる。
from machine import Pin, PWM
from time import sleep_ms
pwm = PWM(Pin(18))
pwm.freq(38000)
pwm.duty_u16(32768) # 約50% duty
sleep_ms(1000)
pwm.duty_u16(0)
pwm.deinit()
この段階ではエアコンを動かす必要はない。スマートフォンのカメラでIR LEDが点滅しているかを見る方法もあるが、機種によって赤外線カットが強く見えないことがある。より確実なのはPL-IRM1838Bで送信を受信して確認すること。
15. 実験4:学習したMARK/SPACEを再送信する
MARK区間だけPWMをまず38kHzで出し、SPACE区間ではPWMを止める。これを受信時に記録した順番どおり繰り返す。エアコンが反応しない場合は、受信時間列だけでなく搬送波周波数も検討対象にする。
from machine import Pin, PWM
from time import sleep_us
IR_TX = 18
pwm = PWM(Pin(IR_TX))
pwm.freq(38000)
# 例。実際には学習した時間列を使う
signal = [9000, 4500, 560, 560, 560, 1690]
for i, us in enumerate(signal):
if i % 2 == 0: # MARK
pwm.duty_u16(32768)
else: # SPACE
pwm.duty_u16(0)
sleep_us(us)
pwm.duty_u16(0)
pwm.deinit()
16. 実験5:DHT20で温度・湿度を読む
DHT20のI²Cアドレスは0x38。まずI²Cスキャンで存在を確認する。
from machine import Pin, I2C
i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=100000)
print([hex(x) for x in i2c.scan()])
# 0x38 が見えればDHT20を認識している
DHT20は起動後の待ち時間、測定開始コマンド、測定完了待ち、6バイトのデータ読出しという手順で測定する。まずはI²Cスキャン成功までを独立した実験として確認し、その後にDHT20用ドライバを組み込む。
17. 実験6:タクトスイッチを読む
from machine import Pin
from time import sleep_ms
sw = Pin(15, Pin.IN, Pin.PULL_UP)
while True:
if sw.value() == 0:
print("button pressed")
sleep_ms(300)
sleep_ms(10)
最終的には、このボタンが押されたら学習済みIR信号を1回送る。
18. 全機能を統合する
19. 実験を進める順番
| 段階 | 作業 | 成功条件 | 失敗したら確認 |
|---|---|---|---|
| 1 | Pico 2 WHへMicroPythonを入れる | PCからREPLを開ける | USB、BOOTSEL、ファームウェア |
| 2 | PL-IRM1838Bだけ接続 | 純正リモコン操作でGP16が変化 | Pin 1/2/3の向き、3.3V、GND |
| 3 | IR信号を記録 | 操作別の時間列を取得 | 受信位置、信号終了判定 |
| 4 | IR送信回路だけ接続 | 38kHzをPL-IRM1838Bで受信 | LED極性、BC337-40BUのC/B/E、抵抗 |
| 5 | 学習信号を再送信 | エアコンが同じ操作を再現 | MARK/SPACE、38kHz、距離・方向 |
| 6 | DHT20だけ接続 | I²C scanに0x38 | SDA/SCL、5kΩ×2、0.1µF、3.3V、GND |
| 7 | 温湿度測定 | 温度・湿度を取得 | 測定コマンド、待ち時間 |
| 8 | タクトスイッチ | 押すとLOW | GP15、GND、PULL_UP |
| 9 | 統合 | 温湿度・ボタン・IRが同時動作 | 一機能ずつ無効化して切り分け |
20. 電源を入れる前のチェック
- 3.3VとGNDが直接つながっていないか
- VBUSの約5VがPicoのGPIOへ直接入る経路がないか
- DHT20のPin 1〜4を逆にしていないか
- DHT20のSDA/SCLに5kΩ×2、VDD-GND間に0.1µFが入っているか
- PL-IRM1838BのPin 1=OUT、2=GND、3=VCCを確認したか
- PL-IRM1838Bの電源側に100Ωと47µFの推奨フィルタが入っているか
- BC337-40BUは平らな面を手前・足を下にして左からC-B-E(Pin 1=Collector / 2=Base / 3=Emitter)になっているか
- OSI5LA5A33A-BのPin 1=アノード、Pin 2=カソードを確認したか
- IR LEDに330Ω、BC337-40BU BASE(Pin 2)に2kΩが入っているか
- すべてのGNDが共通になっているか
21. 自由研究として記録する内容
| 実験 | 変える条件 | 記録するもの |
|---|---|---|
| IR受信 | 電源ON/OFF、温度、モード | MARK/SPACEの時間列 |
| 再現性 | 同じ操作を5回程度 | 時間列がどの程度一致するか |
| IR送信距離 | 0.5m、1m、2m、3m | エアコンが反応した距離 |
| IR送信角度 | LEDの向きを変える | 反応できる角度 |
| 温湿度 | 時間経過 | 温度・湿度の推移 |
| 統合動作 | ボタン操作 | 押下からIR送信までの結果 |
22. 第1部の完成条件
- 純正リモコンをエアコンへ向けた実際の操作信号をPL-IRM1838Bで同時受信できる。
- 受信信号を時間列として保存できる。
- OSI5LA5A33A-B + BC337-40BUで38kHzの赤外線搬送波を生成できる。
- 学習した信号を再送信してエアコンを操作できる。
- DHT20から温度・湿度を取得できる。
- タクトスイッチから手動送信できる。
- LCDなしで、USBシリアル出力から現在値と動作状態を確認できる。
23. 第2部へのつながり
第1部が完成したら、Pico 2 WHを「エアコンの近くに置く実働機」にする。PicoはDHT20、IR受信、IR送信を担当し、Wi-Fi経由でRaspberry Pi 4Bなどのサーバーと通信する。4B側はSSH、Nostr、ログ保存、外部からの命令受付などを担当する。
24. 参考資料
- Raspberry Pi Ltd., Raspberry Pi Pico 2 W Datasheet:40ピン配置、3V3、VBUS、GPIOが3.3V固定であること。
- Para Light Electronics, PL-IRM1838B Data Sheet:電源2.7〜5.5V、中心周波数37.9kHz、active-low、Pin 1=Output / 2=Ground / 3=Vcc。
- Aosong / ASAIR, DHT20 Data Sheet:電源2.2〜5.5V、I²C、アドレス0x38、Pin 1=VDD / 2=SDA / 3=GND / 4=SCL、4.7kΩプルアップ例、0.1µFデカップリング。
- OptoSupply OSI5LA5A33A-B(秋月電子商品ページ):940nm、順電圧1.6V、順電流最大100mA、放射強度100mW/sr、半減角30°。
- Fairchild / ON Semiconductor, BC337/338 Datasheet:BC337-40BUはNPN、45V、800mA、TO-92。端子はPin 1=Collector / 2=Base / 3=Emitter(平らな面を手前にして左からC-B-E)。
- 秋月電子 105998 BC337-40BU:ON Semiconductor製BC337-40BU、10個入り。今回のIR LEDスイッチ用に採用。
- 日立 ルームエアコン AJシリーズ(2026年):対象機種RAS-AJ3626Sと付属リモコンRAR-8P2の確認。
- 秋月電子 117887 47µF 35V 電解コンデンサ:PL-IRM1838Bの47µF電源フィルタ用。
- 秋月電子 110147 0.1µF セラミックコンデンサ:DHT20の100nFデカップリング用。
この資料では、手元の5kΩ・2kΩ・330Ωを利用し、まず安全側の電流で一つずつ動作確認する。IR LEDの到達距離を伸ばすために抵抗値を小さくする場合は、LEDの連続・パルス定格、デューティ比、BC337-40BUのベース電流とコレクタ電流を確認してから変更する。