Isi kandungan:

Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Zarah: 4 Langkah
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Zarah: 4 Langkah

Video: Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Zarah: 4 Langkah

Video: Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Zarah: 4 Langkah
Video: Prinsip Kerja Akselerometer dan Magnetometer 2024, November
Anonim
Image
Image

HMC5883 adalah kompas digital yang direka untuk penderiaan medan rendah. Peranti ini mempunyai jarak medan magnet yang luas +/- 8 Oe dan kadar output 160 Hz. Sensor HMC5883 merangkumi pemacu tali degaussing automatik, pembatalan offset, dan ADC 12-bit yang memungkinkan ketepatan tajuk kompas 1 ° hingga 2 °. Semua Modul Mini I²C direka untuk beroperasi pada 5VDC.

Dalam tutorial ini, kita akan menerangkan kerja terperinci HMC5883 dengan foton zarah. Partikel foton adalah papan yang memudahkan pengiriman dan penerimaan data dari laman web, yang menyokong ciri paling asas dari Internet Of Things (IoT).

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:

1. HMC5883

2. Foton Zarah

3. Kabel I2C

4. Perisai I2C untuk Foton Zarah

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan foton zarah. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

HMC5883 akan berfungsi di atas I2C. Berikut adalah contoh rajah pendawaian, yang menunjukkan cara memasang setiap antara muka sensor.

Di luar kotak, papan dikonfigurasikan untuk antara muka I2C, oleh itu kami mengesyorkan menggunakan penyambungan ini jika anda tidak agnostik. Yang anda perlukan hanyalah empat wayar!

Hanya diperlukan empat sambungan pin Vcc, Gnd, SCL dan SDA dan ini disambungkan dengan bantuan kabel I2C.

Sambungan ini ditunjukkan dalam gambar di atas.

Langkah 3: Kod untuk Mengukur Keamatan Medan Magnetik:

Kod untuk Mengukur Keamatan Medan Magnetik
Kod untuk Mengukur Keamatan Medan Magnetik

Mari mulakan dengan kod zarah sekarang.

Semasa menggunakan modul sensor dengan Arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Perpustakaan "application.h" dan spark_wiring_i2c.h mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan zarah.

Keseluruhan kod zarah diberikan di bawah untuk kemudahan pengguna:

#sertakan

#sertakan

// Alamat HMC5883 I2C adalah 0x1E (30)

#tentukan Addr 0x1E

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

persediaan tidak sah ()

{

// Tetapkan pemboleh ubah

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

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Inisialisasi Serial Communication, tetapkan baud rate = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih konfigurasi register A

Wire.write (0x00);

// Tetapkan konfigurasi pengukuran normal, laju output data = 0.75Hz

Wire.write (0x60);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih Daftar mod

Wire.write (0x02);

// Tetapkan pengukuran berterusan

Wire.write (0x00);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (300);

}

gelung kosong ()

{

data int yang tidak ditandatangani [6];

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar data

Wire.write (0x03);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Minta 6 bait data

Wire.requestFrom (Addr, 6);

// Baca 6 bait data

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

jika (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

kelewatan (300);

// Tukarkan data

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

jika (xMag> 32767)

{

xMag - = 65536;

}

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

jika (zMag> 32767)

{

zMag - = 65536;

}

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

jika (yMag> 32767)

{

yMag - = 65536;

}

// Keluarkan data ke papan pemuka

Particle.publish ("Medan Magnetik dalam X-Axis:", String (xMag));

kelewatan (1000);

Particle.publish ("Medan Magnetik dalam Y-Axis:", String (yMag));

kelewatan (1000);

Particle.publish ("Medan Magnetik dalam Z-Paksi:", Rentetan (zMag));

kelewatan (1000);

}

Fungsi Particle.variable () mencipta pemboleh ubah untuk menyimpan output sensor dan fungsi Particle.publish () memaparkan output di papan pemuka laman web.

Output sensor ditunjukkan dalam gambar di atas untuk rujukan anda.

Langkah 4: Aplikasi:

Permohonan
Permohonan

HMC5883 adalah modul multi-chip permukaan-mount yang direka untuk penginderaan magnet medan rendah dengan antara muka digital untuk aplikasi seperti kompas dan magnetometri kos rendah. Ketepatan dan ketepatan tahap tinggi satu hingga dua darjah membolehkan Navigasi Pejalan Kaki dan Aplikasi LBS.

Disyorkan: