Оглавление:

Измерение ускорения с помощью H3LIS331DL и Arduino Nano: 4 шага
Измерение ускорения с помощью H3LIS331DL и Arduino Nano: 4 шага
Anonim
Image
Image

H3LIS331DL - это маломощный высокопроизводительный 3-осевой линейный акселерометр, принадлежащий к семейству «нано», с цифровым последовательным интерфейсом I²C. H3LIS331DL имеет выбираемую пользователем полную шкалу ± 100 г / ± 200 г / ± 400 г и способен измерять ускорения с выходными скоростями передачи данных от 0,5 Гц до 1 кГц. H3LIS331DL гарантированно работает в расширенном диапазоне температур от -40 ° C до +85 ° C.

В этом уроке мы собираемся продемонстрировать взаимодействие H3LIS331DL с Arduino Nano.

Шаг 1: Требуемое оборудование:

Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. H3LIS331DL

2. Arduino Nano

3. Кабель I2C

4. I2C Shield для Arduino Nano.

Шаг 2: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Arduino nano. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

H3LIS331DL будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого. Все, что вам нужно, это четыре провода!

Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 3: Код Arduino для измерения ускорения:

Код Arduino для измерения ускорения
Код Arduino для измерения ускорения
Код Arduino для измерения ускорения
Код Arduino для измерения ускорения

А теперь давайте начнем с кода Arduino.

При использовании сенсорного модуля с arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.

Полный код Arduino приведен ниже для удобства пользователя:

#включают

// H3LIS331DL I2C-адрес 0x18 (24)

#define Addr 0x18

установка void ()

{

// Инициализируем связь I2C как МАСТЕР

Wire.begin ();

// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600

Serial.begin (9600);

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем контрольный регистр 1

Wire.write (0x20);

// Включить оси X, Y, Z, режим включения, скорость вывода данных 50 Гц

Wire.write (0x27);

// Остановка передачи I2C

Wire.endTransmission ();

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем контрольный регистр 4

Wire.write (0x23);

// Установка полной шкалы, +/- 100g, непрерывное обновление

Wire.write (0x00);

// Остановка передачи I2C

Wire.endTransmission ();

задержка (300);

}

пустой цикл ()

{

данные типа int без знака [6];

для (int я = 0; я <6; я ++)

{

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр данных

Wire.write ((40 + i));

// Остановка передачи I2C

Wire.endTransmission ();

// Запрос 1 байт данных

Wire.requestFrom (Адрес, 1);

// Чтение 6 байтов данных

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

если (Wire.available () == 1)

{

data = Wire.read ();

}

}

задержка (300);

// Конвертируем данные

int xAccl = ((данные [1] * 256) + данные [0]);

int yAccl = ((данные [3] * 256) + данные [2]);

int zAccl = ((данные [5] * 256) + данные [4]);

// Выводим данные на последовательный монитор

Serial.print («Ускорение по оси X:»);

Serial.println (xAccl);

Serial.print («Ускорение по оси Y:»);

Serial.println (yAccl);

Serial.print («Ускорение по оси Z:»);

Serial.println (zAccl);

задержка (300);

}

Все, что вам нужно сделать, это записать код в Arduino и проверить свои показания на последовательном порту. Результат показан на картинке выше.

Шаг 4: Приложения:

Приложения
Приложения

Акселерометры, такие как H3LIS331DL, в основном находят свое применение в играх и переключении профилей дисплея. Этот сенсорный модуль также используется в усовершенствованной системе управления питанием для мобильных приложений. H3LIS331DL - это трехосный цифровой датчик ускорения, который объединен с интеллектуальным встроенным контроллером прерываний, запускаемым движением.

Рекомендуемые: