不同于LED灯的闪烁,呼吸灯的亮度不是忽明忽暗,它的亮度是在不停地变化,由最亮渐渐变换到最暗,然后又由最暗变换到最亮,以此反复,因此又被称为睡眠灯。
在上一节说到了PWM这个概念,简单来说就是控制占空比,通过控制LED灯的占空比,可以调节它的亮度,当然PWM可以控制的远不止LED,像我们上一节说讲的直流马达、 于是问题来了,怎么连续不断的让LED灯的亮度变化呢?很简单我们只需要不断地控制占空比,呼吸灯的效果就实现了。
原理图如下所示,LED灯和一个电阻串联,只用到了Arduino的一个引脚9~,也就是模拟输出引脚。
我们只需要控制9~引脚输出的占空比,就能控制LED灯的亮度,是不是听起来很神奇,好了,马上把你的想法实现吧!
#define LED 9 //把LED灯连在引脚9
int i = 0;
void setup(){
pinMode(LED,OUTPUT); //设定LED为输出模式
}
Void loop(){
for(i = 0;i<=255; i++); //让LED灯亮度由最暗渐渐到最亮
{
analogWrite(LED,i);//控制LED灯的亮度
delay(10); //延时10ms
}
for(i = 255;i>=0; i—);//让LED灯亮度由最亮到最暗
{
analogWrite(LED,i);//控制LED灯的亮度
delay(10); //延时10ms
}
}
在程序中只需要用到两个for循环,第一个for循环让LED灯亮度渐渐增加;第二个for循环让LED灯亮度渐渐降低;analogWrite(LED,i)函数是控制模拟输出的,i的范围是0~255,i的值越大,LED灯亮度越亮。根据delay(5)延时的时间我们可以计算出呼吸灯的周期,如果延时为5ms,那么LED灯呼吸的周期为:5✖️(256+256)=2560ms,大约就是2.5s。
分别为delay(5)和delay(10)的实验现象。
视频加载中...
页面更新:2024-03-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号