引言:
之前用UNO R3的数字引脚输出高/低电平实现了LED的亮/灭,而呼吸灯则是让LED明亮度有一个缓慢变化过程,不是直接的亮灭。如何实现?关键就是数字引脚输出的不再是单纯的高低电平,而是PWM信号!
硬件连接和之前一样,只不过要注意接的数字引脚需要有“~”标记,表示可以输出PWM信号。
代码:
参考学习了两段代码,如下
代码1【1】:
//呼吸灯效果
int ledpin = 9;//led连接引脚
void setup() {
// put your setup code here, to run once:
pinMode(ledpin,OUTPUT);//设置LED对应引脚为输出模式
}
void loop() {
// put your main code here, to run repeatedly:
fadeon(5);//渐亮
fadeoff(5);//渐灭
}
void fadeon(int increament){
for(byte value = 0; value<255;value+=increament){
analogWrite(ledpin,value);//输出PWM信号
delay(50);//delay里面时间越大,亮起以及保持亮度的时间越漫长
}
}
void fadeoff(int decreament){
for(byte value = 255; value>0;value-=decreament){
analogWrite(ledpin,value);
delay(50);//外显效果是从亮到灭的时长
}
}