仅当串行监视器未打开时 LED 才闪烁

LED blinking only when Serial Monitor is not open

我有一个非常简单的代码,它的行为与我期望的不同。

代码如下:

int i;

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);

}

void loop() {
  //digitalWrite(13, HIGH);
  i = random(1,5);
  Serial.println(i);
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);

}

使用此代码,LED 仅在串行监视器打开时闪烁,在串行监视器关闭时保持打开状态。我遇到的另一个问题是,如果我注释掉当前的 digitalWrite(LED_BUILTIN, HIGH) 并将其替换为我注释掉的那个,那么即使串行监视器关闭,LED 也不会闪烁。

我有 Arduino Micro

如果要使 LED 闪烁,则需要在 LED 从关闭变为开启时添加一个额外的 delay

目前你有:

LED 亮起 -> 等待 -> LED 熄灭 ->(立即)LED 亮起 -> 等待等

所以你看到的只是 LED 持续亮着,为了让它工作,在 digitalWrite(13, HIGH) 之前添加另一个 delay(1000) 例如:

int i;
    
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
    
}
    
void loop() {
  //digitalWrite(13, HIGH);
  i = random(1,5);
  Serial.println(i);
  delay(1000);
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
}

我在我的 Arduino Nano 上测试了它,它运行良好。