ADXL345
Datasheet
Datasheet
計測可能な値
種類 |
概要 |
加速度 |
3軸、±2g / ±4g / ±8g / ±16g(最大13ビットの分解能まで対応) |
タップ |
シングルタップ/ダブル・タップを検出 |
フリー・フェール |
端末の自由落下を検出 |
アクティブ/インアクティブ |
加速度の有無と現在の加速度がユーザー設定可能な閾値以上か、もしくは以下であるかを検出 |
Slave address
Register map
Address |
Name |
Type |
Default |
概要 |
0x00 |
DEVID |
R |
11100101 |
Device ID |
0x1D |
THRESH_TAP |
R/W |
00000000 |
タップしきい値 |
0x1E |
OFSX |
R/W |
00000000 |
X-axisオフセット |
0x1F |
OFSY |
R/W |
00000000 |
Y-axisオフセット |
0x20 |
OFSZ |
R/W |
00000000 |
Z-axisオフセット |
0x21 |
DUR |
R/W |
00000000 |
タップ持続時間 |
0x22 |
Latent |
R/W |
00000000 |
タップ待ち時間 |
0x23 |
Window |
R/W |
00000000 |
タップWindow |
0x24 |
THRESH_ACT |
R/W |
00000000 |
Activityしきい値 |
0x25 |
THRESH_INACT |
R/W |
00000000 |
Inactivityしきい値 |
0x26 |
TIME_INACT |
R/W |
00000000 |
Inactivity time |
0x27 |
ACT_INACT_CTL |
R/W |
00000000 |
Axis enable control for activity and inactivity detection |
0x28 |
THRESH_FF |
R/W |
00000000 |
Free-fallしきい値 |
0x29 |
TIME_FF |
R/W |
00000000 |
Free-fall time |
0x2A |
TAP_AXES |
R/W |
00000000 |
シングル・ダブルタップの軸別の設定 |
0x2B |
ACT_TAP_STATUS |
R |
00000000 |
シングル・バブルタップのソース |
0x2C |
BW_RATE |
R/W |
00001010 |
データレートとパワーモード操作 |
0x2D |
POWER_CTL |
R/W |
00000000 |
パワーセービング機能の操作 |
0x2E |
INT_ENABLE |
R/W |
00000000 |
割り込みを有効にする操作 |
0x2F |
INT_MAP |
R/W |
00000000 |
Interrupt mapping control |
0x30 |
INT_SOURCE |
R |
00000010 |
Source of interrupts |
0x31 |
DATA_FORMAT |
R/W |
00000000 |
データフォーマット操作 |
0x32 |
DATAX0 |
R |
00000000 |
X-Axis Data 0(LSB) |
0x33 |
DATAX1 |
R |
00000000 |
X-Axis Data 1(MSB) |
0x34 |
DATAY0 |
R |
00000000 |
Y-Axis Data 0(LSB) |
0x35 |
DATAY1 |
R |
00000000 |
Y-Axis Data 1(MSB) |
0x36 |
DATAZ0 |
R |
00000000 |
Z-Axis Data 0(LSB) |
0x37 |
DATAZ1 |
R |
00000000 |
Z-Axis Data 1(MSB) |
0x38 |
FIFO_CTL |
R/W |
00000000 |
FIFO control |
0x39 |
FIFO_STATUS |
R |
00000000 |
FIFO status |
Who_am_i
AXDL345の場合、0x5eが返ってくる。
arduino
#define ADXL345_WHO_AM_I 0x00
#define ADXL345_DEVICE 0x32
bool searchDevice()
{
byte device = 0x00;
readI2c(ADXL345_WHO_AM_I, 1, &device);
if(device == ADXL345_DEVICE){
return true;
} else{
return false;
}
}
Configuration
Data Formatでは、
- SELF_TEST
- SPI
- INT_INVERT
- FULL_RES
- Justify
- Range
の設定ができる。
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
SELF_TEST |
SPI |
INT_INVERT |
0 |
FULL_RES |
Justify |
Range |
Range |
Range 設定
Bit1 |
Bit0 |
g Range |
0 |
0 |
±2 g |
0 |
1 |
±4 g |
1 |
0 |
±8 g |
1 |
1 |
±16 g |
PowerOn
Power Controlでは
- Link
- AUTO_SLEEP
- Measure
- Sleep Wakeup
の設定ができる。MeasureにBitを立てると、計測が開始される。
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
0 |
0 |
Link |
AUTO_SLEEP |
AUTO_SLEEP |
Measure |
Sleep Wakeup |
Sleep Wakeup |
Sleep Mode有効時の読み込み周期
Bit1 |
Bit0 |
Frequency (Hz) |
0 |
0 |
8 (Hz) |
0 |
1 |
4 (Hz) |
1 |
0 |
2 (Hz) |
1 |
1 |
1 (Hz) |
加速度
Type |
Address |
DATAX0 |
0x32 |
DATAX1 |
0x33 |
DATAY0 |
0x34 |
DATAY1 |
0x35 |
DATAZ0 |
0x36 |
DATAZ1 |
0x37 |
シングルタップとダブルタップ
設定
Type |
Address |
THRESH_TAP |
0x1D |
DUR |
0x21 |
LATENT |
0x22 |
WINDOW |
0x21 |
シングルタップは、
- THRESH_TAPレジスト(TAPの強さのしきい値)
- DURレジスタ(TAPの持続時間)
の値を設定する必要がある。
ダブルタップは、
- THRESH_TAPレジスト(TAPの強さのしきい値)
- DURレジスタ(TAPの持続時間)
- LATENTレジスタ(識別間隔)
- WINDOWレジスタ(識別間隔の期限切れから新しい認識を始めるまでの間隔)
の値を設定する必要がある。
NAME |
Address |
値の意味 |
THRESH_TAP |
0x1D |
1単位は62.5 mg/LSB, 0xFFを設定すると16g。0にすると識別できない。 |
DUR |
0x21 |
1単位は625 µs/LSB。0にすると識別できない。 |
LATENT |
0x22 |
単位は、 1.25 ms/LSB。0にするとダブルタップが識別できなくなる。0xFFを設定すると320ms/LSB。 |
WINDOW |
0x23 |
単位は、 1.25 ms/LSB。0にするとダブルタップが識別できなくなる。 0xFFを設定すると320ms/LSB。 |
計測
Tapの状態の取得は、Interrupts Sourceから取得する。
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
DATA_READY |
SINGLE_TAG |
DOUBLE_TAP |
Activity |
Inactivity |
FREE_FALL |
Watermark |
Overrun |