ちょっと赤外線でシリアル通信したいなーと思うことがあったのでArduino用に作ったので、いつも通りgistに公開しました。
ArduinoのDigitalPin12に赤外線LEDをつけて送信するようになっています。
PORTBを直接いじってる関係でPORTB上にほかのデバイスをつけることができなくなります。
PWM出力の周波数をいじれば、もっとうまいことできるような・・・?
ちょっとそのあたりの知識がまだ不足気味です。
受信するときは赤外線受信モジュールのVoutをSerialReadすればOK(だと思います)。
自分が試したときはSerial-USB変換モジュールのRXに直結してPCから信号を見ていまた。
しかしこのプログラム、delay関数で直接、1周期の時間を指定しているせいで、ほかの処理が遅くなると発信周波数がずれて、正しい信号を送れなくなるのです・・・
16MHzのArduinoなら特に問題にはならなかったけど、8MHzのArduinoだとうまく動かない。
うーん、どうしたものか。