查看: 306|回复: 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
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

LCD1602液晶屏不显示
LCD1602液晶屏不显示
Arduino连的LCD1602,程序显示上传成功,但是液晶屏是不显示字符,背景灯亮,是怎么回
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
开贴讲讲NRF24L01P,让你彻底搞懂它的工作原理,持续更...
开贴讲讲NRF24L01P,让你
*****************************************更贴码字很多,很容易触发论坛人工审核机
能够与arduino结合的嵌入式视觉识别模块
能够与arduino结合的嵌入
该视觉识别模块是我司于2018年新推出的产品,处理器采用双核MCU,面向创客以及steam教
无线遥控四个灯泡
无线遥控四个灯泡
我有一个遥控器,一个接收板,还有四个灯泡,不知道如何连接在一起,然后控制灯亮
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
快速回复 返回顶部 返回列表