Arduino IDE
Напишем программу в среде Arduino IDE. При использовании плат Графит-32S, Графит-S2 или Графит-S3 необходимо подключить дополнительный пакет для поддержки плат ESP32 от RobotClass.
Для работы будем использовать библиотеку SparkFun_LIS2DH12_Arduino_Library.
Первая программа будет слушать шину I2C и выводить в COM-порт свежие данные по всем трём осям.
#include <Wire.h>
#include "SparkFun_LIS2DH12.h"
SPARKFUN_LIS2DH12 accel;
void setup(){
Serial.begin(115200);
Serial.println("SparkFun Accel Example");
Wire.begin();
// если датчик не обнаружен, вводим программу в бесконечный цикл
if (accel.begin() == false){
Serial.println("Accelerometer not detected");
while (1);
}
}
void loop(){
// если от датчика получены свежие данные, выводим их
if (accel.available()){
int rawX = accel.getRawX();
int rawY = accel.getRawY();
int rawZ = accel.getRawZ();
Serial.print("Acc raw: ");
Serial.print(rawX);
Serial.print(" x, ");
Serial.print(rawY);
Serial.print(" y, ");
Serial.print(rawZ);
Serial.print(" z");
Serial.println();
}
}
Загружаем программу на контроллер и открываем монитор COM-порта. Не забываем указать скорость обмена — 115200 бод.
В этом эксперименте плата LIS2DH12 лежала на столе так, что ось Z была направлена строго вверх. При этом логично, что значения по осям x и y почти равны нулю, ведь на датчик в этих направлениях не действуют никакие силы. А вот значение по оси Z практически равно ускорению свободного падения 9,8 м/с за секунду. При этом на датчик действует, конечно, не сила гравитации, а сила реакции опоры, которая направлена строго вверх.