Attiny13Aで赤外線リモコン
寝室のシーリングライト(蛍光灯)のリモコンが無いので作ってみました。
なんかのマイコンで赤外線LED点滅させるだけでしょ?って軽い気持ちでやってみたら、なかなか苦労しました。
勿論、知識がある人なら直ぐにできるのでしょうけど。。
リモコン全景;
手作り感満載ですね。
写真の貼り付けもっと小さく表示できないのでしょうか。やり方が分からず。
使用した材料達;
- 中華基盤。近所の電子部品屋で購入。
- 赤外線LED。秋月電子(http://akizukidenshi.com/catalog/g/gI-12612/)。これが今回のキーパーツ。特性が合う必要あり。
- 青色LED。動作確認用。適当で可。
- On/Offスイッチ。壊れたリモコンから流用。
- NPNトランジスタ。秋月電子で2N2222互換品(http://akizukidenshi.com/catalog/g/gI-09406/)。特性関係ないので他のでも可。
- LED電流制限用抵抗。LEDの特性に合わせて選択して下さい。今回は4.5V電源で50Ohmとかにしてます。自作なので焼き切れなければOK(適当)。
- 電池ボックス。LR44x3用。3Dプリンタとかで作りたいですが、無いので単4ので代用。
- マイコン。ATTiny13A。これも秋月電子(http://akizukidenshi.com/catalog/g/gI-02911/)。DIP8pinソケットも秋月。お好きなマイコンでどうぞ。
- LED駆動の電流低下防止用キャパシタ。これも適当で。ここでは手持ちの100u。
参考にさせて頂いた技術サイト達;
たくさんの先人達のお知恵のお陰で出来たので、もう足を向けては寝られません。
でもきっと向けられない方角が多すぎますね。足上げて寝ればいいでしょうか。
赤外線LEDの扱い方と通信プロトコルについて;
- make.bcde.jp
-
https://www.vishay.com/docs/80071/dataform.pdf こちらはVishayって会社のIR通信プロトコルの説明書。網羅的に理解できます。
海外のも含めてもっとあちこち参考させてもらったのですが全部はメモっておらず。
苦労ポイントとしては、
- 赤外線LEDが動いてるかどうかが分からず、電流を掛けまくって(強い電流を流すと赤外線LEDでも光るので)壊したり
- 通信プロトコルを理解せずに、元のリモコンと同じ様な波形を出せばいいだろうと思って、でも反応しなかったり(ある程度、タイミングに厳密さが必要)。
- そもそも赤外線LEDそのものが軟弱だったり
がありました。
一番ハマったのが赤外線LED出力の強弱。
TVとか扇風機だと弱くても動くのですが、蛍光灯についてはノイズ対策なのか信号を強めで送る必要がありました。
弱いやつ(TLN225)だと3,4個並べないと動かなかったのが、秋月で買ったやつだと1個だけで「ピッ」と。。
ATTiny13Aについて;
これも初めて使用したのであちこちのサイトを参考にしました。
IR LEDの制御はIRremoteは使ってません。
上記にあるMakeの「赤外線リモコンを作る」サイトを参考にプロトコル波形を(ほぼ)正確に出力する形式で割り込みPWM無しで、普通のピンで制御してます。
只、ATTiny13AのRAMが64byteと少ないので、波形をRAMには置いておけず(これだけで100byteぐらい使うので)、Flashに置いてます。
後の注意ポイントとしては8bitマイコンなので、short intサイズの変数を使うと、複数回メモリにデータを取りに行く処理が発生する為、処理速度を気にする必要があります。
今回は動作周波数9.6MHzにして動かしてます。
書き込みはArduino Uno経由です。前回作った自作シールドも使用。
今後;
赤外線リモコンの送受信については程々理解できたので、今後はこれを使って、ロボットカーかカムロボットを操作するプロジェクトにでも取り組もうかと思ってます。
ではでは。