Pinout:
Pin1 VCC Power + (3v-5v)
Pin 2 RX Receiving data from serial
Pin 3 TX Serial data transmission
Pin 4 GND Power Ground
Pin 5 RST Internal use, no connection, vacant
Pin 6 B0 Internal use, no connection, vacant
Pin 7 SCL I2C clock
Pin 8 SDA I2C data
Spesifikasi:
Measuring range -180 ° 1 °
Resolution 0.01 °
measurement accuracy 1
Repeatability 1
Frequency response 100 HZ (115200bps)
Operating Voltage 35 V
Working current 15mA
Operating temperature -20 ° 8 °
Storage temperature -40 ° 1 °
size 11.5mm × 15.5mm
Komunikasi Serial UART
Baud rate: 115200 bps Parity bit: N Data bits: 8 Stop bits: 1 (DEFAULT)
Baud rate: 9600 bps Parity bit: N Data bits: 8 Stop bits: 1
ada beberapa perintah serial untuk melakukan konfigurasi dan pembacaan data dari sensor
- 0xA5 + 0x51: query mode, kirim data sensor ketika ada permintaan
- 0xA5 + 0x52: Automatic mode, kirim data sensor secara realtime dalam bentuk biner
- 0xA5 + 0x53: Automatic mode, kirim data sensor secara realtime dalam bentuk ASCII
- 0xA5 + 0x54: correction mode, Kalibrasi roll pitch. tahan beberapa detik sebelum melakukan kalibrasi
- 0xA5 + 0x55: correction mode, kalibrasi kompas. Kompas akan diset ke 0 ketika perintah ini dikirim
Susunan pin
Mega - gy 25
5v ---- vcc
gnd ---- gnd
TX3 --- RX
RX3 ---- TX
untuk coding programnya
void setup(){
Serial.begin(115200); // Aktif Serial monitor
Serial3.begin(115200); // Aktif Serial GY25
Serial.println("kalibrasi");
delay(3000);
// Kalibrasi Tilt
Serial3.write(0xA5);
Serial3.write(0x54);
delay(1000);
Serial.println("kalibrasi Tilt done");
// Kalibrasi Heading
Serial3.write(0xA5);
Serial3.write(0x55);
delay(100);
Serial.println("kalibrasi Heading done");
// Output ASCII
Serial3.write(0xA5);
Serial3.write(0x53);
delay(100);
}
void loop(){
// Baca data realtime
Serial.println(Serial3.readStringUntil('\n'));
}
Serial.begin(115200); // Aktif Serial monitor
Serial3.begin(115200); // Aktif Serial GY25
Serial.println("kalibrasi");
delay(3000);
// Kalibrasi Tilt
Serial3.write(0xA5);
Serial3.write(0x54);
delay(1000);
Serial.println("kalibrasi Tilt done");
// Kalibrasi Heading
Serial3.write(0xA5);
Serial3.write(0x55);
delay(100);
Serial.println("kalibrasi Heading done");
// Output ASCII
Serial3.write(0xA5);
Serial3.write(0x53);
delay(100);
}
void loop(){
// Baca data realtime
Serial.println(Serial3.readStringUntil('\n'));
}
Hasil di serial monitor
Catatan :
Sensor akan kalibrasi ketika power di hidupkan, kurang lebih 3000ms, dan harus dalam keadaan diam (tidak bergerak).
Keren ya gan projek arduinonya. Bisa buat referensi nih. Oh iya bagi teman-teman yang mau belajar Arduino bisa mampir ke indobot.co.id nih. Mumpung masih ada slot pendaftaran kursus online gratis.
BalasHapusKalau datanya nggak muncul kenapa ya?
BalasHapuskalo program sudah sesuai,kemungkinan elektrikal
Hapuskalo program sudah sesuai,kemungkinan elektrikal
Hapusi2c tidak terdeteksi ini apakah harus dijumper?
BalasHapus