Arduino UNO。变量未在if语句中进行测试

时间:2017-04-09 20:54:29

标签: variables arduino-uno

我已经为一个项目编写了一些代码,当温度> = 26℃时,将电机设置为在一个方向上运行6秒以打开通风口。当温度低于26℃时,电动机应向另一个方向运行6秒钟以关闭通风口。通风口打开后,电机不能再向那个方向运行打开它,它应该只能在打开后关闭,不能再打开。结束也是如此。我在代码中遇到的问题是代码中设置了opened函数,基本上告诉代码通风口是打开的,不要再尝试打开。但是,当我设置一些调试线时,我看到电机仍在旋转,opened设置为真/假,具体取决于温度,但它总是错误的值,它的设置在电机时打开已关闭通风口,并在通风口打开时设置为关闭。

#include <Thermistor.h> //Taken from http://garagelab.com/profiles/blogs/tutorial-using-ntc-thermistors-with-arduino

 #define M1A 4
 #define M1B 5

bool opened = false;

Thermistor temp(0);
void setup() {
  Serial.begin(9600);
}
void loop() {
  int temperature = temp.getTemp();
  Serial.print(temperature);
  Serial.println("*C");

  // OPENING///////////////
  if (opened != true and temperature >= 26) {
    digitalWrite(M1A, 1);
    analogWrite(M1B, 0);
    delay(6000);
    digitalWrite(M1A, 0);
    analogWrite(M1B, 0);
    opened = true;
  }

  // CLOSING///////////////
  if (!opened and temperature < 26) {
    digitalWrite(M1A, 0);
    analogWrite(M1B, 255);
    delay(6000);
    digitalWrite(M1A, 0);
    analogWrite(M1B, 0);
    opened = false;
  }

  delay(1000);
  Serial.println(opened);
}

感谢您可能要说的任何内容,如果您想了解更多,请发表评论或其他内容。 克雷格

0 个答案:

没有答案