Featured image of post Arduino红绿灯

Arduino红绿灯

准备工作

开发板1块,USB连接线1根,红、黄、蓝LED各1个,导线3根。
假设分别将LED插入开发板的3,7,11号引脚。

Arduino程序结构

1
2
3
4
5
6
void setup() {
  // 一次性代码;
}
void loop() {
  // 重复性代码;
}

在 Arduino 编程中,void setup() 和 void loop() 是两个必不可少的函数,它们分别用于初始化和重复执行代码。以下是它们的详细说明:

void setup()
功能:该函数用于初始化程序。在这里,你可以设置引脚模式(使用 pinMode())、初始化串口通信、设置初始变量值等。
执行次数:setup() 函数只在程序开始时执行一次。

void loop()
功能:该函数包含了你希望 Arduino 持续执行的代码。所有的主程序逻辑、传感器读取和电机控制等操作都在这里进行。
执行次数:loop() 函数会不断循环执行,直到 Arduino 断电或重置。
总结:
setup() 用于一次性初始化设置; loop() 用于持续运行的代码逻辑。

函数说明

pinMode()

pinMode()用于设置引脚的工作模式,格式为pinMode(pin, mode);
pin 是引脚编号,mode 是工作模式,有INPUT(输入)、OUTPUT(输出) 或 INPUT_PULLUP(输入上拉)。

digitalWrite()

digitalWrite()用于将数字引脚写HIGH(高电平)或LOW(低电平)。格式为digitalWrite(pin, value);
pin 是引脚编号,value是电平值,有HIGH和LOW两种。
本次的LED为亮灭切换,不涉及调节亮度,因此使用数字信号控制。

delay()

delay()是延时函数,参数为整数,表示毫秒值。

参考程序

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 为了方便编程,给引脚设置常量值
#define GREEN 3
#define YELLOW 7
#define RED 11
void setup() {
  // 设置引脚输出模式
  pinMode(GREEN, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(RED, OUTPUT);
}

void loop() {
  // 模拟红绿灯,绿灯亮10秒,黄灯亮5秒,红灯亮10秒
  digitalWrite(GREEN, HIGH);
  delay(10000);
  digitalWrite(GREEN, LOW);
  digitalWrite(YELLOW, HIGH);
  delay(5000);
  digitalWrite(YELLOW, LOW);
  digitalWrite(RED, HIGH);
  delay(10000);
  digitalWrite(RED, LOW);
}