Съдържание:

Arduino Nano-MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Урок: 4 стъпки
Arduino Nano-MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Урок: 4 стъпки

Видео: Arduino Nano-MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Урок: 4 стъпки

Видео: Arduino Nano-MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Урок: 4 стъпки
Видео: LSM6DSOX Пошаговое руководство, часть 3 из 5: Маркировка и извлечение функций 2024, Юли
Anonim
Image
Image

MMA8452Q е интелигентен, триосен, капацитивен, микромашинен акселерометър с ниска мощност с 12 бита резолюция. Гъвкавите програмируеми от потребителя опции се предлагат с помощта на вградени функции в акселерометъра, конфигурирани с два прекъсвания. Той има избираеми от потребителя пълни скали от ± 2 g/± 4 g/± 8 g с високочестотни филтрирани данни, както и нефилтрирани данни, налични в реално време. Ето демонстрацията му с Arduino nano.

Стъпка 1: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!

1. Arduino Nano

2. MMA8452Q

3. Кабел I²C

4. I²C щит за Arduino Nano

Стъпка 2: Свързване:

Връзка
Връзка
Връзка
Връзка
Връзка
Връзка
Връзка
Връзка

Вземете I2C щит за Arduino Nano и го натиснете леко върху щифтовете на Nano.

След това свържете единия край на I2C кабела към сензора MMA8452Q, а другия край към I2C щита.

Връзките са показани на снимката по -горе.

Стъпка 3: Код:

Код
Код

Кодът arduino за MMMA8452Q може да бъде изтеглен от нашето хранилище на github- DCUBE Store.

Ето линка.

Включваме библиотека Wire.h, за да улесним I2c комуникацията на сензора с платката Arduino.

Можете също да копирате кода от тук, той е даден, както следва:

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

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

// MMA8452Q

// Този код е проектиран да работи с MMA8452Q_I2CS I2C мини модул.

#включва

// MMA8452Q I2C адресът е 0x1C (28)

#define Addr 0x1C

void setup ()

{

// Инициализира I2C комуникацията като MASTER

Wire.begin ();

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

Serial.begin (9600);

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Изберете контролен регистър

Wire.write (0x2A);

// Режим на готовност

Wire.write (0x00);

// Спиране на I2C предаването

Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Изберете контролен регистър

Wire.write (0x2A);

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

Wire.write (0x01);

// Спиране на I2C предаването

Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Изберете контролен регистър

Wire.write (0x0E);

// Задайте диапазон на +/- 2g

Wire.write (0x00);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (300);

}

void loop ()

{

беззнакови int данни [7];

// Изискване на 7 байта данни

Wire.requestFrom (Addr, 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 има различни приложения, които включват приложения за електронни компаси, разпознаване на статична ориентация, които включват портрет/пейзаж, нагоре/надолу, наляво/надясно, идентификация на позицията отзад/отпред, преносим компютър, електронен четец и откриване на преобръщане и свободно падане в реално време откриване на ориентация, включително виртуална реалност и игрална 3D обратна връзка за позицията на потребителя, анализ на активността в реално време, като броене на стъпки на крачкомер, откриване на падане на свободно падане за твърд диск, резервно копие на GPS с мъртви данни и много други.

Препоръчано: