Чтение данных из ADXL345

dron3214
Offline
Зарегистрирован: 05.11.2018

Помогите новичку

Помогите считать данные по протоколу I2C с ADXL345 из 0x28 и 0x29 адресов.
Нужно понять находится ли объект в состоянии свободного падиния и как долго.
Еще не достаточно освоил язык общения с контроллером, что сделать это самостоятельно.

40 (0x28) THRESH_FF R/W 00000000 Значение уставки свободного падения
41 (0x29) TIME_FF R/W 00000000 Время свободного падения

спасибо

dron3214
Offline
Зарегистрирован: 05.11.2018
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <Wire.h>
void setup()
{
  Wire.begin();
}
byte val = 0;
void loop()
{
  Wire.beginTransmission(40); // #40 (0x28)
  
  Wire.read(byte(0x00));           
  Wire.read(val);            
  Wire.endTransmission();    
  val++;       
  if (val == 64)
  {
    val = 0;   
  }
  delay(500);
}

Запилил вот такой скетчик. (Естественно не работает)
В правильном ли я направлении?

sadman41
Offline
Зарегистрирован: 19.10.2016

В правильном. Трансмиссию открываете с адресом датчика (а не регистра), пишете тудыть адрес регистра, потом requestFrom с адреса датчика количества читаемых байт, читаете их и закрываете трансмиссию. В целом это делается так.