ADXL343 is a small, thin, low power, 3-axis accelerometer with high resolution (13-bit) measurement at up to ±16g.
In English
Important: make sure you properly setup the I2C pins especially for ESP32 before creating the I2cDevice
, make sure you install the nanoFramework.Hardware.ESP32 nuget
:
//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);
For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.
Here is the basic usage:
var i2c = new(new I2cConnectionSettings(I2cBusId, I2cAddr));
Adxl343 sensor = new Adxl343(i2c, GravityRange.Range16);
Debug.WriteLine("Testing Vector...");
Vector3 v = new Vector3();
while (true)
{
if (sensor.TryGetAcceleration(ref v))
{
Debug.WriteLine("Get Vector Successful");
Debug.WriteLine($"X = 0x{v.X}, Y = 0x{v.Y}, Z = 0x{v.Z}");
}
Thread.Sleep(1000);
}
Also you'll find a lot of functions which will allow you to have a very detailed and precise way to setup the sensor.