Sensor magnetometer adalah alat yang digunakan untuk mengukur arah dan kekuatan medan magnet. Salah satu sensor yang populer di kalangan para penggemar elektronik dan pengembang proyek adalah GY-271 QMC8553L. Artikel ini akan membahas secara singkat mengenai spesifikasi, cara kerja, serta aplikasi dari sensor ini.

PASTIKAN TELAH MENDOWNLOAD LIBRARY UNTUK SENSOR & ARDUINO UNO!!
Alat – alat yang digunakan :
- Arduino Uno
- Sensor Kompas Magnetometer GY-271 QMC8553L
- Kabel Jumper
Rangkaian Pin :
- GND Sensor => GND Arduino Uno
- VCC Sensor => 5v Arduino Uno
- SDA Sensor => SDA Arduino Uno
- SCL Sensor => SCL Arduino Uno
Berikut Source Code Sederhana untuk Sensor Kompas Magnetometer GY-271 QMC8553L :
#include <Arduino.h>
#include <Wire.h>
#define addr_kompas 0x0D
int x_kompas, y_kompas, z_kompas;
void deklarasi_kompas() {
Wire.begin();
Wire.beginTransmission(addr_kompas);
Wire.write(0x0B);
Wire.write(0x01);
Wire.endTransmission();
Wire.beginTransmission(addr_kompas);
Wire.write(0x09);
Wire.write(0x1D);
Wire.endTransmission();
}
String baca_kompas() {
float heading = atan2(y_kompas, x_kompas);
if (heading < 0)
heading += 2 * PI;
if (heading > 2 * PI)
heading -= 2 * PI;
float headingDegrees = heading * 180 / M_PI;
if (headingDegrees < 22.5 || headingDegrees > 337.5) {
return "Utara";
} else if (headingDegrees < 67.5) {
return "Timur Utara";
} else if (headingDegrees < 112.5) {
return "Timur";
} else if (headingDegrees < 157.5) {
return "Timur Laut";
} else if (headingDegrees < 202.5) {
return "Selatan";
} else if (headingDegrees < 247.5) {
return "Barat Laut";
} else if (headingDegrees < 292.5) {
return "Barat";
} else if (headingDegrees < 337.5) {
return "Barat Daya";
}
}
void setup()
{
Serial.begin(9600);
deklarasi_kompas();
}
void loop(){
Wire.beginTransmission(addr_kompas);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(addr_kompas, 6);
if (6 <= Wire.available()) {
x_kompas = Wire.read();
x_kompas |= Wire.read() << 8;
z_kompas = Wire.read();
z_kompas |= Wire.read() << 8;
y_kompas = Wire.read();
y_kompas |= Wire.read() << 8;
}
String arah = baca_kompas();
Serial.print("Arah kompas: ");
Serial.println(arah);
delay(500);
}
Jika Kalian Perlu Bantuan Atau Ingin Membuat Sebuah Project Yang Berhubungan Dengan Tutorial Ini Bisa Hubungi Kami Lewat Link Whatsapp Dibawah Ini :

Terimakasih & Selamat Mencoba !!!