“Arduino程序设计(一):打造流水灯与呼吸灯”
LED灯程序设计
前言
一、LED灯的程序设计1 —— 频闪灯
数字信号

pinMode(pin, mode);
可使用的三种模式:
INPUT —— 输入模式
OUTPUT—— 输出模式
INPUT_PULLUP—— 输入上拉模式
digitalWrite(pin, value);
int value = digitalRead(pin);
#define MCU_LED 2
代码实现:
// 频闪灯,500ms点亮,1000ms熄灭,循环点亮LED。
#define MCU_LED 2 //MCU_LED连接到GPIO2
void setup() {
pinMode(MCU_LED, OUTPUT); //MCU_LED定义为输出引脚
}
void loop() {
digitalWrite(MCU_LED, HIGH); //点亮MCU_LED
delay(500); //延时500ms
digitalWrite(MCU_LED, LOW); //熄灭MCU_LED
delay(1000); //延时1000ms
}
二、LED灯的程序设计2 —— 流水灯
代码实现:
// 逐个点亮4个LED,实现流水灯效果。
void setup() {
for(int i = 6; i < 10; i++) //GPIO6、GPIO7、GPIO8、GPIO9定义为输出引脚
pinMode(i, OUTPUT);
}
void loop() {
for(int i = 6; i < 10; i++) //GPIO6 → GPIO9,LED流向从左往右
{
digitalWrite(i, HIGH); //点亮 GPIOi 对应的LED
delay(500); //延时500ms
digitalWrite(i, LOW); //熄灭 GPIOi 对应的LED
}
for(int i = 9; i < 5; i--) //GPIO9 → GPIO6,LED流向从右往左
{
digitalWrite(i, HIGH); //点亮 GPIOi 对应的LED
delay(500); //延时500ms
digitalWrite(i, LOW); //熄灭 GPIOi 对应的LED
}
}
三、LED灯的程序设计3 —— 呼吸灯
模拟信号
int value = analogRead(pin)
analogWrite(pin,value)
代码实现:
// analogWrite()函数输出PWM波控制LED,实现呼吸灯效果。
#define MCU_LED 2 //MCU_LED连接到GPIO2
void setup() {
pinMode(MCU_LED, OUTPUT); //MCU_LED定义为输出引脚
}
void loop() {
for(int i = 0; i < 255; i=i+5) //LED从暗到亮
{
analogWrite(MCU_LED, i); //输出PWM波
delay(30); //延时30ms,以便观察渐变效果
}
for(int i = 255; i >0; i=i-5) //LED从暗到亮
{
analogWrite(MCU_LED, i); //输出PWM波
delay(30); //延时30ms,以便观察渐变效果
}
}
总结
参考文献
参考文献1: 数字I/O的使用
参考文献2: 流水灯实验
参考文献3: 模拟I/O的使用
参考文献4: 呼吸灯实验
参考文献5: ESP8266芯片手册