hiro yamamoto works

マイコンハード、ソフトを作ったりしています。
お家や現場のお困りごと解決に!
内容利用は自己責任でお願いします。

MMA8451とBME280を2個づつ使う

2020-10-25 05:36:00 | マイコンハードウェア

ESP-WROOM-02 MMA8451とBME280を2個づつないで測定できました。
再編集


当初正常動作できるセンサケーブル長の合計は3m程度でした
が、I2C-Busバッファを追加することで合計10m可能となりま
した。(CAT5フラットタイプLANケーブルで2種センサのセッ
トを5m延長でそれぞれ接続し動作を確認)

バッファについては下記リンクの記事を見て下さい。
作ってみたI2C-BusバッファPCA9600
PCA9600 I2C-Bus Buffer改

PCA9600 I2Cデバイス構成ブロック図

センサについて
・Adafruit MMA8451 Accelerometer Breakout
 レギュレータ,レベル変換搭載 5V電源とロジック可
 I2Cプルアップ抵抗10kΩ付き
 I2Cアドレス 初期設定は0x1D、A端子をGND接続で0x1C

・BME280センサモジュール アマゾンで購入3個入1,880円
 レギュレータ,レベル変換搭載 5V電源とロジック可
 I2Cプルアップ抵抗10kΩ付き
 I2Cアドレス 初期設定は0x76
   パターンカットはんだブリッジで0x77(下画像)

 (ジャンパーパッド左と中央間のパターンをカット
 中央と右をはんだでブリッジする。)

MMA8451、BME280センサ
MMA8451、BME280センサ

スケッチは一部修正が必要かも知れませんが参考まで
また、各センサ用のライブラリはArduinoIDEのメニューから
「スケッチ」「ライブラリをインクルード」「ライブラリを
管理」センサ名で検索しインストールして下さい。
ありがたく使わせていただきます。

#include行の<>記号は半角へ修正して下さい。
#include <Wire.h>
#include "Adafruit_MMA8451.h"
#include <Adafruit_Sensor.h>

#include "SparkFunBME280.h"
BME280 mySensor1;
BME280 mySensor2;

Adafruit_MMA8451 mma1 = Adafruit_MMA8451();
Adafruit_MMA8451 mma2 = Adafruit_MMA8451();


void setup(void) {
Serial.begin(115200);
Serial.println("");
Serial.println("Reading basic values from MMA8451 and BME280");

Wire.begin(4, 5); // //デフォルトは0x1D
if (! mma1.begin(0x1D) || ! mma2.begin(0x1C)) {
//mmaのbegin()の中でwire.begin()してた
Serial.println("MMA8451 Couldnt start");
while (1);
}
Serial.println("MMA8451 found!");

mySensor1.setI2CAddress(0x76);//default 0x76
mySensor2.setI2CAddress(0x77);
if (! mySensor1.beginI2C() || ! mySensor2.beginI2C() ) {
//Begin communication over I2C
Serial.println("BME280 did not respond. Please check wiring.");
while (1); //Freeze
}

mma1.setRange(MMA8451_RANGE_2_G);
mma2.setRange(MMA8451_RANGE_2_G);

Serial.print("MMA1 Range = ");
Serial.print(2 <


シリアルモニタ表示
I2C 4センサのシリアルモニタ表示

Arduino UNO等でもできると思います。
興味がある方はお試し下さい。

無保証自己責任でよろしくお願いします。


最新の画像もっと見る

コメントを投稿