Подключение 3-осевого акселерометра
Подключение 3-осевого акселерометра MMA7455L к платформе Arduino
MMA7455L – это 3-осевой датчик ускорения (акселерометр) с цифровым выходом производства компании Freescale, который позволяет определять направление движения в пространстве. Микросхема выполнена в 14-выводном корпусе LGA, но в нашем проекте используется готовый миниатюрный модуль с установленной микросхемой и необходимыми внешними компонентами (Рисунок 1). Поддержка двух типов выходного цифрового интерфейса делает устройство простым совместное использование с микроконтроллерами. Дополнительно, микросхема имеет два программируемых выхода прерываний (INT1, INT2), которые могут использоваться для определения нулевого ускорения, свободного падения или импульсного воздействия на датчик.
![]() |
|
Рис.1 | Внешний вид модуля с установленным акселерометром MMA7455L. Доступен для заказа на сайте store.open-electronics.org. |
Основное применение датчика ускорения: мобильные телефоны, планшетные ПК, схемы стабилизации изображения, игровые консоли и аксессуары, охранные системы автомобилей, лабораторные инструменты и приборы, электрические машины и роботы. Чувствительность акселерометра (±2g, ±4g и ±8g) и тип выходного интерфейса (SPI, I2C) выбираются пользователем. Обратите внимание, в техническом описании на микросхему сказано, что она боится статического электричества (несмотря на то, что имеет встроенную ESD защиту 2 кВ), поэтому при работе с ней нужно быть осторожным. Готовый модуль доступен для заказа от различных производителей и дистрибьюторов, они имеют различный форм-фактор, но подключение и протокол обмена данными с акселерометром одинаковый. Модуль имеет очень компактные размеры (10×18×3.6 мм) и 7 штыревых выводов с шагом 2.54 мм, что позволяет подключить его к палате Arduino или установить на любую макетную или печатную плату (Рисунок 2). Напряжение питания для модуля должно быть в диапазоне 2.5 – 3.6 В.
![]() |
|
Рис.2 | Модуль акселерометра MMA7455L с устанволенными компонентами. |
Как было сказано выше микросхема MMA7455L поддерживает передачу данных по одному из двух доступных интерфейсов SPI или I2C. Если используется I2C, то вход CS (вывод 7) необходимо подключить к питанию. В нашем модуле по умолчанию используется интерфейс I2C.
![]() |
|
Рис.3 | Принципиальная схема модуля акселерометра MMA7455L. |
Единственное, что необходимо сделать пользователю перед использованием модуля в своих приложениях – установить корректное напряжение питание интерфейса ввода/вывода микросхемы, чтобы обеспечить совместимость уровней сигналов с микроконтроллером. Для этого служит перемычка J1, включенная между плюсом питания и входом VIO (вывод 1) микросхемы. Если напряжение питания модуля и микроконтроллера одинаковое, то перемычку необходимо установить. Если же микроконтроллер, к примеру, имеет напряжение питания 5 В, то перемычку необходимо удалить, а на вывод VIO подать напряжение 5 В. Акселерометру на шине I2C присвоен адрес h1D (см. техническое описание на микросхему).
Модуль подключается к плате Arduino, как показано на Рисунке 4 (6-контактный порт аналоговых входов). При этом на линии порта A0 устанавливается логическая «1» (5 В), чем мы задаем уровень сигналов ввода/вывода (VIO), а на линии порта A1 устанавливаем логический «0», этот порт используем в качестве минуса источника питания акселерометра. Питание 3.3 В также поступает с платы Arduino (Рисунок 5, отдельный провод). Линии порта A4 и A5 используются для обмена данными.
![]() |
|
Рис.4 | Установка модуля акселерометра на плату Arduino. Используется порт аналоговых входов. |
![]() |
|
Рис.5 | Отдельный провод для подачи на модуль питания 3.3 В. |
Обмен данными акселерометра с микроконтроллером основывается на функциях программных библиотек Wire.h и MMA_7455.h, которые вместе с примерами доступны для скачивания в разделе загрузок. Для проверки корректного функционирования акселерометра и демонстрации была разработана программа для ПК в среде Processing. В окне программы отображается трехмерный куб, который повторяет движения сенсора. Данные для работы (прошивка + программа).