นวัตกรรม สิ่งประดิษฐ์ และเทคโนโลยี

กรุณา เข้าสู่ระบบ หรือ สมัครสมาชิก.

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
การค้นหาขั้นสูง  

ผู้เขียน หัวข้อ: โมดุลเข็มทิศ GY-271 : QMC5883L  (อ่าน 43 ครั้ง)

NAWATTAKAM

  • Administrator
  • Sr. Member
  • *****
  • กระทู้: 379
โมดุลเข็มทิศ GY-271 : QMC5883L
« เมื่อ: เมษายน 20, 2019, 08:52:49 AM »

ดาวส์โหลด LIB : https://github.com/dthain/QMC5883L


โค๊ด
#include <QMC5883L.h>
#include <Wire.h>

QMC5883L compass;

void setup()
{
Wire.begin();

compass.init();
compass.setSamplingRate(50);  /// Hertz

Serial.begin(9600);

}

void loop()
{
 

 //////////////////// compass 
int angle = compass.readHeading();
if(angle==0) {
/* Still calibrating, so measure but don't print */
} else
{
     Serial.print(" Degree ");
     
     if (angle > 337 || angle < 23)  {Serial.print("N : ");}
else if (angle > 22 && angle < 68)   {Serial.print("NE : ");}
else if (angle > 67 && angle < 113)  {Serial.print("E : ");}
else if (angle > 112 && angle < 158) {Serial.print("SE : ");}
else if (angle > 157 && angle < 203) {Serial.print("S : ");}
else if (angle > 202 && angle < 248) {Serial.print("SW : ");}
else if (angle > 247 && angle < 293) {Serial.print("W : ");}
else if (angle > 292 && angle < 338) {Serial.print("NW : ");}

 Serial.println(angle);
   
}
}

กรณีต้องการอ่านค่าสนามแม่เหล้กทั้ง 3 แกน

โค๊ด
int16_t Fx,Fy,Fz,t;
compass.readRaw(&Fx,&Fy,&Fz,&t);

  Serial.print( X: "); Serial.print( Fx);  Serial.print(" ,Y: "); Serial.print(Fy);  Serial.print(" ,Z: "); Serial.print( Fz); 

บันทึกการเข้า