首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在开始代码之前测试LED

在开始代码之前测试LED
EN

Stack Overflow用户
提问于 2014-07-09 21:58:11
回答 1查看 75关注 0票数 1

找不到我要找的东西。

我写了以下代码:

代码语言:javascript
复制
    /*
  Traffic Lights
  Turns on an LED on in a predetermined sequence - Red, Red Amber, Green, Amber, Red.

  This example code is in the public domain.
 */

// determine the colours and the pins that they are connected to
int green = 12; //green
int amber = 8; //amber
int red = 4; //red

// the setup routine runs once when you press reset:
void setup() 
{                
  // initialize the digital pins as an output.
  pinMode(green, OUTPUT); 
  pinMode(amber, OUTPUT);
  pinMode(red, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(red, HIGH); //red on
  delay(1250);
  digitalWrite(amber, HIGH); //red amber on
  delay(1250);
  digitalWrite(red, LOW);
  digitalWrite(amber, LOW); //red amber off
  delay(250);
  digitalWrite(green, HIGH); //green on
  delay(1250);
  digitalWrite(green, LOW); //green off
  delay(250);
  digitalWrite(amber, HIGH); //amber on
  delay(1250);
  digitalWrite(amber, LOW); //amber off
  delay(250);
  digitalWrite(red, HIGH); //red on
  delay(1250);


}

我非常喜欢Arduino;我的一个开发朋友正试图让我在代码工作之前‘测试’所有的东西( n00b方法),我的想法是在开始的时候同时打开所有的灯;例如,用一个小'digitalWrite(green, HIGH);就可以很简单地做到这一点。但是,我不希望它循环,我只想让它们只打开一次,持续大约2秒,以表明它们正在工作,然后进入循环。

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-10 04:04:26

只要在你的设置函数中就可以了!请记住,当Arduino通电(或重置)时,setup只运行一次,然后循环函数将被调用,直到设备断电。

我会尝试下面的代码片段:

代码语言:javascript
复制
void setup() 
{                
  // initialize the digital pins as an output.
  pinMode(green, OUTPUT); 
  pinMode(amber, OUTPUT);
  pinMode(red, OUTPUT);
  //Turn the pins on to check your wiring
  digitalWrite(green, HIGH);
  digitalWrite(amber, HIGH);
  digitalWrite(red, HIGH);
  delay(1000);
  digitalWrite(green, LOW);
  digitalWrite(amber, LOW);
  digitalWrite(red, LOW);
}

编辑:在ifdef中包含调试代码可能也是值得的:

代码语言:javascript
复制
#ifdef DEBUG
...
#endif 

编辑:澄清(回复评论):

代码语言:javascript
复制
#ifdef DEBUG
  digitalWrite(green, HIGH);
  digitalWrite(amber, HIGH);
  digitalWrite(red, HIGH);
  delay(1000);
  digitalWrite(green, LOW);
  digitalWrite(amber, LOW);
  digitalWrite(red, LOW);
#endif 

这样,您就可以保留调试代码,并在不再调试时将其“关闭”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24655708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档