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 :

@labrobotika

Terimakasih & Selamat Mencoba !!!

Mau Konsultasi & Diskusi ?