Съдържание:
Видео: Arduino Nano-MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Урок: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
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 с мъртви данни и много други.
Препоръчано:
Raspberry Pi - ADXL345 3 -осен акселерометър Python Урок: 4 стъпки
Raspberry Pi-ADXL345 3-осен акселерометър Python Урок: ADXL345 е малък, тънък, ултра нисък мощност, 3-осен акселерометър с измерване с висока разделителна способност (13-битов) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Измерва
Raspberry Pi - ADXL345 3 -осен акселерометър Java Урок: 4 стъпки
Raspberry Pi-ADXL345 3-осен акселерометър Java Урок: ADXL345 е малък, тънък, свръхниска мощност, 3-осен акселерометър с измерване с висока разделителна способност (13-битов) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Измерва
Урок за акселерометър Arduino: Управление на корабен мост с помощта на серво мотор: 5 стъпки
Урок за акселерометър Arduino: Управление на корабен мост с помощта на серво мотор: Сензорите за акселерометър вече са в повечето от нашите смартфони, за да им предоставят голямо разнообразие от възможности за използване и възможности, които използваме ежедневно, без дори да знаем, че отговорен за това е акселерометърът. Една от тези възможности е контролът
Урок за акселерометър CubeSat: 6 стъпки
Урок за акселерометър CubeSat: Кубето е вид миниатюризиран сателит за космически изследвания, който се състои от кратни на 10x10x10 cm кубични единици и маса не повече от 1,33 килограма на единица. Cubesats позволяват изпращането на голямо количество сателити в космоса и
Arduino Nano - BH1715 Урок за цифров сензор за околна светлина: 4 стъпки
Arduino Nano - BH1715 Урок за цифров сензор за околна светлина: BH1715 е цифров сензор за околна светлина с интерфейс на I²C шина. BH1715 обикновено се използва за получаване на данни за околната светлина за регулиране на мощността на подсветката на LCD и клавиатурата за мобилни устройства. Това устройство предлага 16-битова резолюция и настройва