Мазмұны:

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 қадам
Бейне: SKR 1.4 - Definitive User Guide 2024, Шілде
Anonim
Image
Image

MMA8452Q-ақылды, қуаты аз, үш осі бар, сыйымдылығы 12 микротехникалық акселерометр, ажыратымдылығы 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, олар екі үзу түйреуішіне теңшеледі. Онда ± 2g/± 4g/± 8g пайдаланушы таңдауға болатын толық шкаласы бар, жоғары сүзгіден өткен сүзілген деректер, сонымен қатар нақты уақытта қол жетімді сүзгіленбеген деректер бар. Міне, оның демонстрациясы Arduino nano -мен.

1 -қадам: Сізге не керек..

Сізге не керек.. !!
Сізге не керек.. !!

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

2. MMA8452Q

3. I²C кабелі

4. Arduino Nano үшін I²C қалқаны

2 -қадам: Қосылу:

Қосылу
Қосылу
Қосылу
Қосылу
Қосылу
Қосылу
Қосылу
Қосылу

Arduino Nano үшін I2C қалқанын алып, оны нано түйреуіштерінен ақырын басыңыз.

Содан кейін I2C кабелінің бір ұшын MMA8452Q сенсорына, екінші ұшын I2C қалқанына қосыңыз.

Қосылымдар жоғарыдағы суретте көрсетілген.

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

Код
Код

MMMA8452Q үшін arduino кодын біздің github репозиторийінен жүктеуге болады- DCUBE дүкені.

Міне сілтеме.

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

Сіз кодты осы жерден көшіре аласыз, ол келесі түрде берілген:

// Ерікті лицензиямен таратылды.

// Оны қалаған жолмен пайдаланыңыз немесе тегін, егер ол онымен байланысты жұмыстардың лицензиясына сәйкес келсе.

// MMA8452Q

// Бұл код MMA8452Q_I2CS I2C шағын модулімен жұмыс жасауға арналған.

#қосу

// MMA8452Q I2C мекенжайы - 0x1C (28)

#Adr 0x1C анықтаңыз

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

{

// I2C байланысын MASTER ретінде баптаңыз

Wire.begin ();

// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600

Serial.begin (9600);

// I2C берілуін бастау

Wire.beginTransmission (Addr);

// Басқару регистрін таңдаңыз

Wire.write (0x2A);

// StandBy режимі

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

}

бос цикл ()

{

қол қойылмаған 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 пайдаланушылардың позициясы туралы кері байланыс, қадамдық қадамдарды санау, HDD үшін құлаудың түсуін анықтау, GPS резервтік көшірмесі және тағы басқалар сияқты нақты уақыттағы белсенділікті талдау.

Ұсынылған: