0

所以,我很确定在这里做什么,但由于我需要在测试中在 10 分钟内完成,我必须设置一个 Arduino UNO 来播放 3-LED 序列,其中每个 LED 都打开一秒钟,然后是左边的下一个,然后是第三个,不断重复,直到您按下一个按钮(硬件,板上),然后顺序翻转,第三个 LED 现在是第三个,第一个是最后一个,等等。这是我到目前为止所做的:

void setup()
{
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  digitalWrite(ledPin1, HIGH);   
  delay(1000);                  
  digitalWrite(ledPin2, LOW);    
  delay(1000);
  digitalWrite(ledPin3, LOW);    
  delay(1000); 

}
if (<Button Pressed condition>) 
{
  digitalWrite(ledPin3, HIGH);   
  delay(1000);                  
  digitalWrite(ledPin2, LOW);    
  delay(1000);
  digitalWrite(ledPin1, LOW);    
  delay(1000);
}
else
{
digitalWrite(ledPin1, HIGH);   
  delay(1000);                  
  digitalWrite(ledPin2, LOW);    
  delay(1000);
  digitalWrite(ledPin3, LOW);    
  delay(1000); 
}

我错过了什么吗?另外,如果我有上拉或下拉电阻,我必须改变什么?

4

1 回答 1

1

首先,您确实需要做自己的工作,特别是如果您要参加考试!

但是,从开发自己的答案的角度来看,请逐步解决此问题。

首先,获取一个适用于 ONE Led 的代码版本,它打开然后关闭,按下按钮会立即关闭(如果打开)或立即打开(如果关闭)。即使是这个版本也不容易,因为您需要编写中断服务程序 (ISR)。

一旦你为一个 LED 工作,创建一个代码副本并将其命名为版本 2。让版本 2 为两个 LED 工作。为此,您将需要使用在执行第一个版本时获得的所有知识。如果您对版本 2 有疑问,您可以随时返回到 V1 并使用您知道有效的代码做一些小改动来测试问题!

最后,按照相同的方式执行 V3,仅针对所有三个 LED。

给你答案的人不会帮助你在考试中取得好成绩。祝你好运,请带着具体问题返回 StackOverflow。

于 2013-08-14T19:09:27.717 回答