Orodha ya maudhui:

Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Arduino Nano: Hatua 4
Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Arduino Nano: Hatua 4

Video: Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Arduino Nano: Hatua 4

Video: Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Arduino Nano: Hatua 4
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Julai
Anonim
Image
Image

HMC5883 ni dira ya dijiti iliyoundwa kwa kuhisi nguvu ya uwanja wa chini. Kifaa hiki kina upeo wa uwanja wa sumaku pana wa +/- 8 Oe na kiwango cha pato la 160 Hz. Sensorer ya HMC5883 inajumuisha madereva ya kamba ya kiotomatiki ya kusambaza, kufuta kukabiliana, na 12-bit ADC inayowezesha usahihi wa kichwa cha 1 ° hadi 2 °. Moduli zote za Mini I²C zimeundwa kufanya kazi kwa 5VDC.

Katika mafunzo haya, tutaelezea kazi ya kina ya HMC5883 na Arduino nano.

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo tunahitaji kutimiza lengo letu ni pamoja na vifaa vifuatavyo vya vifaa:

1. HMC5883

2. Arduino Nano

3. Cable ya I2C

4. I2C Ngao Kwa Arduino Nano

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uunganisho wa wiring unaohitajika kati ya sensa na nano ya arduino. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

HMC5883 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic. Unachohitaji ni waya nne!

Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Msimbo wa Arduino Kupima Uzito wa Shamba la Magnetic:

Nambari ya Arduino Kupima Uzito wa Shamba la Magnetic
Nambari ya Arduino Kupima Uzito wa Shamba la Magnetic
Nambari ya Arduino Kupima Uzito wa Shamba la Magnetic
Nambari ya Arduino Kupima Uzito wa Shamba la Magnetic

Wacha tuanze na nambari ya Arduino sasa.

Wakati wa kutumia moduli ya sensorer na Arduino, tunajumuisha maktaba ya Wire.h. Maktaba ya "Waya" ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na bodi ya Arduino.

Nambari nzima ya Arduino imepewa hapa chini kwa urahisi wa mtumiaji:

# pamoja

// Anwani ya HMC5883 I2C ni 0x1E (30)

#fafanua Addr 0x1E

kuanzisha batili ()

{

// Anzisha mawasiliano ya I2C kama MASTER

Wire.begin ();

// Awali Mawasiliano ya Siri, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua sanidi sajili A.

Andika waya (0x00);

// Weka usanidi wa kawaida wa kipimo, kiwango cha pato la data = 0.75Hz

Andika waya (0x60);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua Usajili wa Njia

Andika waya (0x02);

// Weka kipimo kinachoendelea

Andika waya (0x00);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyoingia [6];

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x03);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba ka 6 za data

Ombi la Wire. Toka (Addr, 6);

// Soma ka 6 za data

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

ikiwa (Waya haipatikani () == 6)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

data [4] = soma kwa waya ();

data [5] = soma kwa waya ();

}

kuchelewesha (300);

// Badilisha data

int xMag = ((data [0] * 256) + data [1]);

int zMag = ((data [2] * 256) + data [3]);

int yMag = ((data [4] * 256) + data [5]);

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("Uwanja wa Magnetic katika X-Axis:");

Serial.println (xMag);

Serial.print ("Uga wa Magnetic katika Y-Axis:");

Serial.println (yMag);

Serial.print ("Uwanja wa Magnetic katika Z-Axis:");

Serial.println (zMag);

kuchelewesha (300);

}

Katika maktaba ya waya Wire.write () na Wire.read () hutumiwa kuandika amri na kusoma pato la sensorer. Kufuatia sehemu ya nambari inaonyesha usomaji wa pato la sensa.

// Soma ka 6 za data // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb ikiwa (Wire.available () == 6) {data [0] = Wire.read (); data [1] = soma kwa waya (); data [2] = soma kwa waya (); data [3] = soma kwa waya (); data [4] = soma kwa waya (); data [5] = soma kwa waya (); }

Serial.print () na Serial.println () hutumiwa kuonyesha pato la sensa kwenye mfuatiliaji wa serial wa IDE ya Arduino.

Pato la sensor linaonyeshwa kwenye picha hapo juu.

Hatua ya 4: Maombi:

Maombi
Maombi

HMC5883 ni mlima wa uso, moduli ya chip nyingi iliyoundwa kwa kuhisi uwanja wa chini na kiolesura cha dijiti kwa programu kama kuzunguka kwa gharama nafuu na sumaku. Usahihi wa kiwango cha juu cha kiwango cha moja hadi mbili na usahihi huwezesha Urambazaji wa Watembea kwa miguu na Maombi ya LBS.

Ilipendekeza: