找不到我要找的东西。
我写了以下代码:
/*
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秒,以表明它们正在工作,然后进入循环。
有人能帮上忙吗?
发布于 2014-07-10 04:04:26
只要在你的设置函数中就可以了!请记住,当Arduino通电(或重置)时,setup只运行一次,然后循环函数将被调用,直到设备断电。
我会尝试下面的代码片段:
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中包含调试代码可能也是值得的:
#ifdef DEBUG
...
#endif 编辑:澄清(回复评论):
#ifdef DEBUG
digitalWrite(green, HIGH);
digitalWrite(amber, HIGH);
digitalWrite(red, HIGH);
delay(1000);
digitalWrite(green, LOW);
digitalWrite(amber, LOW);
digitalWrite(red, LOW);
#endif 这样,您就可以保留调试代码,并在不再调试时将其“关闭”。
https://stackoverflow.com/questions/24655708
复制相似问题