hiro yamamoto works

ESP8266 Web logger
RaspberryPi HiRes Audio
Mini Solar power system
当ブログ掲載内容は無保証です。利用は自己責任でお願いいたします。

 

カレンダー

2020
November
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

QRコード

検索



このブログを検索

カウンター

本日のアクセス
昨日のアクセス
総アクセス数

ブログサービス

Powered by

teacup.ブログ
RSS

MMA8451を2個使って加速度測定

ESPr-oneにMM8451を2個つないで測定できました。
(設定できるI2Cアドレスが2つなので2個です。)

I2Cアドレス設定
初期設定は0x1D、A端子をGND接続すると0x1Cになります。
クリックすると元のサイズで表示します
センサはAdafruit MMA8451 Accelerometer Breakoutです。
3.3Vレギュレータ,レベル変換付き
(説明では「3Vまたは5Vの電源とロジックで使用しても
完全に安全です。」というようなことが書いてありました。
3.3Vは試していません。)

センサは電源&ロジック5Vで接続するのでレベル変換を
入れてます。(中央奥 AE-PCA9306 M-05452 ¥150
秋月電子)
クリックすると元のサイズで表示します
プルアップ抵抗(1kΩ)有効(ジャンパーカット忘れ)

センサはLANケーブルで接続していますが、
直接つないでも良いです。
クリックすると元のサイズで表示します
(2m程度の延長を想定してLANケーブル接続してます。)

スケッチ例MMA8451demoを改変して動作テストしてみた。
クリックすると元のサイズで表示します

Adafruit_MMA8451 mma = Adafruit_MMA8451();を
修正して次の2行にする。
Adafruit_MMA8451 mma1 = Adafruit_MMA8451();
Adafruit_MMA8451 mma2 = Adafruit_MMA8451();


if (! mma.begin()) { を次のように修正追加して
I2Cアドレスを指定
if (! mma1.begin(0x1D)||! mma2.begin(0x1C)) {


mma.setRange(MMA8451_RANGE_2_G);を次のように修正追加して
mma1.setRange(MMA8451_RANGE_2_G);
mma2.setRange(MMA8451_RANGE_2_G);


次の行も修正しておかないとエラーになるので
 修正前
Serial.print("Range = "); Serial.print(2 << mma.getRange()); Serial.println("G");

 修正後
Serial.print("MMA1 Range = "); Serial.print(2 << mma1.getRange()); Serial.println("G");
Serial.print("MMA2 Range = "); Serial.print(2 << mma2.getRange()); Serial.println("G");


void loop() { の中は
mmaはmma1もしくはmma2へ修正しないとエラーになります。
2個センサの加速度だけ表示するスケッチ抜粋
// Get a new sensor event 新しいセンサーイベントを取得する
sensors_event_t event;
mma1.getEvent(&event);

/* Display the results (acceleration is measured in m/s^2)
結果を表示します(加速度はm/s^2で測定されます)*/
Serial.print("X1: \t"); Serial.print(event.acceleration.x); Serial.print("\t");
Serial.print("Y1: \t"); Serial.print(event.acceleration.y); Serial.print("\t");
Serial.print("Z1: \t"); Serial.print(event.acceleration.z); Serial.print("\t");
Serial.println("m/s^2 ");

mma2.getEvent(&event);

/* Display the results (acceleration is measured in m/s^2)
結果を表示します(加速度はm/s^2で測定されます)*/
Serial.print("X2: \t"); Serial.print(event.acceleration.x); Serial.print("\t");
Serial.print("Y2: \t"); Serial.print(event.acceleration.y); Serial.print("\t");
Serial.print("Z2: \t"); Serial.print(event.acceleration.z); Serial.print("\t");
Serial.println("m/s^2 ");

Serial.println();
delay(1000);


クリックすると元のサイズで表示します

シリアルモニタの表示はこちら
クリックすると元のサイズで表示します

ESPr-One(ESP-WROOM-02)での記事ですが、Arduinoでも
使えると思います。
興味がある方はお試し下さい。

無保証自己責任でよろしくお願いします。
0
投稿者:管理人
投稿者
メール

 
コメント
URL
コメントは新しいものから表示されます。
コメント本文中とURL欄にURLを記入すると、自動的にリンクされます。
AutoPage最新お知らせ