davidwang928 发表于 2013-8-7 16:10:11

Arduino UNO+HMC5883L 控制LED

各位大神好,
我想請教各位,我想要使用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点亮并且闪烁,效果还不错~~~

江城1916 发表于 2015-1-2 15:58:03

if(70< xDegrees <80)写错了,应该写成if(70< xDegrees && xDegrees<80),C语言的基本语法
页: [1]
查看完整版本: Arduino UNO+HMC5883L 控制LED