Բովանդակություն:

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 բիթ թույլատրությամբ: Userկուն օգտվողի կողմից ծրագրավորվող տարբերակները տրամադրվում են արագացուցիչի ներկառուցված գործառույթների օգնությամբ, որոնք կարող են կարգավորվել երկու ընդհատող կապում: Այն ունի օգտվողի կողմից ընտրվող sc 2 գ/± 4 գ/g 8 գ ամբողջական սանդղակներ `բարձր անցման ֆիլտրով զտված տվյալներով, ինչպես նաև իրական ժամանակում հասանելի չզտված տվյալներով: Ահա նրա ցուցադրումը Arduino nano- ի հետ:

Քայլ 1: Այն, ինչ ձեզ հարկավոր է..

Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!

1. Արդուինո Նանո

2. MMA8452Q

3. I²C մալուխ

4. I²C վահան Arduino Nano- ի համար

Քայլ 2: Միացում

Միացում
Միացում
Միացում
Միացում
Միացում
Միացում
Միացում
Միացում

Վերցրեք I2C վահան Arduino Nano- ի համար և նրբորեն մղեք այն Նանոյի կապանքների վրա:

Այնուհետև I2C մալուխի մի ծայրը միացրեք MMA8452Q սենսորին, իսկ մյուս ծայրը ՝ I2C վահանին:

Կապերը ցուցադրվում են վերևի նկարում:

Քայլ 3: Կոդ

Կոդ
Կոդ

MMMA8452Q- ի arduino կոդը կարելի է ներբեռնել մեր github պահոցից ՝ DCUBE Store:

Ահա հղումը:

Մենք ներառում ենք Wire.h գրադարանը ՝ սենսորի I2c հաղորդակցումը Arduino տախտակի հետ հեշտացնելու համար:

Այստեղից կարող եք նաև պատճենել կոդը, այն տրվում է հետևյալ կերպ.

// Տարածված է ազատ կամքի լիցենզիայով:

// Օգտագործեք այն ինչպես ցանկանում եք, շահույթ կամ անվճար, պայմանով, որ այն տեղավորվում է դրա հետ կապված աշխատանքների լիցենզիաներում:

// MMA8452Q

// Այս կոդը նախատեսված է MMA8452Q_I2CS I2C մինի մոդուլի հետ աշխատելու համար:

#ներառում

// MMA8452Q I2C հասցեն ՝ 0x1C (28)

#սահմանել Addr 0x1C

դատարկ կարգավորում ()

{

// Նախնականացնել I2C հաղորդակցությունը որպես ՎԱՐՊԵՏ

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 բայթ տվյալներ

Մետաղալար. Խնդրում ենք (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- ի մեռած հաշիվ պահելը և շատ ավելին:

Խորհուրդ ենք տալիս: