【问题标题】:Arduino Uno CodingArduino Uno 编码
【发布时间】:2017-07-18 17:29:17
【问题描述】:

我目前正在尝试为 Arduino Uno 编写代码。我有四 (4) 排六 (6) 个 LED 灯,我正试图让它们在柜台上自行运行。以下是我的编码,但我遇到了灯亮但不会熄灭的问题。我目前正在使用 TinkerCad 进行故障排除。尽管代码处理了所有四 (4) 行灯,但我只在 void loop() 中为其中的一排进行了编码。任何建议都有帮助!

 // Test for board

int LEDblue = 13;
int LEDblueON = 1000;
int LEDblueOFF = 1000;

int LEDgreen = 12;
int LEDgreenON = 2000;
int LEDgreenOFF = 2000;

int LEDyellow = 11;
int LEDyellowON = 4000;
int LEDyellowOFF = 4000;

int LEDred = 10;
int LEDredON = 8000;
int LEDredOFF = 8000;

int CounterBlue = 0;
int CounterGreen = 0;
int CounterYellow = 0;
int CounterRed = 0;

void setup()
{
  pinMode (LEDblue, OUTPUT);
  pinMode (LEDgreen, OUTPUT);
  pinMode (LEDyellow, OUTPUT);
  pinMode (LEDred, OUTPUT);
}

void loop()
{
  if (CounterBlue <LEDblueON);
  {
    digitalWrite(LEDblue, HIGH);
  }
  if (CounterBlue=LEDblueON+LEDblueOFF);
  {
    digitalWrite(LEDblue, LOW);
  }
  if(CounterBlue>LEDblueON+LEDblueOFF);
  {
    (CounterBlue= 0);
  }
  delay(1);
}

【问题讨论】:

  • 你永远不会改变CounterBlue。而; 在 if 条件之后看起来不正确。 CounterBlue=LEDblueON+LEDblueOFF 也不是比较。
  • 我将“CounterBlue=...”更改为“CounterBlue
  • 变量的名称是Counter*,你不算数。如果您编写的代码根据变量的不同值执行不同的操作,则预计变量会在某个时候发生变化。
  • 你所有的 if 语句都有 ; 不应该在那里......你在哪里增加你的计数器?

标签: arduino arduino-uno


【解决方案1】:

主要问题是在你的 if 语句的条件之后,例如

if (CounterBlue <LEDblueON);
  {
    digitalWrite(LEDblue, HIGH);
  }

括号前有一个;。如果你把它改成

if (CounterBlue <LEDblueON)
  {
    digitalWrite(LEDblue, HIGH);
  }

它应该可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2013-06-05
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多