2013-12-13 18:41:47 [显示全部楼层]
136886浏览
楼主: Jane

[入门教程] Arduino教程02 做一个S.O.S求救信号灯「DFR0100 」

[复制链接]

IdSNilMdFl2A  学徒

发表于 2021-7-31 11:39:14

作者太棒了!怒赞!
回复

使用道具 举报

LearnArduino  学徒

发表于 2022-7-17 16:56:02

int ledRed = 2;
int ledYellow = 3;
int ledGreen = 4;

void setup() {
    pinMode(ledRed,OUTPUT);
    pinMode(ledYellow,OUTPUT);
    pinMode(ledGreen,OUTPUT);
  }
  
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(ledRed,HIGH);
  delay(5000);
  digitalWrite(ledYellow,HIGH);
  delay(2000);
  digitalWrite(ledRed,LOW);
  digitalWrite(ledYellow,LOW);
  digitalWrite(ledGreen,HIGH);
  delay(5000);
  digitalWrite(ledGreen,LOW);
  digitalWrite(ledYellow,HIGH);
  delay(2000);
  digitalWrite(ledYellow,LOW);
}
回复

使用道具 举报

Kaiii  学徒

发表于 2023-2-18 11:42:29

红绿灯。。。
  1. //手写红绿灯
  2. int yellow = 10;
  3. int red = 3;
  4. int green = 4;
  5. void setup() {
  6.   // put your setup code here, to run once:
  7.   pinMode(yellow,OUTPUT);
  8.   pinMode(red,OUTPUT);
  9.   pinMode(green,OUTPUT);
  10. }
  11. void loop() {
  12.   // put your main code here, to run repeatedly:
  13.   int i = 0;
  14.   for (i=0;i<5;i++){
  15.     digitalWrite(red,HIGH);
  16.     delay(1000);
  17.   }
  18.   digitalWrite(red,LOW);
  19.   for (i=0;i<2;i++){
  20.     digitalWrite(yellow,HIGH);
  21.     delay(1000);
  22.   }
  23.   digitalWrite(yellow,LOW);
  24.   for (i=0;i<5;i++){
  25.     digitalWrite(green,HIGH);
  26.     delay(1000);
  27.   }
  28.   digitalWrite(green,LOW);
  29.   for (i=0;i<2;i++){
  30.     digitalWrite(yellow,HIGH);
  31.     delay(1000);
  32.   }
  33.   digitalWrite(yellow,LOW);
  34. }
复制代码

回复

使用道具 举报

Cloud-Tifa  学徒

发表于 2023-4-30 18:30:33

本帖最后由 Cloud-Tifa 于 2023-4-30 18:33 编辑

int red = 7, yellow = 3, green = 4;
void setup() { pinMode(red,OUTPUT);  
pinMode(yellow,OUTPUT);  
pinMode(green,OUTPUT);
}  

void loop() {   
digitalWrite(red,HIGH);
digitalWrite(yellow,LOW);
digitalWrite(green,LOW);
delay(5000);  

digitalWrite(red,HIGH);
digitalWrite(yellow,HIGH);
digitalWrite(green,LOW);
delay(2000);

digitalWrite(red,LOW);
digitalWrite(yellow,LOW);
digitalWrite(green,HIGH);
delay(5000);  

digitalWrite(red,LOW);
digitalWrite(yellow,HIGH);
digitalWrite(green,LOW);
delay(2000);
}

回复

使用道具 举报

业余潜水员  学徒

发表于 2024-8-19 16:59:57

就4个状态嘛简单粗暴实现

本帖最后由 业余潜水员 于 2024-8-19 17:02 编辑

选了一个最简单粗暴的做法实现红绿灯.反正就4个状态嘛,那就直接全局变量状态,然后判断状态值是什么再显示,简单粗暴其实不错,代码不贴了太简单
回复

使用道具 举报

B5oi0T0lyJ7m  学徒

发表于 2025-11-9 18:25:02

新手买了个板子正在学,刚写的,有问题的话请指教。

本帖最后由 B5oi0T0lyJ7m 于 2025-11-9 18:36 编辑
  1.        int hongdeng =13;   //变量hongdeng =13号端口//
  2.        int huangdeng =12;  //变量huangdeng =12号端口//
  3.        int lvdeng =8;      //变量lvdeng =8号端口//
  4.        void setup(){             //首先调用steuo 查看输出类型 配置串口 只运行一次不会重复运行//
  5.          pinMode(hongdeng,OUTPUT);  //pinMode就是函数调用 调用红灯 设置为O输出模式//
  6.          pinMode(huangdeng,OUTPUT); //pinMode就是函数调用 调用黄灯 设置为O输出模式//
  7.          pinMode(lvdeng,OUTPUT);    //pinMode就是函数调用 调用绿灯 设置为O输出模式//
  8.          }
  9.        void loop(){
  10.        //下面给绿灯添加长时亮起和循环闪烁//
  11.          digitalWrite(lvdeng,HIGH);//引用绿灯 给予5V电压//
  12.          delay(5000);                //延时4秒//
  13.          digitalWrite(lvdeng,LOW); //引用绿灯 给予0V电压//
  14.        int o = 0;                   //设置变量o为0//
  15.        for(o=0;o<4;o++){           //设置for循环 每循环一次加一 大于三次结束//
  16.          digitalWrite(lvdeng,HIGH);// 引用绿灯 给予5V电压//
  17.          delay(400);                 // 延时0.4秒//
  18.         digitalWrite(lvdeng,LOW); //给予绿灯0V电压//
  19.          delay(400);                 //延时0.4秒//
  20.         }
  21.       //下面给黄灯添加长时亮起和循环闪烁//
  22.          digitalWrite(huangdeng,HIGH);//引用黄灯 给予5V电压//
  23.          delay(1000);                //延时4秒//
  24.          digitalWrite(huangdeng,LOW); //引用黄灯 给予0V电压//
  25.         int i = 0;                   //设置变量i为0//
  26.         for(i=0;i<4;i++){           //设置for循环 每循环一次加一 大于三次结束//
  27.          digitalWrite(huangdeng,HIGH);// 引用黄灯 给予5V电压//
  28.          delay(400);                 // 延时0.4秒//
  29.         digitalWrite(huangdeng,LOW); //给予黄0V电压//
  30.          delay(400);                 //延时0.4秒//
  31.           }
  32.        //下面给红灯添加长时亮起和循环闪烁
  33.          digitalWrite(hongdeng,HIGH);//引用红灯 给予5V电压//
  34.          delay(5000);                //延时4秒//
  35.          digitalWrite(hongdeng,LOW); //引用红灯 给予0V电压//
  36.        int x = 0;                   //设置变量X为0//
  37.        for(x=0;x<4;x++){           //设置for循环 每循环一次加一 大于三次结束//
  38.          digitalWrite(hongdeng,HIGH);// 引用红灯 给予5V电压//
  39.          delay(400);                 // 延时0.4秒//
  40.          digitalWrite(hongdeng,LOW); //给予红灯0V电压//
  41.          delay(400);                 //延时0.4秒//
  42.           }
  43.   //最后给一个小小的延时 告诉我 它在等在重新出发 哈哈哈哈哈//
  44.       delay(2000);
  45. }
复制代码
附件里是完整版的详解内容,不让发太多文字,就剪辑了一部分。只针对本章学习的内容作品。

红绿灯文件.mix

5.38 KB, 下载次数: 18

源代码文件

回复

使用道具 举报

B5oi0T0lyJ7m  学徒

发表于 2025-11-10 23:37:28

根据本章内容做的,每行都写了注解,有问题请指教.

  1. // 项目 - 交通信号灯  
  2. int carRed = 13;    // 汽车红灯引脚  
  3. int carYellow = 12; // 汽车黄灯引脚  
  4. int carGreen = 8;  // 汽车绿灯引脚  
  5. int button = 2;     // 按钮引脚  
  6. int pedRed = 7;     // 行人红灯引脚  
  7. int pedGreen = 4;   // 行人绿灯引脚  
  8. int crossTime = 5000; // 允许行人通过的时间(毫秒)  
  9. unsigned long changeTime; // 按钮按下后的时间  
  10.   
  11. void setup() {  
  12.     pinMode(carRed, OUTPUT);  //灯光设置为输出
  13.     pinMode(carYellow, OUTPUT);  //灯光设置为输出
  14.     pinMode(carGreen, OUTPUT);  //灯光设置为输出
  15.     pinMode(pedRed, OUTPUT);  //灯光设置为输出
  16.     pinMode(pedGreen, OUTPUT);  //灯光设置为输出
  17.     pinMode(button, INPUT); // 按钮设置为输入模式  
  18.   
  19.     // 初始状态设置  
  20.     digitalWrite(carRed, HIGH); // 车行红灯亮  
  21.     digitalWrite(pedGreen, HIGH);   // 人行绿灯亮
  22. }  
  23.   
  24. void loop() {  
  25.     int state = digitalRead(button);  //state状态=digitaLRead函数 读取状态(botton按钮)
  26.     // 检测按钮状态及时间间隔  
  27.     if (state == HIGH && (millis() - changeTime) > 5000) {    //if判断(state状态==高电平HIGH 与&& (系统运行时间millis() 减- 按钮按下去的时间chuangeTime) 小于> 5秒 5000
  28.         // 调用变灯函数  
  29.         changeLights();  
  30.     }  
  31. }  
  32.   
  33. void changeLights() {          //这里其实我目前还不是很理解.前面那个调用变灯函数和这里的关系.
  34. //给初始化的行人绿灯闪烁
  35.   for (int x = 0; x < 3; x++) {        //循环指令
  36.         digitalWrite(pedGreen, HIGH);  //打开行人绿灯
  37.         delay(400);                    //等待0.4秒
  38.         digitalWrite(pedGreen, LOW);   //关闭行人绿灯
  39.         delay(400);                    //等待0.4秒
  40.     }                                  //循环3次结束
  41.         digitalWrite(pedGreen,LOW);    //关闭行人绿灯
  42.         delay(500);                    //等待0.5秒
  43.         digitalWrite(pedRed,HIGH);     //开启行人红灯
  44.         delay(1000);                   //等待1秒,显得自然
  45.       for (int i = 0; i < 3; i++){     //循环指令
  46.         digitalWrite(carRed,LOW);      //关闭车辆红灯
  47.         delay(400);                    //等待0.4秒
  48.         digitalWrite(carRed,HIGH);     //打开车辆红灯
  49.         delay(400);                    //等待0.4秒
  50.       }                                //循环3次结束
  51.       digitalWrite(carRed,LOW);        //关闭车辆红灯
  52.       delay(500);                      //等待0.5秒
  53.       digitalWrite(carYellow,HIGH);    //打开车辆黄灯
  54.       delay(1000);                     //等待1秒
  55.       for (int o = 0; o < 3; o++){     //循环指令
  56.         digitalWrite(carYellow,LOW);   //车辆黄灯关闭
  57.         delay(400);                    //等待0.4秒
  58.         digitalWrite(carYellow,HIGH);  //车辆黄灯打开
  59.         delay(400);                    //等待0.4秒
  60.       }                                //循环3次结束
  61.       digitalWrite(carYellow,LOW);     //车辆黄灯关闭
  62.       delay(500);                      //等待0.5秒
  63.       digitalWrite(carGreen,HIGH);     //打开车辆绿灯
  64.       delay(10000);                     //等待10秒
  65.       for (int y = 0; y < 3; y++){     //循环指令
  66.       digitalWrite(carGreen,LOW);      //关闭车辆绿灯
  67.       delay(400);                      //等待0.4秒
  68.       digitalWrite(carGreen,HIGH);     //打开车辆绿灯
  69.       delay(400);                      //等待0.4秒
  70.       }                                //循环3次结束
  71.       digitalWrite(carGreen,LOW);      //关闭车辆绿灯
  72.       digitalWrite(pedRed,LOW);        //关闭行人红灯
  73.       delay(500);                      //等待0.5秒
  74.       digitalWrite(carRed,HIGH);       //打开车辆红灯,回到初始状态
  75.       digitalWrite(pedGreen,HIGH);     //打开行人绿灯.回到初始状态
  76.       
  77.     // 更新changeTime  
  78.     changeTime = millis();  
  79. }
复制代码
根据本章知识做的,有问题欢迎指正.
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail