Satura rādītājs:

Magnētiskā lauka mērīšana, izmantojot HMC5883 un daļiņu fotonu: 4 soļi
Magnētiskā lauka mērīšana, izmantojot HMC5883 un daļiņu fotonu: 4 soļi
Anonim
Image
Image

HMC5883 ir digitālais kompass, kas paredzēts zema lauka magnētiskajai uztveršanai. Šai ierīcei ir plašs magnētiskā lauka diapazons +/- 8 Oe un izejas ātrums 160 Hz. HMC5883 sensora komplektā ietilpst automātiskie atdalīšanas siksnu draiveri, nobīdes atcelšana un 12 bitu ADC, kas nodrošina 1 līdz 2 ° kompasa virziena precizitāti. Visi I²C mini moduļi ir paredzēti darbam pie 5 V līdzstrāvas.

Šajā apmācībā mēs izskaidrosim detalizētu HMC5883 darbību ar daļiņu fotonu. Daļiņu fotons ir tāfele, kas atvieglo datu sūtīšanu un saņemšanu no vietnes, kas atbalsta lietu interneta (IoT) pamatfunkciju.

1. darbība. Nepieciešamā aparatūra:

Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra

Materiāli, kas nepieciešami mūsu mērķa sasniegšanai, ietver šādas aparatūras sastāvdaļas:

1. HMC5883

2. Daļiņu fotons

3. I2C kabelis

4. I2C vairogs daļiņu fotonam

2. darbība. Aparatūras savienošana:

Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums

Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un daļiņu fotonu. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

HMC5883 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.

Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis. Viss, kas Jums nepieciešams, ir četri vadi!

Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.

Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

3. darbība: kods magnētiskā lauka intensitātes mērīšanai:

Kods magnētiskā lauka intensitātes mērīšanai
Kods magnētiskā lauka intensitātes mērīšanai

Sāksim ar daļiņu kodu tūlīt.

Izmantojot sensoru moduli ar Arduino, mēs iekļaujam bibliotēku application.h un spark_wiring_i2c.h. Bibliotēkā "application.h" un spark_wiring_i2c.h ir funkcijas, kas atvieglo i2c komunikāciju starp sensoru un daļiņu.

Viss daļiņu kods lietotāja ērtībai ir norādīts zemāk:

#iekļaut

#iekļaut

// HMC5883 I2C adrese ir 0x1E (30)

#define Addr 0x1E

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

anulēts iestatījums ()

{

// Iestatīt mainīgo

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

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Inicializēt I2C komunikāciju kā MASTER

Wire.begin ();

// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600

Sērijas sākums (9600);

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet konfigurēt reģistru A

Wire.write (0x00);

// Iestatiet normālu mērījumu konfigurāciju, datu izvades ātrums = 0,75 Hz

Wire.write (0x60);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Izvēlieties režīma reģistru

Wire.write (0x02);

// Iestatīt nepārtrauktu mērīšanu

Wire.write (0x00);

// Apturēt I2C pārraidi

Wire.endTransmission ();

kavēšanās (300);

}

tukša cilpa ()

{

neparakstīti int dati [6];

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet datu reģistru

Wire.write (0x03);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Pieprasīt 6 baitus datu

Wire.requestFrom (Addr, 6);

// Lasīt 6 baitus datu

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

ja (Wire.available () == 6)

{

dati [0] = Wire.read ();

dati [1] = Wire.read ();

dati [2] = Wire.read ();

dati [3] = Wire.read ();

dati [4] = Wire.read ();

dati [5] = Wire.read ();

}

kavēšanās (300);

// Konvertēt datus

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

ja (xMag> 32767)

{

xMag -= 65536;

}

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

ja (zMag> 32767)

{

zMag -= 65536;

}

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

ja (yMag> 32767)

{

yMag -= 65536;

}

// Izvadiet datus informācijas panelī

Particle.publish ("Magnētiskais lauks X-asī:", String (xMag));

kavēšanās (1000);

Particle.publish ("Magnētiskais lauks Y-asī:", String (yMag));

kavēšanās (1000);

Particle.publish ("Magnētiskais lauks Z-asī:", String (zMag));

kavēšanās (1000);

}

Funkcija Particle.variable () izveido mainīgos, lai saglabātu sensora izvadi, un Particle.publish () funkcija parāda izvadi vietnes informācijas panelī.

Sensora izeja ir parādīta attēlā iepriekš.

4. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

HMC5883 ir uz virsmas piestiprināms vairāku mikroshēmu modulis, kas paredzēts zema lauka magnētiskai uztveršanai ar digitālo interfeisu tādiem lietojumiem kā zemu izmaksu kompasēšana un magnetometrija. Tā viena līdz divu grādu augsta līmeņa precizitāte un precizitāte nodrošina gājēju navigāciju un LBS lietojumprogrammas.

Ieteicams: