Мазмуну:

Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps
Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps

Video: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps

Video: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps
Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial 2024, Ноябрь
Anonim
Image
Image

MMA8452Q-бул акылдуу, аз кубаттуу, үч огу, сыйымдуулугу, 12 биттик токтому бар микромахиндүү акселерометр. Колдонуучунун ийкемдүү программалоочу параметрлери акселерометрдеги камтылган функциялардын жардамы менен камсыз кылынат, эки үзгүлтүктүү казыкка конфигурацияланат. Бул колдонуучу тандап ала турган толук масштабга ээ ± 2g/± 4g/± 8g жогорку өткөргүч чыпкаланган маалыматтар менен, ошондой эле реалдуу убакытта чыпкаланбаган маалыматтар. Бул жерде анын Arduino нано менен болгон демонстрациясы.

1 -кадам: Сизге эмне керек..

Сизге эмне керек.. !!
Сизге эмне керек.. !!

1. Ардуино Нано

2. MMA8452Q

3. I²C кабели

4. Arduino Nano үчүн I²C Shield

2 -кадам: Байланыш:

Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу

Arduino Nano үчүн I2C калканчын алыңыз жана аны акырындык менен Нанонун казыктарына түртүңүз.

Андан кийин I2C кабелинин бир учун MMA8452Q сенсоруна, экинчи учун I2C калканчына туташтырыңыз.

Байланыштар жогорудагы сүрөттө көрсөтүлгөн.

3 -кадам: Код:

Код
Код

MMMA8452Q үчүн arduino кодун биздин github репозиторийинен көчүрүп алсаңыз болот- DCUBE дүкөнү.

Мына шилтеме.

Биз сенсордун Arduino тактасы менен I2c байланышын жеңилдетүү үчүн Wire.h китепканасын камтыйбыз.

Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:

// Эркин лицензия менен таратылган.

// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.

// MMA8452Q

// Бул код MMA8452Q_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан.

#кошуу

// MMA8452Q I2C дареги 0x1C (28)

#define Addr 0x1C

жараксыз орнотуу ()

{

// 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);

// Аралыгын +/- 2г коюңуз

Wire.write (0x00);

// I2C берүүнү токтотуу

Wire.endTransmission ();

кечигүү (300);

}

боштук цикл ()

{

кол коюлбаган int маалыматтары [7];

// 7 байт маалымат сураңыз

Wire.requestFrom (Addr, 7);

// 7 байт маалыматтарды окуңуз

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

эгер (Wire.available () == 7)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

маалымат [3] = Wire.read ();

data [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-Axis менен ылдамдануу:");

Serial.println (xAccl);

Serial.print ("Y огунда ылдамдануу:");

Serial.println (yAccl);

Serial.print ("Z-огунда ылдамдануу:");

Serial.println (zAccl);

кечигүү (500);

}

4 -кадам: Тиркемелер:

MMA8452Q ар кандай тиркемелерге ээ, анын ичинде E-Compass тиркемелери, Статикалык багытты аныктоо, анын ичинде Портрет/Пейзаж, Өйдө/ылдый, Сол/Оң, Артка/Алдыңкы позицияны аныктоо, Ноутбук, электрондук окурман, жана Ноутбуктар кулап түшүү жана Акысыз түшүү, Реалдуу убакыт багыттоону аныктоо, анын ичинде виртуалдык чындык жана оюн 3D колдонуучунун позициясы боюнча пикирлер, педометрдин кадамын эсептөө сыяктуу реалдуу убакытта анализ, HDD үчүн кулап түшүүнү аныктоо, GPSтин камдык көчүрмөсү жана башкалар.

Сунушталууда: