Daftar Isi:

Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: 11 Langkah
Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: 11 Langkah

Video: Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: 11 Langkah

Video: Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: 11 Langkah
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, November
Anonim
Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]
Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]

Gambaran

Dalam beberapa proyek elektronik, kita perlu mengetahui lokasi geografis setiap saat dan melakukan operasi tertentu yang sesuai. Dalam tutorial ini, Anda akan belajar cara menggunakan modul kompas LSM303DLHC GY-511 dengan Arduino untuk membuat kompas digital. Pertama, Anda akan mempelajari modul ini dan cara kerjanya, lalu Anda akan melihat cara menghubungkan modul LSM303DLHC GY-511 dengan Arduino.

Apa yang Akan Anda Pelajari

  • Apa modul kompas itu?
  • Modul kompas dan antarmuka Arduino.
  • Buat kompas digital dengan modul GY-511 dan Arduino.

Langkah 1: Informasi Umum Tentang Modul Kompas

Informasi Umum Tentang Modul Kompas
Informasi Umum Tentang Modul Kompas

Modul GY-511 mencakup akselerometer 3-sumbu dan magnetometer 3-sumbu. Sensor ini dapat mengukur percepatan linier pada skala penuh ± 2 g / ± 4 g / ± 8 g / ± 16 g dan medan magnet pada skala penuh ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 / ± 8.1 Gauss.

Ketika modul ini ditempatkan dalam medan magnet, menurut hukum Lorentz arus eksitasi menginduksi dalam kumparan mikroskopisnya. Modul kompas mengubah arus ini menjadi tegangan diferensial untuk setiap arah koordinat. Dengan menggunakan tegangan ini, Anda dapat menghitung medan magnet di setiap arah dan mendapatkan posisi geografis.

Tip

QMC5883L adalah modul kompas lain yang umum digunakan. Modul ini, yang memiliki struktur dan aplikasi yang mirip dengan modul LMS303, sedikit berbeda dalam kinerjanya. Jadi, jika Anda melakukan proyek, berhati-hatilah dengan jenis modul Anda. Jika modul Anda adalah QMC5882L, gunakan pustaka dan kode yang sesuai yang juga disertakan dalam tutorial.

Langkah 2: Komponen yang Diperlukan

Komponen yang Diperlukan
Komponen yang Diperlukan

Komponen Perangkat Keras

Arduino UNO R3 *1

GY-511 Akselerometer 3-Sumbu + Magnetometer *1

TowerPro Servo Motor SG-90 *1

1602 Modul LCD * 1

Pelompat * 1

Aplikasi Perangkat Lunak

Arduino IDE

Langkah 3: Menghubungkan Modul Kompas GY-511 Dengan Arduino

Menghubungkan Modul Kompas GY-511 Dengan Arduino
Menghubungkan Modul Kompas GY-511 Dengan Arduino
Menghubungkan Modul Kompas GY-511 Dengan Arduino
Menghubungkan Modul Kompas GY-511 Dengan Arduino

Modul kompas GY-511 memiliki 8 pin, tetapi Anda hanya memerlukan 4 pin untuk berinteraksi dengan Arduino. Modul ini berkomunikasi dengan Arduino menggunakan protokol I2C, jadi hubungkan pin SDA (output I2C) dan SCK (input clock I2C) modul ke pin I2C pada board Arduino.

CatatanSeperti yang Anda lihat, kami telah menggunakan modul GY-511 dalam proyek ini. Tetapi Anda dapat menggunakan instruksi ini untuk menyiapkan modul kompas LMS303 lainnya.

Langkah 4: Kalibrasi Modul Kompas GY-511

Untuk menavigasi, Anda harus terlebih dahulu mengkalibrasi modul, yang berarti mengatur rentang pengukuran dari 0 hingga 360 derajat. Untuk melakukan ini, sambungkan modul ke Arduino seperti yang ditunjukkan di bawah ini dan unggah kode berikut di papan Anda. Setelah menjalankan kode, Anda dapat melihat nilai minimum dan maksimum rentang pengukuran untuk sumbu X, Y, dan Z di jendela monitor serial. Anda akan membutuhkan angka-angka ini di bagian selanjutnya, jadi tuliskan.

Langkah 5: Sirkuit

sirkuit
sirkuit

Langkah 6: Kode

Dalam kode ini, Anda memerlukan pustaka Wire.h untuk komunikasi I2C, dan pustaka LMS303.h untuk modul kompas. Anda dapat mengunduh perpustakaan ini dari tautan berikut.

Perpustakaan LMS303.h

Perpustakaan Wire.h

CatatanJika Anda menggunakan QMC5883, Anda memerlukan pustaka berikut:

MechaQMC5883L.h

Di sini, kami menjelaskan kode untuk LMS303, tetapi Anda juga dapat mengunduh kode untuk modul QMC.

Mari kita lihat beberapa fungsi baru:

kompas.enableDefault();

Inisialisasi modul

kompas.baca();

Membaca nilai keluaran modul kompas

running_min.z = min(running_min.z, kompas.m.z); running_max.x = max(running_max.x, kompas.m.x);

Menentukan nilai minimum dan maksimum rentang pengukuran dengan membandingkan nilai yang diukur.

Langkah 7: Membuat Kompas Digital

Setelah mengkalibrasi modul, kita akan membuat kompas dengan menghubungkan motor servo ke modul. Sehingga indikator servo, selalu menunjukkan kepada kita arah utara, seperti panah merah pada kompas. Untuk melakukan ini, pertama-tama modul kompas menghitung arah geografis terlebih dahulu dan mengirimkannya ke Arduino dan Kemudian, dengan menerapkan koefisien yang sesuai, Anda akan menghitung sudut yang harus diputar oleh motor servo sehingga indikatornya menunjuk ke utara magnetis. Akhirnya, kami menerapkan sudut itu ke motor servo.

Langkah 8: Sirkuit

sirkuit
sirkuit

Langkah 9: Kode

Kode
Kode

Untuk bagian ini Anda juga memerlukan perpustakaan Servo.h, yang diinstal pada perangkat lunak Arduino Anda secara default.

Mari kita lihat beberapa fungsi baru:

Servo Servo1;

Inisialisasi modul

kompas.baca();

Memperkenalkan objek motor servo

Servo1.attach(servoPin); kompas.init(); kompas.enableDefault();

Inisialisasi modul kompas dan motor servo

Argumen Servo1.attach() adalah nomor pin yang terhubung ke motor servo.

kompas.m_min = (LSM303::vektor){-32767, -32767, -32767}; kompas.m_max = (LSM303::vektor){+32767, +32767, +32767};

Dengan menggunakan garis-garis ini, Anda menentukan nilai minimum dan maksimum untuk mengukur rentang yang diperoleh di bagian sebelumnya.

float heading =compass.heading((LSM303::vector){0, 0, 1});

Fungsi heading() mengembalikan sudut antara sumbu koordinat dan sumbu tetap. Anda dapat menentukan sumbu tetap dengan vektor dalam argumen fungsi. Misalnya, di sini, dengan mendefinisikan (LSM303:: vektor) {0, 0, 1}, sumbu Z dianggap sebagai sumbu konstan.

Servo1.write(judul);

Fungsi Servo1.write() menerapkan nilai baca oleh modul kompas ke motor servo.

CatatanPerhatikan bahwa motor servo mungkin memiliki medan magnet, jadi sebaiknya letakkan motor servo pada jarak yang sesuai dari modul kompas, agar tidak menyebabkan modul kompas menyimpang.

Direkomendasikan: