1991浏览
查看: 1991|回复: 4

[求助] 关于红绿灯有一个问题享有求助一下

[复制链接]
本帖最后由 南酥北穆 于 2019-4-16 13:45 编辑

做了一个测试 就是标准的红绿灯测试 我想在黄灯时候使用for语句 但是却出现了问题 根本不亮

代码如下:
  1. int Red = 13;
  2. int Yellow = 12;
  3. int Green = 11;
  4. int i = 0;
  5. void setup() {
  6.   // put your setup code here, to run once:
  7.   pinMode(Red,OUTPUT);
  8.   pinMode(Yellow,OUTPUT);
  9.   pinMode(Green,OUTPUT);
  10. }
  11. void loop() {
  12.   // put your main code here, to run repeatedly:
  13.   digitalWrite(Green,LOW);
  14.   digitalWrite(Yellow,LOW);
  15.   digitalWrite(Red,HIGH);
  16.   delay(5000);
  17.   for( i = 0;i>=3;i++){
  18.     digitalWrite(Green,LOW);
  19.     digitalWrite(Yellow,HIGH);
  20.     digitalWrite(Red,LOW);
  21.     delay(1000);
  22.     digitalWrite(Yellow,LOW);
  23.     delay(1000);
  24.     }
  25.     i = 0;
  26.   digitalWrite(Red,LOW);
  27.   digitalWrite(Yellow,LOW);
  28.   digitalWrite(Green,HIGH);
  29.   delay(5000);
  30. }
复制代码


南酥北穆  学徒
 楼主|

发表于 2019-4-16 13:53:06

后来修改成这个样子但是依然不行 我最开始以为是这种语言的 int i 用法问题
  1. int Red = 13;
  2. int Yellow = 12;
  3. int Green = 11;
  4. int i = 0;
  5. void setup() {
  6.   // put your setup code here, to run once:
  7.   pinMode(Red,OUTPUT);
  8.   pinMode(Yellow,OUTPUT);
  9.   pinMode(Green,OUTPUT);
  10. }
  11. void loop() {
  12.   // put your main code here, to run repeatedly:
  13.   digitalWrite(Green,LOW);
  14.   digitalWrite(Yellow,LOW);
  15.   digitalWrite(Red,HIGH);
  16.   delay(5000);
  17.   for( i = 0;i>=3;i++){
  18.     digitalWrite(Green,LOW);
  19.     digitalWrite(Yellow,HIGH);
  20.     digitalWrite(Red,LOW);
  21.     delay(1000);
  22.     digitalWrite(Yellow,LOW);
  23.     delay(1000);
  24.     }
  25.     i = 0;
  26.   digitalWrite(Red,LOW);
  27.   digitalWrite(Yellow,LOW);
  28.   digitalWrite(Green,HIGH);
  29.   delay(5000);
  30. }
复制代码
回复

使用道具 举报

南酥北穆  学徒
 楼主|

发表于 2019-4-16 13:57:34

解决了 是
  1. for(int i = 0;i<=3;i++){}
复制代码

的问题

更新代码如下:
  1. int Red = 13;
  2. int Yellow = 12;
  3. int Green = 11;
  4. void setup() {
  5.   // put your setup code here, to run once:
  6.   pinMode(Red,OUTPUT);
  7.   pinMode(Yellow,OUTPUT);
  8.   pinMode(Green,OUTPUT);
  9. }
  10. void loop() {
  11.   // put your main code here, to run repeatedly:
  12.   digitalWrite(Green,LOW);
  13.   digitalWrite(Yellow,LOW);
  14.   digitalWrite(Red,HIGH);
  15.   delay(5000);
  16.   for(int i = 0;i<=3;i++){
  17.     digitalWrite(Green,LOW);
  18.     digitalWrite(Yellow,HIGH);
  19.     digitalWrite(Red,LOW);
  20.     delay(1000);
  21.     digitalWrite(Yellow,LOW);
  22.     delay(1000);
  23.     }
  24.   digitalWrite(Red,LOW);
  25.   digitalWrite(Yellow,LOW);
  26.   digitalWrite(Green,HIGH);
  27.   delay(5000);
  28. }
复制代码
回复

使用道具 举报

南酥北穆  学徒
 楼主|

发表于 2019-4-16 14:24:42

增加注释版本 大家可以借鉴学习一下 也欢迎提出更多的思路和想法 大家一起努力

  1. /*
  2. LED红绿灯程式
  3. 需要 LED灯珠三颗 电阻三个 杜邦线7根 
  4. 在红灯亮的时候 红灯脚位声明高电平 其他脚位声明低电平
  5. --- 在黄灯亮的时候 黄灯使用 for 循环达成黄色LED闪烁 ---
  6. 在绿灯亮的时候 绿灯脚位声明高电平 其他脚位声明低电平
  7. */
  8. int Red = 13;     //定义红灯脚位
  9. int Yellow = 12;  //定义黄灯脚位
  10. int Green = 11;   //定义绿灯脚位
  11. void setup() {
  12.   // put your setup code here, to run once:
  13.   pinMode(Red,OUTPUT);     //声明红色脚位输出
  14.   pinMode(Yellow,OUTPUT);  //声明黄色脚位输出
  15.   pinMode(Green,OUTPUT);   //声明绿色较为输出
  16. }
  17. void loop() {
  18.   // put your main code here, to run repeatedly:
  19.   //红灯序列
  20.   digitalWrite(Green,LOW);  //声明绿灯脚位低电平
  21.   digitalWrite(Yellow,LOW); //声明黄灯脚位低电平
  22.   digitalWrite(Red,HIGH);   //声明红色脚位高电平
  23.   delay(5000);              //延时5秒
  24.   //黄灯序列
  25.   for(int i = 0;i<=3;i++){     //开始循环定义 int 型数字 i 设定初始值为 0 i 小于等于3每执行一次 i 加 1
  26.     digitalWrite(Green,LOW);   //声明绿灯脚位低电平
  27.     digitalWrite(Yellow,HIGH); //声明黄色脚位高电平
  28.     digitalWrite(Red,LOW);     //声明红色脚位低电平
  29.     delay(1000);               //延时1秒
  30.     digitalWrite(Yellow,LOW);  //声明黄色脚位低电平
  31.     delay(1000);               //延时1秒
  32.     }
  33.     //绿灯序列
  34.   digitalWrite(Red,LOW);    //声明红色脚位低电平
  35.   digitalWrite(Yellow,LOW); //声明黄色脚位低电平
  36.   digitalWrite(Green,HIGH); //声明绿色脚位高电平
  37.   delay(5000);              //延时5秒
  38. }
复制代码
回复

使用道具 举报

ASH腻  管理员

发表于 2019-4-16 16:54:19

见证了一个问题的诞生和解决 哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail