C++ Arduino项目:自动房间灯光控制器
我正在进行一个Arduino小型项目。其目的是利用红外模块和arduino UNO R3设计一个自动房间灯光控制器。在回答我的问题之前,我先解释一下。它就像一个arduino连接到一个红外模块,一个计数器记录进入房间的人数,当房间空无一人时,灯会自动关闭。但是我的代码没有按我预期的方式工作。下面是我的小项目的代码C++ Arduino项目:自动房间灯光控制器,c++,arduino-uno,C++,Arduino Uno,我正在进行一个Arduino小型项目。其目的是利用红外模块和arduino UNO R3设计一个自动房间灯光控制器。在回答我的问题之前,我先解释一下。它就像一个arduino连接到一个红外模块,一个计数器记录进入房间的人数,当房间空无一人时,灯会自动关闭。但是我的代码没有按我预期的方式工作。下面是我的小项目的代码 #define x 14 // x sensor 1 #define y 19 // y sensor 2 #define relay 2 // relay for
#define x 14 // x sensor 1
#define y 19 // y sensor 2
#define relay 2 // relay for output
int count = 0; // initialisation
// void IN() //{ count ++;} // void OUT() // { cout--; // }
void setup()
{
// put your setup code here, to run once:
pinMode(x, INPUT);
pinMode(y, INPUT);
pinMode(relay, OUTPUT);
}
void loop()
{
// put your main code here, to run repeatedly:
if(digitalRead(x)) //IN();
{
count++;
}
if (digitalRead(y)) // OUT();
{
count--;
}
if (count <= 0) {
digitalWrite(relay, LOW);
delay(20);
}
else
digitalWrite(relay, HIGH);
}
#定义x 14//x传感器1
#定义y 19//y传感器2
#定义继电器2//输出继电器
整数计数=0;//初始化
//void IN()//{count++;}//void OUT()//{cout--;//}
无效设置()
{
//将安装代码放在此处,以便运行一次:
pinMode(x,输入);
pinMode(y,输入);
pinMode(继电器、输出);
}
void循环()
{
//将主代码放在此处,以便重复运行:
if(digitalRead(x))//IN();
{
计数++;
}
if(digitalRead(y))//OUT();
{
计数--;
}
如果(你能提供你的传感器在环境中的布局示意图吗?仅仅盯着代码很难判断出哪里出了问题。你应该尝试的第一个修复方法是在传感器读数中添加一个去抖动,因为即使在完美的环境条件和设置下也可能发生错误读数。@PatrickTrentin以下是l注意项目细节。虽然我做了一点修改。因为我并不真的需要液晶显示器,但其余的都一样。你忘了把延迟(1000)
在count++;
和count--;
之后,在最初的项目中,这是为了防止您遇到的确切问题。无论如何,我认为这是一种非常脆弱的方法并且容易失败。您能提供环境中传感器布局的示意图吗?很难通过简单的测试来判断出哪里出了问题关注代码。您应该尝试的第一个修复方法是在传感器读数中添加一个去抖动,因为即使在完美的环境条件和设置下也可能发生错误读数。@PatrickTrentin下面是指向项目详细信息的链接。虽然我对其做了一些更改。因为我实际上不需要LCD,但其余的都一样。您忘记了放置delay(1000);
在count++;
和count--;
之后,在原始项目中,这是为了防止您遇到的确切问题。无论如何,这是一种非常脆弱的方法,容易失败。