Skip to main content

Grove - 3軸アナログ加速度センサー 40g (ADXL356C)

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

pir

当社のウェブサイトでは、さまざまなシナリオやニーズに対応する3軸加速度センサーを見つけることができます。今回は、産業用グレードで高い安定性、高精度、低消費電力を備えたADI ADXLシリーズの3軸加速度センサーをご紹介します。

Grove - 3軸アナログ加速度センサー ±40g (ADXL356C) は、アナログ出力のMEMS加速度センサーです。このセンサーは、±10gと±40gの2つの測定範囲を選択できます。少しのキャリブレーション作業を行うだけで、比較的正確な結果を得ることができます。オンボードのGroveポートは、2チャンネルのアナログデータを出力できます:1つはZ軸用、もう1つはX/Y軸用です。オンボードスイッチを使用して、X軸またはY軸の信号を選択して出力できます。また、4ピンのはんだ付け穴を使用して、X/Y/Z軸を同時に出力することも可能です。このセンサーの消費電力は非常に低く、通常動作モードでは150 μA、スタンバイモードではわずか21 μAです。背面のパッド接続を変更することで動作モードを切り替えることができます。

ADI ADXLシリーズ加速度センサーには、異なる測定範囲と出力ニーズに対応する4つの製品があります:

製品測定範囲出力ポート消費電力
Grove - 3軸アナログ加速度センサー ±20g (ADXL356B)±10 / ±20gアナログ測定モード:150 μA / スタンバイモード:21 μA
Grove - 3軸アナログ加速度センサー ±40g (ADXL356C)±10g / ±40gアナログ測定モード:150 μA / スタンバイモード:21 μA
Grove - 3軸デジタル加速度センサー ±40g (ADXL357)±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/gデジタル I2C測定モード:200μA
Grove - 3軸デジタル加速度センサー ±200g (ADXL372)±200gデジタル I2C測定モード:22μA

pir

特徴

  • 業界トップクラスの低ノイズ、温度によるオフセットドリフトの最小化、長期安定性を実現し、最小限のキャリブレーションで精密なアプリケーションを可能にします。
  • 気密パッケージにより、長期的な安定性が優れています。温度による 0 g オフセット(全軸):最大 0.75 mg/°C。
  • ADXL356 の高周波数における低ノイズは、ワイヤレス状態監視に最適です。
  • 低ドリフト、低ノイズ。
  • 超低消費電力:通常動作モード 150 μA、スタンバイモード 21 μA。

アプリケーション

  • 慣性計測ユニット(IMU)/高度および方位基準システム(AHRS)
  • プラットフォーム安定化システム
  • 構造健全性モニタリング
  • 状態監視
  • 地震イメージング
  • 傾斜センサー
  • ロボティクス

仕様

パラメータ
電源電圧3.3V / 5V
動作周囲温度-40 – 125℃
出力フルスケール範囲 (FSR)±10g / ±40g
XOUT, YOUT, ZOUT の感度 / (V1P8ANA に比例)±10 g@80 mv/g (Typ.) / ±40 g@20 mv/g (Typ.)
温度による感度変化±0.01%/°C (TA = −40°C ~ +125°C)
0g オフセット / (V1P8ANA/2 に基づく)±125 mg (Typ.)
出力インターフェースアナログ

ピン配置

pir

pir

対応プラットフォーム

ArduinoRaspberry Pi

pir

pir

はじめに

Arduinoで遊ぶ

必要な材料

Seeeduino V4.2Base ShieldGrove 3軸加速度計 ADXL356C

pir

pir

pir

今すぐ購入今すぐ購入今すぐ購入

さらに、Seeeduino Lotus M0+を検討することもできます。これはSeeeduino V4.2とBase Shieldの組み合わせに相当します。

note

1 USBケーブルを優しく差し込んでください。そうしないとポートを損傷する可能性があります。内部に4本のワイヤーがあるUSBケーブルを使用してください。2本のワイヤーしかないケーブルではデータを転送できません。お持ちのケーブルが不明な場合は、こちらをクリックして購入できます。
2 各Groveモジュールには購入時にGroveケーブルが付属しています。Groveケーブルを紛失した場合は、こちらをクリックして購入できます。

ハードウェア接続

  • ステップ1. Grove - 3軸アナログ加速度計 ±20g (ADXL356B) をBase ShieldのA0ポートに接続します。

  • ステップ2. Grove - Base ShieldをSeeeduinoに差し込みます。

  • ステップ3. USBケーブルを使用してSeeeduinoをPCに接続します。

pir

ソフトウェア

note

Arduinoを初めて使用する場合は、開始する前にArduinoの使い方をご覧になることを強くお勧めします。

または、以下のコードをコピーすることもできます。

note

このコードはADXL_356BとADXL_356Cの両方に対応しています。356Cで使用する場合は、#define MODUEL_RANGE 20#define MODUEL_RANGE 40に切り替えてください。そうしないと動作しません。

#include <Arduino.h>

#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#define SYS_VOL 3.3
#else
#define SERIAL Serial
#define SYS_VOL 5
#endif

float cali_data_xy;
float cali_data_z;
int16_t scale;

#define MODUEL_RANGE 20

#define MODULE_VOL 1.8

#define CALI_BUF_LEN 15
#define CALI_INTERVAL_TIME 250

float cali_buf_xy[CALI_BUF_LEN];
float cali_buf_z[CALI_BUF_LEN];

#define XY_PIN A0
#define Z_PIN A1

float deal_cali_buf(float *buf)
{
float cali_val = 0;

for(int i = 0;i < CALI_BUF_LEN;i++)
{
cali_val += buf[i];
}
cali_val = cali_val/CALI_BUF_LEN;
return (float)cali_val;
}

void calibration(void)
{
SERIAL.println("モジュールを水平に置いてください!");
delay(1000);
SERIAL.println("キャリブレーションを開始します........");

for(int i=0;i<CALI_BUF_LEN;i++)
{
cali_buf_xy[i] = analogRead(XY_PIN);;
cali_buf_z[i] = analogRead(Z_PIN);
delay(CALI_INTERVAL_TIME);
}
cali_data_xy = deal_cali_buf(cali_buf_xy);
cali_data_z = (float)deal_cali_buf(cali_buf_z);
SERIAL.println("キャリブレーション完了!!");
scale = (float)1000 / (cali_data_z - cali_data_xy);
cali_data_z -= (float)980 / scale;
SERIAL.println(cali_data_xy);
SERIAL.println(cali_data_z);
SERIAL.println(scale);
}

void AccMeasurement(void)
{
int16_t val_xy = 0;
int16_t val_z = 0;
val_xy = analogRead(XY_PIN);
val_z = analogRead(Z_PIN);

SERIAL.print("生データ xy = ");
SERIAL.println(val_xy);
SERIAL.print("生データ z = ");
SERIAL.println(val_z);
SERIAL.println(" ");

val_xy -= cali_data_xy;
val_z -= cali_data_z;
SERIAL.print("x または y 方向の加速度は ");
SERIAL.print(val_xy * scale / 1000.0);
SERIAL.println(" g ");
SERIAL.print("z 方向の加速度は ");
SERIAL.print(val_z * scale / 1000.0);
SERIAL.println(" g ");
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
delay(1000);
}

void setup()
{
SERIAL.begin(115200);
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
analogReadResolution(12);
#endif
calibration();
SERIAL.print("スケール = ");
SERIAL.println(scale);
}

void loop()
{
AccMeasurement();
}
  • ステップ2. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

  • ステップ3. Arduino IDEのシリアルモニタを開きます。ツール->シリアルモニタをクリックするか、++ctrl+shift+m++キーを同時に押します。ボーレートを115200に設定します。

  • ステップ4. キャリブレーション シリアルモニタのキャリブレーション手順に従ってください。数ステップでキャリブレーションが完了します。

  • ステップ5. これでセンサーを使用できるようになり、出力は以下のようになります:

モジュールを水平に置いてください!
キャリブレーションを開始します........
キャリブレーション完了!!
184.93
185.03
121
スケール = 121
生データ xy = 185
生データ z = 193

x または y 方向の加速度は 0.00 g
z 方向の加速度は 0.85 g



生データ xy = 188
生データ z = 196

x または y 方向の加速度は 0.36 g
z 方向の加速度は 1.21 g
note

Groveポートを使用してデータを出力する場合、X軸とY軸を同時に出力することはできません。オンボードスイッチを使用して出力チャンネルを選択できます。X/Y/Zを同時に出力したい場合は、4ピンのはんだ付け穴を使用してください。

FAQ

Q1: ±10gの測定範囲を選択する方法は?

A1: 測定範囲を変更するには、ハードウェアとソフトウェアの両方を修正する必要があります。まず、±40gに接続されている背面パッドを切断し、±10gに再はんだ付けします。その後、コードブロックの12行目を以下のように変更してください。

#define MODUEL_RANGE           40

$$ \downdownarrows $$

#define MODUEL_RANGE           10

回路図オンラインビューア

リソース

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。

Loading Comments...