查看: 165|回复: 0

[未解决] 电子罗盘GY-271

[复制链接]

该用户从未签到

发表于 2019-3-14 11:37 | 显示全部楼层 |阅读模式
新人,求教。想做一个电子罗盘指南针,板子用的是uno版本的,电子罗盘为gy-271。接线:Vcc-板子5v,gnd-gnd,scl-A4,sda-A5,程序用的是例程,但输出结果一直不变,求教。
#include <Wire.h>
#include <HMC5883L.h>
HMC5883L compass;
void setup()
{
  Serial.begin(9600);
  Wire.begin();
  compass = HMC5883L();
  compass.SetScale(1.3);
  compass.SetMeasurementMode(Measurement_Continuous);
}
void loop()
{
  MagnetometerRaw raw = compass.ReadRawAxis();
  MagnetometerScaled scaled = compass.ReadScaledAxis();
  float xHeading = atan2(scaled.YAxis, scaled.XAxis);
  float yHeading = atan2(scaled.ZAxis, scaled.XAxis);
  float zHeading = atan2(scaled.ZAxis, scaled.YAxis);
  if(xHeading < 0)    xHeading += 2*PI;
  if(xHeading > 2*PI)    xHeading -= 2*PI;
  if(yHeading < 0)    yHeading += 2*PI;
  if(yHeading > 2*PI)    yHeading -= 2*PI;
  if(zHeading < 0)    zHeading += 2*PI;
  if(zHeading > 2*PI)    zHeading -= 2*PI;
  float xDegrees = xHeading * 180/M_PI;
  float yDegrees = yHeading * 180/M_PI;
  float zDegrees = zHeading * 180/M_PI;
  Serial.print(xDegrees);
  Serial.print(",");
  Serial.print(yDegrees);
  Serial.print(",");
  Serial.print(zDegrees);
  Serial.println(";");
  delay(100);
}



image.jpg
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

BlinkerAT固件不能用
BlinkerAT固件不能用
如图,在配网的时候就卡住了,再发指令就没用了,固件和库都是今天刚下载的,以前的也不好
为什么这个库已经装好了可是在调用的时候却没有显示
为什么这个库已经装好了可
为什么这个库已经装好了可是在调用的时候却没有显示求解决
UART 传输(字符)不稳定,如何解决数据错位和乱码的情况
UART 传输(字符)不稳定
求助大家,我正在写一个 UART 传输多组数据的项目,想要将一端 Arduino 的多组数据通
请问这是什么板子?
请问这是什么板子?
如图,两年前比赛学校发的,但网上找不到资料,现在翻出来,想问问有人知道它怎么用吗
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
快速回复 返回顶部 返回列表