ラジオモジュールのプログラミング開始です。今回はお手軽 Arduino ではなく、普通の AtmelStudio6 で開発を行ないます。ちょっと久しぶりだったので思い出すのに時間かかったよ。
とにかく、LCD に文字が出ないと話しにならないので I2C バスの送信部分(エラー処理無視)のクラスを作成。見た目は Arduino IDE の Wire ライブラリと同じメソッド名で実装。と言ってもコンストラクタ、begin(), beginTransmission(), endTransmission() を書いただけです。
で、ブレッドボードの ATMEGA328P に書き込みしますが、このときフューズビットの CKDIV8 のチェックを外して内蔵CR発振器の分周はしないようにし、8MHz のクロックで動くようにしています。電圧も3.2V と表示されているので大丈夫です。
ということで、お決まりの Hello World を液晶表示して出るか確認し表示されました。早速出てきた問題点は
- テスト LED を点けたり消したりするだけで、液晶のコントラストが微妙にかわる(ものすごいセンシティブ)
- I2C バスを抵抗でプルアップして動いた(内蔵プルアップで動くはずが…) ちょっと調べないと駄目かな。
今後は I2C の読み込みルーチン作成です。これが無いとラジオモジュールのステータス読めないのでコーディングします。それと液晶が HD44780 互換のコマンド体系なので、必要最低限のコマンドをクラス化するあたりかなと