Daftar Isi:

Pengukuran Medan Magnet Menggunakan HMC5883 dan Arduino Nano: 4 Langkah
Pengukuran Medan Magnet Menggunakan HMC5883 dan Arduino Nano: 4 Langkah

Video: Pengukuran Medan Magnet Menggunakan HMC5883 dan Arduino Nano: 4 Langkah

Video: Pengukuran Medan Magnet Menggunakan HMC5883 dan Arduino Nano: 4 Langkah
Video: Product Showcase: Qwiic MLX90393 Triple Axis Magnetometer 2024, Juli
Anonim
Image
Image

HMC5883 adalah kompas digital yang dirancang untuk penginderaan magnetik medan rendah. Perangkat ini memiliki rentang medan magnet yang luas +/-8 Oe dan tingkat output 160 Hz. Sensor HMC5883 mencakup driver strap degaussing otomatis, pembatalan offset, dan ADC 12-bit yang memungkinkan akurasi arah kompas 1° hingga 2°. Semua Modul Mini I²C dirancang untuk beroperasi pada 5VDC.

Dalam tutorial ini, kami akan menjelaskan cara kerja HMC5883 secara detail dengan Arduino nano.

Langkah 1: Perangkat Keras Yang Dibutuhkan:

Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan

Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. HMC5883

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C Untuk Arduino Nano

Langkah 2: Sambungan Perangkat Keras:

Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras

Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan arduino nano. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

HMC5883 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor.

Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami sarankan menggunakan hookup ini jika Anda agnostik. Yang Anda butuhkan hanyalah empat kabel!

Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C.

Koneksi ini ditunjukkan pada gambar di atas.

Langkah 3: Kode Arduino untuk Mengukur Intensitas Medan Magnet:

Kode Arduino untuk Mengukur Intensitas Medan Magnet
Kode Arduino untuk Mengukur Intensitas Medan Magnet
Kode Arduino untuk Mengukur Intensitas Medan Magnet
Kode Arduino untuk Mengukur Intensitas Medan Magnet

Mari kita mulai dengan kode Arduino sekarang.

Saat menggunakan modul sensor dengan Arduino, kami menyertakan perpustakaan Wire.h. Pustaka "Wire" berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan papan Arduino.

Seluruh kode Arduino diberikan di bawah ini untuk kenyamanan pengguna:

#termasuk

// Alamat I2C HMC5883 adalah 0x1E(30)

#define Addr 0x1E

batalkan pengaturan()

{

// Inisialisasi komunikasi I2C sebagai MASTER

Kawat.mulai();

// Inisialisasi Komunikasi Serial, setel baud rate = 9600

Serial.begin(9600);

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih konfigurasikan register A

Kawat.tulis (0x00);

// Atur konfigurasi pengukuran normal, tingkat keluaran data = 0,75Hz

Kawat.tulis (0x60);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih Mode register

Kawat.tulis (0x02);

// Tetapkan pengukuran berkelanjutan

Kawat.tulis (0x00);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

penundaan (300);

}

lingkaran kosong()

{

data int yang tidak ditandatangani[6];

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih daftar data

Kawat.tulis (0x03);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 6 byte data

Wire.requestFrom(Addr, 6);

// Baca 6 byte data

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

if(Wire.available() == 6)

{

data[0] = Wire.read();

data[1] = Kawat.baca();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Kawat.baca();

data[5] = Wire.read();

}

penundaan (300);

// Konversi data

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

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

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

// Keluarkan data ke monitor serial

Serial.print("Medan Magnet pada Sumbu X: ");

Serial.println(xMag);

Serial.print("Medan Magnet pada Sumbu Y: ");

Serial.println(yMag);

Serial.print("Medan Magnet pada Sumbu Z: ");

Serial.println(zMag);

penundaan (300);

}

Dalam wire library Wire.write() dan Wire.read() digunakan untuk menulis perintah dan membaca output sensor. Bagian kode berikut mengilustrasikan pembacaan keluaran sensor.

// Membaca 6 byte data // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if(Wire.available() == 6) { data[0] = Wire.read(); data[1] = Kawat.baca(); data[2] = Wire.read(); data[3] = Wire.read(); data[4] = Kawat.baca(); data[5] = Wire.read(); }

Serial.print() dan Serial.println() digunakan untuk menampilkan output dari sensor pada serial monitor Arduino IDE.

Output dari sensor ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

HMC5883 adalah modul multi-chip pemasangan permukaan yang dirancang untuk penginderaan magnet medan rendah dengan antarmuka digital untuk aplikasi seperti kompas dan magnetometri berbiaya rendah. Akurasi dan presisi tingkat tinggi satu hingga dua derajat memungkinkan Navigasi Pejalan Kaki dan Aplikasi LBS.

Direkomendasikan: