Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Arduino项目:自动房间灯光控制器_C++_Arduino Uno - Fatal编程技术网

C++ 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

我正在进行一个Arduino小型项目。其目的是利用红外模块和arduino UNO R3设计一个自动房间灯光控制器。在回答我的问题之前,我先解释一下。它就像一个arduino连接到一个红外模块,一个计数器记录进入房间的人数,当房间空无一人时,灯会自动关闭。但是我的代码没有按我预期的方式工作。下面是我的小项目的代码

#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--;
之后,在原始项目中,这是为了防止您遇到的确切问题。无论如何,这是一种非常脆弱的方法,容易失败。