Isi kandungan:
- Langkah 1: Perkakasan Diperlukan:
- Langkah 2: Penyambungan Perkakasan:
- Langkah 3: Kod Arduino untuk Mengukur Keamatan Medan Magnetik:
- Langkah 4: Aplikasi:
Video: Pengukuran Medan Magnetik Menggunakan HMC5883 dan Arduino Nano: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
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, kami akan menerangkan cara kerja terperinci HMC5883 dengan Arduino nano.
Langkah 1: Perkakasan Diperlukan:
Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:
1. HMC5883
2. Arduino Nano
3. Kabel I2C
4. Perisai I2C Untuk Arduino Nano
Langkah 2: Penyambungan Perkakasan:
Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan arduino nano. 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 Arduino untuk Mengukur Keamatan Medan Magnetik:
Mari kita mulakan dengan kod Arduino sekarang.
Semasa menggunakan modul sensor dengan Arduino, kami menyertakan perpustakaan Wire.h. Perpustakaan "Wire" mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan papan Arduino.
Keseluruhan kod Arduino diberikan di bawah untuk kemudahan pengguna:
#sertakan
// Alamat HMC5883 I2C adalah 0x1E (30)
#tentukan Addr 0x1E
persediaan tidak sah ()
{
// 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
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 bersiri
Serial.print ("Medan Magnetik dalam X-Axis:");
Serial.println (xMag);
Serial.print ("Medan Magnetik dalam Y-Axis:");
Serial.println (yMag);
Serial.print ("Medan Magnetik dalam Z-Paksi:");
Serial.println (zMag);
kelewatan (300);
}
Di perpustakaan wayar Wire.write () dan Wire.read () digunakan untuk menulis perintah dan membaca output sensor. Berikut bahagian kod menggambarkan pembacaan output sensor.
// Baca 6 bait data // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (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 (); }
Serial.print () dan Serial.println () digunakan untuk memaparkan output sensor pada monitor bersiri dari Arduino IDE.
Output sensor ditunjukkan pada gambar di atas.
Langkah 4: Aplikasi:
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:
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 4 Langkah
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 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 ofset, dan
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Zarah: 4 Langkah
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Foton Partikel: 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 ofset, dan
Pengukuran Kelembapan dan Suhu Menggunakan HIH6130 dan Arduino Nano: 4 Langkah
Pengukuran Kelembapan dan Suhu Menggunakan HIH6130 dan Arduino Nano: HIH6130 adalah sensor kelembapan dan suhu dengan output digital. Sensor ini memberikan tahap ketepatan ± 4% RH. Dengan kestabilan jangka panjang yang terkemuka di industri, I2C digital yang diberi pampasan suhu sebenar, kebolehpercayaan terkemuka di industri, kecekapan tenaga
Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Arduino Nano: 4 Langkah
Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Arduino Nano: HDC1000 adalah sensor kelembapan digital dengan sensor suhu bersepadu yang memberikan ketepatan pengukuran yang sangat baik pada daya yang sangat rendah. Peranti mengukur kelembapan berdasarkan sensor kapasitif baru. Sensor kelembapan dan suhu adalah
Pengukuran Kelembapan dan Suhu Menggunakan HTS221 dan Arduino Nano: 4 Langkah
Pengukuran Kelembapan dan Suhu Menggunakan HTS221 dan Arduino Nano: HTS221 adalah sensor digital kapasitif ultra kompak untuk kelembapan dan suhu relatif. Ini termasuk elemen penginderaan dan litar bersepadu khusus aplikasi isyarat campuran (ASIC) untuk memberikan maklumat pengukuran melalui siri digital