Оглавление:

Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 шага
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 шага

Видео: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 шага

Видео: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 шага
Видео: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, Ноябрь
Anonim
Image
Image

MMA8452Q - это умный, маломощный, трехосевой, емкостной, микромашинный акселерометр с разрешением 12 бит. Гибкие возможности программирования пользователем предоставляются с помощью встроенных функций в акселерометр, конфигурируемых на два контакта прерывания. Он имеет выбираемую пользователем полную шкалу ± 2 г / ± 4 г / ± 8 г с данными, отфильтрованными фильтром высоких частот, а также нефильтрованными данными, доступными в реальном времени. Вот его демонстрация с Arduino nano.

Шаг 1: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!

1. Arduino Nano

2. MMA8452Q

3. Кабель I²C

4. I²C Shield для Arduino Nano.

Шаг 2: Подключение:

Связь
Связь
Связь
Связь
Связь
Связь
Связь
Связь

Возьмите щит I2C для Arduino Nano и аккуратно наденьте его на контакты Nano.

Затем подключите один конец кабеля I2C к датчику MMA8452Q, а другой конец - к экрану I2C.

Подключения показаны на картинке выше.

Шаг 3: Код:

Код
Код

Код arduino для MMMA8452Q можно загрузить из нашего репозитория github - DCUBE Store.

Вот ссылка.

Мы включаем библиотеку Wire.h для облегчения связи датчика I2c с платой Arduino.

Вы также можете скопировать код отсюда, он выглядит следующим образом:

// Распространяется по свободной лицензии.

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

// MMA8452Q

// Этот код предназначен для работы с мини-модулем MMA8452Q_I2CS I2C.

#включают

// Адрес I2C MMA8452Q - 0x1C (28)

#define Addr 0x1C

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

{

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (адрес);

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

Wire.write (0x2A);

// Режим ожидания

Wire.write (0x00);

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

Wire.endTransmission ();

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

Wire.beginTransmission (адрес);

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

Wire.write (0x2A);

// Активный режим

Wire.write (0x01);

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

Wire.endTransmission ();

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

Wire.beginTransmission (адрес);

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

Wire.write (0x0E);

// Устанавливаем диапазон +/- 2g

Wire.write (0x00);

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

Wire.endTransmission ();

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

}

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

{

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

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

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

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

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

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

{

данные [0] = Wire.read ();

данные [1] = Wire.read ();

данные [2] = Wire.read ();

данные [3] = Wire.read ();

данные [4] = Wire.read ();

данные [5] = Wire.read ();

данные [6] = Wire.read ();

}

// Преобразуем данные в 12-битные

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

если (xAccl> 2047)

{

xAccl - = 4096;

}

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

если (yAccl> 2047)

{

yAccl - = 4096;

}

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

если (zAccl> 2047)

{

zAccl - = 4096;

}

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

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

Serial.println (xAccl);

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

Serial.println (yAccl);

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

Serial.println (zAccl);

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

}

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

MMA8452Q имеет различные приложения, в том числе приложения E-Compass, обнаружение статической ориентации, которое включает в себя портрет / пейзаж, вверх / вниз, влево / вправо, определение положения сзади / спереди, ноутбук, электронную книгу и обнаружение падения и падения ноутбука в режиме реального времени. определение ориентации, включая виртуальную реальность и игровую трехмерную обратную связь о положении пользователя, анализ активности в реальном времени, такой как подсчет шагов шагомером, обнаружение свободного падения для жесткого диска, резервное копирование по GPS и многое другое.

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