0

我正在制作一个程序,如果加速度计倾斜一定度数,蜂鸣器就会激活。我收到一条错误消息,提示“未在此范围内声明‘I2C_MODE’。” 我使用的是 Grove Beginner Kit,所以所有部件都会自动相互连接。我从以下链接下载了 Seeed_Arduino_LIS3DHTR 库: https ://github.com/Seeed-Studio/Seeed_Arduino_LIS3DHTR并使用了开发板随附的 Grove Beginner Kit for Arduino Guide 中的示例代码,因此一切都应该正常工作。我收到了这个错误,在我弄清楚是什么导致这个错误之前,我不想进一步推进这个项目。

#include <LIS3DHTR.h>

//Gravity Acceleration
#include "LIS3DHTR.h"
#ifdef SOFTWAREWIRE
#include <SoftwareWire.h>
SoftwareWire myWire(3, 2);
LIS3DHTR<SoftwareWire> LIS(I2C_MODE); //IIC    This is what the error 
#define WIRE myWire
#else
#include <Wire.h>
LIS3DHTR<TwoWire> LIS(I2C_MODE);//IIC          THIS IS WHERE THE ERROR OCCURS
#define WIRE Wire
#endif
void setup() {
Serial.begin(9600);
while (!Serial) {};
LIS.begin(WIRE); //IIC init
delay(100);
LIS.setOutputDataRate(LIS3DHTR_DATARATE_50HZ);
}
void loop() {
if (!LIS) {
Serial.println("LIS3DHTR didn't connect.");
while (1);
return;
}
//3 axis
Serial.print("x:"); Serial.print(LIS.getAccelerationX()); Serial.prin
t(" ");
Serial.print("y:"); Serial.print(LIS.getAccelerationY()); Serial.prin
t(" ");
Serial.print("z:"); Serial.println(LIS.getAccelerationZ());
delay(500);
}
4

1 回答 1

0

您链接的文档的实例化与您所拥有的不同!

尝试传递Wire.begin方法而不是传递给LIS(可能确实存在Wire.h并且可能也存在于SoftwareWire.h

需要合理地投入LIS.begin()setup()尽管从他们的例子来看这似乎并不重要

LIS3DHTR<TwoWire> LIS; //IIC
LIS.begin(Wire, 0x19)
于 2021-10-15T15:28:40.773 回答