部屋の電気はリモコンで点けたり消したりできるタイプで
普段は枕元にリモコンを置いといて寝る前に消すようにしてけど、机に向かってる時に電気を操作したいことが結構あって、いちいち枕元までリモコンを取りに行くのがめんどくさい
そんなわけで机においておくリモコンを作ろうと思います

リモコンには点灯/消灯以外に明るさ調節や常夜灯などのボタンがあるけど点灯/消灯以外はあまり使わないので点灯/消灯に絞って作ることにします


リモコンから送信される信号はこんな感じ

DS1Z_QuickPrint41

データ解析とかめんどいことはやりたくないのでこのデータをCSV形式で保存

csv

テキトーなスクリプトを書いて自動で(笑)プログラム生成
CSVからH/Lを判断してdelayとか入れてるだけです

無題

この作業を点灯/消灯の2回分やります

生成されたのをコピペして
あとは普通にプログラム書いていきます
マイコンは手元にあったPIC12F1501

mplabx

また赤外線LEDは38kHzで変調しなければいけないので、PWMモジュールで38kHzの波形を生成、CLC(マイコン内部にロジック回路が作れる機能)でデータと合成して出力します。
CLCはプログラム入力(?)がないようなのでコンパレータの出力を入力としてコンパレータの出力を反転させたりすることで擬似的にプログラムから入力しています。
今気づいたけどCLCなんて使わずにPWMをON/OFFするだけでよかったのでは...

実験風景
実験中、正常動作しているはずなのにうまくいかないということがありましたが、単にLEDの光が弱すぎたようです。
調べてみると赤外線LEDの場合は普通数百mA~1Aほど流して輝度を上げてるようです。ぱるすだからいけるってはっきりわかんdね

KKgLJe

数百mA流すにはマイコンの出力では非力なので手元にあった2SK2961で赤外線LEDをドライブ
ちなみに赤外線LEDはジャンク袋に入ってた詳細不明品
んで500mAくらい流したら普通に動作してくれました。
あとLEDは2シリです


実験もうまくいったのでテキトーに基板を作る

CIMG0008

テキトーすぎて1列ミスった
電池ボックスがなかったので電源はUSBにしました

いいですね



残念なところはボタンがタクトスイッチなところかなー押しにくい気がするまぁいいけど
あとボタンの色と電気の点灯消灯が逆じゃねまぁいいけど

くっそテキトーな工作だったけど、珍しく実用的なものができた
これでPCに張り付いたまま電気点けたり消したりできるね(ニート感)