关于红绿灯有一个问题享有求助一下
本帖最后由 南酥北穆 于 2019-4-16 13:45 编辑做了一个测试 就是标准的红绿灯测试 我想在黄灯时候使用for语句 但是却出现了问题 根本不亮
代码如下:
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);
}
后来修改成这个样子但是依然不行 我最开始以为是这种语言的 int i 用法问题
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);
}
解决了 是
for(int i = 0;i<=3;i++){}
的问题
更新代码如下:
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);
}
增加注释版本 大家可以借鉴学习一下 也欢迎提出更多的思路和想法 大家一起努力
/*
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秒
}
见证了一个问题的诞生和解决 哈哈
页:
[1]