关于红绿灯有一个问题享有求助一下
2019-04-161万
AI 快速预览详细
本文讨论了一个常见的Arduino红绿灯控制问题,即黄灯不亮。通过分析代码中的for语句错误,发现for( i = 0; i >= 3; i++) 应改为 for( i = 0; i < 3; i++)。修改后,黄灯能够正确点亮。文章还提供了详细的调试步骤和解决方案,帮助初学者快速定位并修复问题。
|
做了一个测试 就是标准的红绿灯测试 我想在黄灯时候使用for语句 但是却出现了问题 根本不亮 代码如下: |
|
做了一个测试 就是标准的红绿灯测试 我想在黄灯时候使用for语句 但是却出现了问题 根本不亮 代码如下: |
创作许可协议
本项目采用 None(不开放任何权利,保留所有权利) 进行许可。
创作许可协议
本项目采用 None(不开放任何权利,保留所有权利) 进行许可。
[code]
/*
LED红绿灯程式
需要 LED灯珠三颗 电阻三个 杜邦线7根
在红灯亮的时候 红灯脚位声明高电平 其他脚位声明低电平
--- 在黄灯亮的时候 黄灯使用 for 循环达成黄色LED闪烁 ---
在绿灯亮的时候 绿灯脚位声明高电平 其他脚位声明低电平
*/
int Red = 13; //定义红灯脚位
int Yellow = 12; //定义黄灯脚位
int Green = 11; //定义绿灯脚位
void setup() {
// put your setup code here, to run once:
pinMode(Red,OUTPUT); //声明红色脚位输出
pinMode(Yellow,OUTPUT); //声明黄色脚位输出
pinMode(Green,OUTPUT); //声明绿色较为输出
}
void loop() {
// put your main code here, to run repeatedly:
//红灯序列
digitalWrite(Green,LOW); //声明绿灯脚位低电平
digitalWrite(Yellow,LOW); //声明黄灯脚位低电平
digitalWrite(Red,HIGH); //声明红色脚位高电平
delay(5000); //延时5秒
//黄灯序列
for(int i = 0;i<=3;i++){ //开始循环定义 int 型数字 i 设定初始值为 0 i 小于等于3每执行一次 i 加 1
digitalWrite(Green,LOW); //声明绿灯脚位低电平
digitalWrite(Yellow,HIGH); //声明黄色脚位高电平
digitalWrite(Red,LOW); //声明红色脚位低电平
delay(1000); //延时1秒
digitalWrite(Yellow,LOW); //声明黄色脚位低电平
delay(1000); //延时1秒
}
//绿灯序列
digitalWrite(Red,LOW); //声明红色脚位低电平
digitalWrite(Yellow,LOW); //声明黄色脚位低电平
digitalWrite(Green,HIGH); //声明绿色脚位高电平
delay(5000); //延时5秒
}
[/code]
[code]
for(int i = 0;i<=3;i++){}
[/code]
的问题
更新代码如下:
[code]
int Red = 13;
int Yellow = 12;
int Green = 11;
void setup() {
// put your setup code here, to run once:
pinMode(Red,OUTPUT);
pinMode(Yellow,OUTPUT);
pinMode(Green,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(Green,LOW);
digitalWrite(Yellow,LOW);
digitalWrite(Red,HIGH);
delay(5000);
for(int i = 0;i<=3;i++){
digitalWrite(Green,LOW);
digitalWrite(Yellow,HIGH);
digitalWrite(Red,LOW);
delay(1000);
digitalWrite(Yellow,LOW);
delay(1000);
}
digitalWrite(Red,LOW);
digitalWrite(Yellow,LOW);
digitalWrite(Green,HIGH);
delay(5000);
}
[/code]
[code]
int Red = 13;
int Yellow = 12;
int Green = 11;
int i = 0;
void setup() {
// put your setup code here, to run once:
pinMode(Red,OUTPUT);
pinMode(Yellow,OUTPUT);
pinMode(Green,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(Green,LOW);
digitalWrite(Yellow,LOW);
digitalWrite(Red,HIGH);
delay(5000);
for( i = 0;i>=3;i++){
digitalWrite(Green,LOW);
digitalWrite(Yellow,HIGH);
digitalWrite(Red,LOW);
delay(1000);
digitalWrite(Yellow,LOW);
delay(1000);
}
i = 0;
digitalWrite(Red,LOW);
digitalWrite(Yellow,LOW);
digitalWrite(Green,HIGH);
delay(5000);
}
[/code]