Рубрики
Схемы на Arduino

Подключение акселерометра ADXL375 к Arduino (±200g)

В данной статье мы рассмотрим как подключить модуль акселерометра ADXL375 к плате Arduino для измерения ускорения по осям X, Y и Z.

ADXL375 является очень мощным и высокотехнологичным акселерометром, способным измерять ускорение до ±200 g. Возможно, вам знакомы модули акселерометров, такие как ADXL335 или ADXL345, а также MPU6050. Эти модули хороши для простых проектов, но совершенно не подходят для приложений, требующих высокой точности, высокого разрешения и экстремальных диапазонов.

Модуль ADXL375 — это цифровой MEMS-акселерометр от Analog Devices. Датчик небольшой и тонкий, с ультранизким энергопотреблением — всего 35 мкА в режиме измерения. Самое замечательное в этом датчике — это возможность измерения ускорения до ±200 g. Представьте себе измерение силы гравитационного притяжения Земли или ускорения очень быстро движущегося объекта — здесь ADXL375 идеально подходит.

В статье мы сначала рассмотрим особенности, возможности, распиновку и другие детали датчика ADXL375. Затем мы покажем, как использовать этот датчик с платой Arduino, используя код на C++. Этот же датчик можно также подключить к ESP32 и Raspberry Pi Pico.

Также на нашем сайте вы можете можете посмотреть другие проекты на акселерометрах серии ADXL:

Необходимые компоненты

  1. Плата Arduino Nano.
  2. Акселерометр ADXL375.
  3. OLED дисплей 128х64 (купить на AliExpress — для данного проекта можно покупать модель с 4-мя контактами поскольку используется его подключение по интерфейсу I2C).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Акселерометр ADXL375

ADXL375 — это небольшой, тонкий 3-осевой акселерометр, обеспечивающий низкое энергопотребление и высокое разрешение измерений до ±200 g.

Выходные цифровые данные акселерометра форматируются как 16-битные данные в дополнительном коде и доступны через цифровой интерфейс SPI или I2C. Поддерживается полоса пропускания до 1 килогерца. Полоса пропускания выбирается с помощью последовательной команды. Для хранения данных может использоваться интегрированная система управления памятью с 32-уровневым буфером FIFO, что минимизирует активность главного процессора и снижает общее энергопотребление системы.

Функциональная схема ADXL375 представлена на следующем рисунке.

Датчик способен определять удары, а также может использоваться в системах мониторинга активности или бездействия. Удивительно, что этот модуль выдерживает удары силой до 10 000 g, что просто поразительно. Согласно техническим характеристикам, его можно использовать для обнаружения сотрясений мозга и травм головы, а также для обнаружения событий с высокой силой воздействия. Чтобы узнать больше о модуле ADXL375, вы можете ознакомиться с техническим описанием ADXL375.

Характеристики и спецификации ADXL375

  • Диапазон измерения: ±200 г (фиксированный) с 13-битным выходом в дополнительном коде.
  • Чувствительность: 49 мг/LSB (0,049 г/LSB) → разрешение ~0,4805 мг при переводе в м/с²
  • Потребляемая мощность:
    • Режим измерения: типичный ток 35 мкА.
    • Режим ожидания: типичный ток 0,1 мкА (VS = 2,5 В)
    • Примечание: сила тока питания изменяется в зависимости от настройки скорости передачи/полосы пропускания выходных данных.
  • Скорость передачи выходных данных / Пропускная способность:
    • Выбирается пользователем через последовательные регистры.
    • Полоса пропускания до 1 кГц (ODR до 1 кГц)
  • Буфер FIFO: FIFO с водяным знаком на 32 выборки снижает нагрузку на главный процессор.
  • Обнаружение событий:
    • Обнаружение одиночного/двойного нажатия (импульса)
    • Мониторинг активности/бездействия с программируемыми пороговыми значениями и продолжительностью.
  • Цифровые интерфейсы:
    • I²C (7-битный адрес = 0x53, когда ALT_ADDRESS = LOW)
    • SPI (3- или 4-проводной)
  • Напряжение питания: от 2,0 В до 3,6 В
  • Диапазон входного/выходного напряжения: от 1,7 В до VS
  • Рабочая температура: от –40 °C до +85 °C
  • Устойчивость к ударам: 10 000 g (в нерабочем состоянии)
  • Корпус / Соответствие RoHS: 3 × 5 × 1 мм LGA, соответствует требованиям RoHS.

Схема проекта

Схема подключения акселерометра ADXL375 к плате Arduino представлена на следующем рисунке.

Как можно видеть, акселерометр ADXL375 плдключен к плате Arduino Nano через интерфейс I²C.

Мы можем упростить подключение проводов на макетной плате с помощью перемычек и убедиться, что ADXL375 ориентирован так, как показано на макетной плате.

Исходные коды программ

Программа для получения показаний ускорения

Для разработки прошивки можно использовать хорошо написанную библиотеку Adafruit для ADXL375. Вы можете скачать ее с репозитория GitHub и добавить ее в Arduino IDE через менеджер библиотек.

Далее представлен модифицированный пример кода для режима I²C.

Загрузите этот код на плату Arduino Nano, а затем откройте последовательный монитор. Вы увидите данные об ускорении по всем осям x, y и z в последовательном мониторе.

Данные по осям x и y должны быть близки к нулю, поскольку датчик расположен на плоской поверхности. Данные по оси z должны составлять около 9,8 м/с² из-за гравитационного притяжения Земли. Но отображаются некоторые смещения. Именно поэтому вы изменили код для автоматической калибровки.

Программа чтения ускорения с автоматической калибровкой

Вот ещё один код для считывания корректных значений ускорения по осям x, y и z.

Сначала мы усредняем 100 показаний, удерживая доску в горизонтальном положении, чтобы вычислить x_offsety_offset, и z_offset = avg_z – 9.80665 m/s². Затем в каждом цикле мы вычитаем эти смещения из исходных показаний, так что показания X/Y составляют примерно 0, а показания Z — примерно 9,8 м/с², когда датчик находится в горизонтальном положении.

Загрузите этот код еще раз на плату Arduino Nano. Теперь показания будут правильн

Чтобы увидеть изменение показаний, потрясите датчик, переместите его или резко дерните. Вы увидите резкое изменение показаний.

Отображение показаний акселерометра ADXL375 на OLED-экране

Давайте добавим 0,96-дюймовый I2C OLED-дисплей к модулю Arduino и ADXL375. Вместо отображения показаний акселерометра в последовательном мониторе, давайте теперь будем выводить их на OLED-экран.

Вот простая схема подключения. OLED-дисплей представляет собой модуль I2C. Поэтому нам нужно просто подключить OLED-дисплей к контактам I2C на плате Arduino Nano.

Внешний вид этой схемы, собранной на макетной плате, показан на следующем рисунке.

Для написания кода нам необходимо добавить библиотеки Adafruit GFX и Adafruit SSD1306 OLED в папку библиотек Arduino IDE.

Скопируйте следующий код и загрузите его на плату Arduino Nano.

После загрузки кода OLED-дисплей начнет отображать показания ускорения по осям x, y и z.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *