PIC24Fに電子コンパスHMC6352をつないでみる
花岡ちゃんのウィークエンド
今回は以前にテストしたI2C接続の磁気方位センサ、HMC6352を接続してみます。このデバイスについては、以前の投稿、これとこれを見てください。
このデバイスからは2バイト連続でデータを読み出すので、ACKを返すものとNACKを返すもの、二つの読み出し関数を用意しなければなりません。EEPROMの読み出しは1バイトだけだったので、いい加減に読み出してあとはストップコンディションでごまかしていますが、これはそうは行きません。ちゃんとした読み出し関数i2c_readとi2c_read_noackを作りました。後者はACKを返しません。
試作したのは、電子コンパスの情報を100ms周期でI2C液晶に表示するプログラムです。真北を0として3599まで、つまり方位角X10の数値を表示します。
HMC6352はPIC24FのSCK1とSDA1に接続します。この投稿の回路図を見てください。EEPROMは使ってないので取り付けなくてもかまいません。
詳細な中身はこのMPLAB Xプロジェクトを見てもらえばわかります。このプロジェクトにはEEPROM、I2C液晶、HMC6352用の関数が含まれています。
「pic24f_test_3.zip」をダウンロード
実をいうとI2Cには苦手意識があって、あまり使って来ませんでした。しかし、I2C接続のデバイスには魅力的なモノがおおく、この際苦手を克服しておきたいと思います。
これから面白そうなI2Cデバイスのドライバ関数を製作してみようかと思っています。
« PIC24Fで秋月のI2C液晶を使ってみる | トップページ | PIC24FにジャイロコンパスXG1300Lをつなぐ »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
« PIC24Fで秋月のI2C液晶を使ってみる | トップページ | PIC24FにジャイロコンパスXG1300Lをつなぐ »
コメント