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

Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և մասնիկի ֆոտոն` 4 քայլ
Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և մասնիկի ֆոտոն` 4 քայլ

Video: Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և մասնիկի ֆոտոն` 4 քայլ

Video: Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և մասնիկի ֆոտոն` 4 քայլ
Video: Մագնիսական դաշտի ազդեցությունը հոսանքակիր հաղորդչի և հոսանքակիր շրջանակի վրա: Էլեկտրաշարժիչ 2024, Նոյեմբեր
Anonim
Image
Image

HMC5883- ը թվային կողմնացույց է, որը նախատեսված է ցածր դաշտի մագնիսական զգայարանների համար: Այս սարքն ունի մագնիսական դաշտի լայն շրջանակ ՝ +/- 8 Օէ և ելքային արագություն ՝ 160 Հց: HMC5883 սենսորը ներառում է ժապավենի ավտոմատ անջատիչ շարժիչներ, օֆսեթ չեղարկում և 12-բիթանոց ADC, որը հնարավորություն է տալիս 1 ° -ից մինչև 2 ° կողմնացույցի վերնագրի ճշգրտություն: Բոլոր I²C մինի մոդուլները նախագծված են 5VDC- ով աշխատելու համար:

Այս ձեռնարկում մենք բացատրելու ենք HMC5883- ի մանրամասն աշխատանքը մասնիկ ֆոտոնով: Particle photon- ը տախտակ է, որը հեշտացնում է կայքից տվյալների ուղարկումը և ստացումը, որն աջակցում է Internet Of Things (IoT) - ի ամենակարևոր առանձնահատկությանը:

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

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

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

1. HMC5883

2. Ֆոտոն մասնիկ

3. I2C մալուխ

4. I2C վահան մասնիկի ֆոտոնի համար

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

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

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

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

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

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

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

Քայլ 3. Մագնիսական դաշտի ինտենսիվությունը չափելու կոդ

Մագնիսական դաշտի ինտենսիվությունը չափելու կոդ
Մագնիսական դաշտի ինտենսիվությունը չափելու կոդ

Եկեք հիմա սկսենք մասնիկների ծածկագրից:

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

Օգտվողի հարմարության համար ստորև բերված է մասնիկների ամբողջ ծածկագիրը.

#ներառում

#ներառում

// HMC5883 I2C հասցեն ՝ 0x1E (30)

#սահմանեք Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

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

{

// Սահմանել փոփոխական

Particle.variable ("i2cdevice", "HMC5883");

Particle.variable («xMag», xMag);

Particle.variable («yMag», yMag);

Particle.variable («zMag», zMag);

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// Ընտրեք configure register A

Wire.write (0x00);

// Սահմանել չափման նորմալ կազմաձև, տվյալների ելքային արագություն = 0.75 Հց

Wire.write (0x60);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// Ընտրեք ռեժիմի գրանցամատյան

Wire.write (0x02);

// Սահմանել շարունակական չափում

Wire.write (0x00);

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

Wire.endTransmission ();

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

}

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

{

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

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

Wire.beginTransmission (Addr);

// Ընտրեք տվյալների գրանցամատյան

Wire.write (0x03);

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

Wire.endTransmission ();

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

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

// Կարդացեք տվյալների 6 բայթ

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

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

{

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

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

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

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

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

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

}

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

// Փոխարկել տվյալները

xMag = ((տվյալներ [0] * 256) + տվյալներ [1]);

եթե (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((տվյալներ [2] * 256) + տվյալներ [3]);

եթե (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((տվյալներ [4] * 256) + տվյալներ [5]);

եթե (yMag> 32767)

{

yMag -= 65536;

}

// Տվյալների մուտքագրում վահանակ

Particle.publish ("Magnetic Field in X-Axis:", String (xMag));

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

Particle.publish ("Magnetic Field in Y-Axis:", String (yMag));

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

Particle.publish ("Magnetic Field in Z-Axis:", String (zMag));

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

}

Particle.variable () գործառույթը ստեղծում է սենսորի ելքը պահելու փոփոխականները, իսկ Particle.publish () գործառույթը ցուցադրում է ելքը կայքի վահանակի վրա:

Սենսորային ելքը ցուցադրվում է վերևի նկարում ՝ ձեր տեղեկանքի համար:

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

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

HMC5883- ը մակերևույթի վրա տեղադրվող, մի քանի չիպային մոդուլ է, որը նախատեսված է ցածր դաշտի մագնիսական զգայարանների համար `թվային ինտերֆեյսով, այնպիսի ծրագրերի համար, ինչպիսիք են ցածրարժեք կողմնացույցը և մագնիսաչափությունը: Դրա մեկից երկու աստիճանի բարձր մակարդակի ճշգրտությունն ու ճշգրտությունը հնարավորություն է տալիս հետիոտնային նավարկություն և LBS ծրագրեր:

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