极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13733|回复: 2

Arduino UNO+HMC5883L 控制LED

[复制链接]
发表于 2013-8-7 16:10:11 | 显示全部楼层 |阅读模式
各位大神好,
我想請教各位,我想要使用HMC5883L控制LED,
當X角度介於70~80時,LED才亮燈,否則熄燈。

可是我測試結果無論X角度為何,LED接亮燈。
懇請各位大神指導。
謝謝

我的原碼如下:


#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);
  pinMode(8, OUTPUT);
}
void loop()
{
  MagnetometerRaw raw = compass.ReadRawAxis();
  MagnetometerScaled scaled = compass.ReadScaledAxis();
  float xHeading = atan2(scaled.YAxis, scaled.XAxis);

  if(xHeading < 0) xHeading += 2*PI;

  int xDegrees = xHeading * 180/M_PI;

  Serial.print(xDegrees);
  Serial.print(",");
  if(70< xDegrees <80){
  digitalWrite(8, HIGH);
  }
  else{
    digitalWrite(8, LOW);  
  }
  
  
  delay(100);
}

回复

使用道具 举报

发表于 2013-11-21 12:56:12 | 显示全部楼层
嘿嘿。。。。昨天做了这个实验,不过我是用ARDUINO+HMC5883L做的指南针,一共用了9个LED灯,中间的常亮,其余八个方位的LED表示八个方向,旋转到那个方向,那个方向的LED点亮并且闪烁,效果还不错~~~
回复 支持 反对

使用道具 举报

发表于 2015-1-2 15:58:03 | 显示全部楼层
  if(70< xDegrees <80)写错了,应该写成if(70< xDegrees && xDegrees<80),C语言的基本语法
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 12:15 , Processed in 0.038812 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表