RTCとBME180 RTC DS1307 が動作しない件

 Arduinoでまず作るのは、

時計、温度湿度気圧計あたりだと思います。

時計といえばRTC(DS1307)、気圧計は一番安いBME180を選択することが多いと思いますが、

この2つは相性が非常に悪く、最悪RTCがまともに動作しない、変な値に飛んでしまう

などの症状が出てきて頭抱えてました。

こういうときのググる先生ですが、この組み合わせは1、2件ぐらいで、

しかもわけがわからん事が書いてあって勝手に解決してるって参考にもなりゃしねぇ。

ってことでメモ書いておきます。

BME180は「Vccは3.3Vね、5Vにつながないでね♡」って注意書きはありますが、

SDAとSCKはそのままでいいと思えるフシがあります。実際BME180単独をI2Cに

つないだときは正常に動いています。


でも実際には3.3V→5Vレベルコンバーターが必要なようです。

その理由は以下に書いてあります。

https://umek.topaz.ne.jp/mameduino/bmp180_pressuresensor_1/

上記ブログでもかいてますが、「別にレベル変換しなくてもつかえるよね?」

っていうのは大抵のHPにかかれているのでなんとなくそうだ、とぐるぐるしちゃうの

がアマチュアの情けないところであります。


こんなこともあろうかと、

秋月からI2Cレベル変換ユニット買ってました。

I2Cバス用双方向電圧レベル変換モジュール(FXMA2102): 半導体(モジュール) 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)

ここで大ハマリ。

OEピンに関して何も言及がなかったので無視してましたが、

OEピンはVccに接続しないと、動作しません。

これはデーターシートに書いてあることですが、指摘されないと見逃しますよね。


この処置の結果、Nanoパチもん+RTC+BME180で機嫌よく動いてるようです。

教訓:必要なものはどこかに落ちてる。

以上です。



コメント