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 бод.

Акселерометр lis2dh RobotClass и Arduino IDE.

В этом эксперименте плата LIS2DH12 лежала на столе так, что ось Z была направлена строго вверх. При этом логично, что значения по осям x и y почти равны нулю, ведь на датчик в этих направлениях не действуют никакие силы. А вот значение по оси Z практически равно ускорению свободного падения 9,8 м/с за секунду. При этом на датчик действует, конечно, не сила гравитации, а сила реакции опоры, которая направлена строго вверх.


Изменено: