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

Արագացման չափում BMA250- ի և Arduino Nano- ի միջոցով. 4 քայլ
Արագացման չափում BMA250- ի և Arduino Nano- ի միջոցով. 4 քայլ

Video: Արագացման չափում BMA250- ի և Arduino Nano- ի միջոցով. 4 քայլ

Video: Արագացման չափում BMA250- ի և Arduino Nano- ի միջոցով. 4 քայլ
Video: Մարդկանց 90 տոկոսը սխալ է չափում զարկերակային ճնշումը. Ահա, թե ինչ սխալներ են դրանք 2024, Նոյեմբեր
Anonim
Image
Image

BMA250- ը փոքր, բարակ, ծայրահեղ ցածր հզորության, 3 առանցքի արագացուցիչ է `բարձր լուծաչափով (13 բիթ) չափմամբ մինչև ± 16 գ: Թվային ելքային տվյալները ձևաչափվում են որպես 16-բիթ երկակի լրացում և հասանելի են I2C թվային ինտերֆեյսի միջոցով: Չափում է թեքության զգայարանների ծանրության ստատիկ արագացումը, ինչպես նաև շարժման կամ հարվածի հետևանքով առաջացած դինամիկ արագացումը: Դրա բարձր լուծաչափը (3.9 մգ/LSB) թույլ է տալիս չափել թեքության փոփոխությունները 1.0 ° -ից պակաս:

Այս ձեռնարկում մենք մտադիր ենք չափել արագացումը բոլոր երեք ուղղահայաց առանցքներում ՝ օգտագործելով BMA250 և Arduino Nano:

Քայլ 1: Պահանջվում է սարքավորում

Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում

Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.

1. BMA250

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

3. I2C մալուխ

4. I2C վահան Arduino Nano- ի համար

Քայլ 2: Սարքավորման միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և arduino- ի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.

BMA250- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:

Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք: Ձեզ անհրաժեշտ է չորս լար:

Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:

Այս կապերը ցուցադրվում են վերը նշված նկարներում:

Քայլ 3. Arduino կոդ արագացման չափման համար

Arduino կոդ արագացման չափման համար
Arduino կոդ արագացման չափման համար
Arduino կոդ արագացման չափման համար
Arduino կոդ արագացման չափման համար

Եկեք հիմա սկսենք Arduino կոդով:

Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք Wire.h գրադարանը: «Լար» գրադարանը պարունակում է գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և Arduino տախտակի միջև:

Ամբողջ Arduino ծածկագիրը տրված է ստորև ՝ օգտագործողի հարմարության համար.

#ներառում

// BMA250 I2C հասցեն ՝ 0x18 (24)

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

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

{

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

Wire.begin ();

// Սկզբնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600

Serial.begin (9600);

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք տիրույթի ընտրության գրանցամատյան

Wire.write (0x0F);

// Սահմանել միջակայքը +/- 2 գ

Wire.write (0x03);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք թողունակության գրանցամատյան

Wire.write (0x10);

// Սահմանել թողունակություն 7.81 Հց

Wire.write (0x08);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission (); ուշացում (300);}

դատարկ շրջան ()

{

անստորագիր int տվյալներ [0];

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք տվյալների գրանցամատյաններ (0x02 - 0x07)

Wire.write (0x02);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Պահանջել 6 բայթ

Հաղորդալար. Խնդրում ենք (Addr, 6);

// Կարդացեք վեց բայթ

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

եթե (Wire.available () == 6)

{

տվյալներ [0] = Wire.read ();

տվյալներ [1] = Wire.read ();

տվյալներ [2] = Wire.read ();

տվյալներ [3] = Wire.read ();

տվյալներ [4] = Wire.read ();

տվյալներ [5] = Wire.read ();

}

ուշացում (300);

// Տեղափոխեք տվյալները 10 բիթ

float xAccl = ((տվյալները [1] * 256.0) + (տվյալները [0] & 0xC0)) / 64;

եթե (xAccl> 511)

{

xAccl -= 1024;

}

բոց yAccl = ((տվյալները [3] * 256.0) + (տվյալները [2] & 0xC0)) / 64;

եթե (yAccl> 511)

{

yAccl -= 1024;

}

float zAccl = ((տվյալները [5] * 256.0) + (տվյալները [4] & 0xC0)) / 64;

եթե (zAccl> 511)

{

zAccl -= 1024;

}

// Ելքային տվյալները սերիական մոնիտորին

Serial.print («Արագացում X- առանցքում.»);

Serial.println (xAccl);

Serial.print («Արագացում Y- առանցքում.»);

Serial.println (yAccl);

Serial.print («Արագացում Z- առանցքում.»);

Serial.println (zAccl);

}

Լարային գրադարանում Wire.write () և Wire.read () օգտագործվում են հրամանները գրելու և սենսորի ելքը կարդալու համար: Serial.print () և Serial.println () օգտագործվում են Arduino IDE- ի սերիական մոնիտորի վրա սենսորի ելքը ցուցադրելու համար:

Սենսորի ելքը ցուցադրվում է վերևի նկարում:

Քայլ 4: Դիմումներ

Դիմումներ
Դիմումներ

BMA250- ի նման արագացուցիչները հիմնականում գտնում են դրա կիրառումը խաղերում և ցուցադրվող պրոֆիլի անցումներում: Այս սենսորային մոդուլը նաև օգտագործվում է բջջային ծրագրերի էներգիայի կառավարման առաջադեմ համակարգում: BMA250- ը եռակի առանցքային թվային արագացման տվիչ է, որը ներառված է չիպերի շարժման խելամիտ անջատիչ վերահսկիչով:

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