数字I / O控制

时间:2018-04-30 19:14:35

标签: c++ arduino

我是编码和Arduino的新手。我试图学习主要是为了好玩。我已经很好地掌握了我想要的基础知识。我现在正在为一个项目尝试一些东西,但我无法按照自己的意愿去做。我尝试使用两个数字输入信号进行比较,以控制两个数字输出。

这是我尝试解决的问题:

如果inputA = HIGH且inputB = HIGH 然后outputA = HIGH,outputB = LOW

如果inputA = HIGH且inputB = LOW 然后outputA = HIGH,outputB = HIGH

如果inputA = LOW且inputB = High 然后outputA = LOW,outputB = LOW

如果inputA = LOW且inputB = LOW 然后outputA = LOW,outputB = LOW

这是我尝试的第一个不起作用的代码:

const int inputA = 1;
const int inputB = 2;
const int outputA = 12;
const int outputB = 13;

int inputAstate = 0;
int inputBstate = 0;

void setup()
{
pinMode (inputA, INPUT);
pinMode (inputB, INPUT);
pinMode (outputA, OUTPUT);
pinMode (outputB, OUTPUT);
}
void loop()
{
  {inputAstate = digitalRead(inputA);
   inputBstate = digitalRead(inputB);
    {
    if(inputAstate == HIGH && inputBstate == HIGH)

    digitalWrite(outputA, HIGH);
    digitalWrite(outputB, LOW);
    }
    {
    if (inputAstate == HIGH && inputBstate == LOW)

    digitalWrite(outputA, HIGH);
    digitalWrite(outputB, HIGH);
    }
    {
    if (inputAstate == LOW && inputBstate == LOW)

    digitalWrite(outputA, LOW);
    digitalWrite(outputB, LOW);
    }
    {
    if (inputAstate == LOW && inputBstate == HIGH)

    digitalWrite(outputA, LOW);
    digitalWrite(outputB, LOW);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

正如评论中指出的那样,你基本上没有花括号的重点。但既然你提到你是所有这一切的新手: 条件可以用以下方式编写,花括号覆盖它的范围。 (事实上​​,它们也包括其他任何地方的范围)。

pop

通过使用此逻辑修改代码,您应该能够解决问题。