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

红绿灯。。。//手写红绿灯
int yellow = 10;
int red = 3;
int green = 4;

void setup() {
// put your setup code here, to run once:
pinMode(yellow,OUTPUT);
pinMode(red,OUTPUT);
pinMode(green,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
int i = 0;
for (i=0;i<5;i++){
    digitalWrite(red,HIGH);
    delay(1000);
}
digitalWrite(red,LOW);
for (i=0;i<2;i++){
    digitalWrite(yellow,HIGH);
    delay(1000);
}
digitalWrite(yellow,LOW);
for (i=0;i<5;i++){
    digitalWrite(green,HIGH);
    delay(1000);
}
digitalWrite(green,LOW);
for (i=0;i<2;i++){
    digitalWrite(yellow,HIGH);
    delay(1000);
}
digitalWrite(yellow,LOW);
}

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 发表于 5 天前

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

本帖最后由 B5oi0T0lyJ7m 于 2025-11-9 18:36 编辑

       int hongdeng =13;   //变量hongdeng =13号端口//
       int huangdeng =12;//变量huangdeng =12号端口//
       int lvdeng =8;      //变量lvdeng =8号端口//
       void setup(){             //首先调用steuo 查看输出类型 配置串口 只运行一次不会重复运行//
         pinMode(hongdeng,OUTPUT);//pinMode就是函数调用 调用红灯 设置为O输出模式//
         pinMode(huangdeng,OUTPUT); //pinMode就是函数调用 调用黄灯 设置为O输出模式//
         pinMode(lvdeng,OUTPUT);    //pinMode就是函数调用 调用绿灯 设置为O输出模式//
         }
       void loop(){
       //下面给绿灯添加长时亮起和循环闪烁//
         digitalWrite(lvdeng,HIGH);//引用绿灯 给予5V电压//
         delay(5000);                //延时4秒//
         digitalWrite(lvdeng,LOW); //引用绿灯 给予0V电压//
       int o = 0;                   //设置变量o为0//
       for(o=0;o<4;o++){         //设置for循环 每循环一次加一 大于三次结束//
         digitalWrite(lvdeng,HIGH);// 引用绿灯 给予5V电压//
         delay(400);               // 延时0.4秒//
      digitalWrite(lvdeng,LOW); //给予绿灯0V电压//
         delay(400);               //延时0.4秒//
      }
      //下面给黄灯添加长时亮起和循环闪烁//
         digitalWrite(huangdeng,HIGH);//引用黄灯 给予5V电压//
         delay(1000);                //延时4秒//
         digitalWrite(huangdeng,LOW); //引用黄灯 给予0V电压//
      int i = 0;                   //设置变量i为0//
      for(i=0;i<4;i++){         //设置for循环 每循环一次加一 大于三次结束//
         digitalWrite(huangdeng,HIGH);// 引用黄灯 给予5V电压//
         delay(400);               // 延时0.4秒//
      digitalWrite(huangdeng,LOW); //给予黄0V电压//
         delay(400);               //延时0.4秒//
          }
       //下面给红灯添加长时亮起和循环闪烁
         digitalWrite(hongdeng,HIGH);//引用红灯 给予5V电压//
         delay(5000);                //延时4秒//
         digitalWrite(hongdeng,LOW); //引用红灯 给予0V电压//
       int x = 0;                   //设置变量X为0//
       for(x=0;x<4;x++){         //设置for循环 每循环一次加一 大于三次结束//
         digitalWrite(hongdeng,HIGH);// 引用红灯 给予5V电压//
         delay(400);               // 延时0.4秒//
         digitalWrite(hongdeng,LOW); //给予红灯0V电压//
         delay(400);               //延时0.4秒//
          }
//最后给一个小小的延时 告诉我 它在等在重新出发 哈哈哈哈哈//
      delay(2000);
}附件里是完整版的详解内容,不让发太多文字,就剪辑了一部分。只针对本章学习的内容作品。

B5oi0T0lyJ7m 发表于 4 天前

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

// 项目 - 交通信号灯
int carRed = 13;    // 汽车红灯引脚
int carYellow = 12; // 汽车黄灯引脚
int carGreen = 8;// 汽车绿灯引脚
int button = 2;   // 按钮引脚
int pedRed = 7;   // 行人红灯引脚
int pedGreen = 4;   // 行人绿灯引脚
int crossTime = 5000; // 允许行人通过的时间(毫秒)
unsigned long changeTime; // 按钮按下后的时间

void setup() {
    pinMode(carRed, OUTPUT);//灯光设置为输出
    pinMode(carYellow, OUTPUT);//灯光设置为输出
    pinMode(carGreen, OUTPUT);//灯光设置为输出
    pinMode(pedRed, OUTPUT);//灯光设置为输出
    pinMode(pedGreen, OUTPUT);//灯光设置为输出
    pinMode(button, INPUT); // 按钮设置为输入模式

    // 初始状态设置
    digitalWrite(carRed, HIGH); // 车行红灯亮
    digitalWrite(pedGreen, HIGH);   // 人行绿灯亮
}

void loop() {
    int state = digitalRead(button);//state状态=digitaLRead函数 读取状态(botton按钮)
    // 检测按钮状态及时间间隔
    if (state == HIGH && (millis() - changeTime) > 5000) {    //if判断(state状态==高电平HIGH 与&& (系统运行时间millis() 减- 按钮按下去的时间chuangeTime) 小于> 5秒 5000
      // 调用变灯函数
      changeLights();
    }
}

void changeLights() {          //这里其实我目前还不是很理解.前面那个调用变灯函数和这里的关系.
//给初始化的行人绿灯闪烁
for (int x = 0; x < 3; x++) {      //循环指令
      digitalWrite(pedGreen, HIGH);//打开行人绿灯
      delay(400);                  //等待0.4秒
      digitalWrite(pedGreen, LOW);   //关闭行人绿灯
      delay(400);                  //等待0.4秒
    }                                  //循环3次结束
      digitalWrite(pedGreen,LOW);    //关闭行人绿灯
      delay(500);                  //等待0.5秒
      digitalWrite(pedRed,HIGH);   //开启行人红灯
      delay(1000);                   //等待1秒,显得自然

      for (int i = 0; i < 3; i++){   //循环指令
      digitalWrite(carRed,LOW);      //关闭车辆红灯
      delay(400);                  //等待0.4秒
      digitalWrite(carRed,HIGH);   //打开车辆红灯
      delay(400);                  //等待0.4秒
      }                              //循环3次结束
      digitalWrite(carRed,LOW);      //关闭车辆红灯
      delay(500);                      //等待0.5秒
      digitalWrite(carYellow,HIGH);    //打开车辆黄灯
      delay(1000);                     //等待1秒
      for (int o = 0; o < 3; o++){   //循环指令
      digitalWrite(carYellow,LOW);   //车辆黄灯关闭
      delay(400);                  //等待0.4秒
      digitalWrite(carYellow,HIGH);//车辆黄灯打开
      delay(400);                  //等待0.4秒
      }                              //循环3次结束
      digitalWrite(carYellow,LOW);   //车辆黄灯关闭
      delay(500);                      //等待0.5秒
      digitalWrite(carGreen,HIGH);   //打开车辆绿灯
      delay(10000);                     //等待10秒
      for (int y = 0; y < 3; y++){   //循环指令
      digitalWrite(carGreen,LOW);      //关闭车辆绿灯
      delay(400);                      //等待0.4秒
      digitalWrite(carGreen,HIGH);   //打开车辆绿灯
      delay(400);                      //等待0.4秒
      }                              //循环3次结束
      digitalWrite(carGreen,LOW);      //关闭车辆绿灯
      digitalWrite(pedRed,LOW);      //关闭行人红灯
      delay(500);                      //等待0.5秒
      digitalWrite(carRed,HIGH);       //打开车辆红灯,回到初始状态
      digitalWrite(pedGreen,HIGH);   //打开行人绿灯.回到初始状态
      
    // 更新changeTime
    changeTime = millis();
}根据本章知识做的,有问题欢迎指正.
页: 1 [2]
查看完整版本: Arduino教程02 做一个S.O.S求救信号灯「DFR0100 」