大吉大利!!

表アカで書きにくいあれこれを書いてくつもり。

Attiny13Aで赤外線リモコン

寝室のシーリングライト(蛍光灯)のリモコンが無いので作ってみました。

なんかのマイコンで赤外線LED点滅させるだけでしょ?って軽い気持ちでやってみたら、なかなか苦労しました。

勿論、知識がある人なら直ぐにできるのでしょうけど。。

 

 

リモコン全景;

手作り感満載ですね。

写真の貼り付けもっと小さく表示できないのでしょうか。やり方が分からず。

f:id:RySa:20200222134653j:plain

IR LED Remote Controller

使用した材料達;

 

参考にさせて頂いた技術サイト達;

たくさんの先人達のお知恵のお陰で出来たので、もう足を向けては寝られません。

でもきっと向けられない方角が多すぎますね。足上げて寝ればいいでしょうか。

 

赤外線LEDの扱い方と通信プロトコルについて;

 

海外のも含めてもっとあちこち参考させてもらったのですが全部はメモっておらず。

苦労ポイントとしては、

  • 赤外線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経由です。前回作った自作シールドも使用。

rysa.hatenablog.com

 

今後;

赤外線リモコンの送受信については程々理解できたので、今後はこれを使って、ロボットカーかカムロボットを操作するプロジェクトにでも取り組もうかと思ってます。

 

ではでは。