呼吸灯_呼吸灯程序 - CSDN
呼吸灯 订阅
呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。其广泛应用于手机之上,并成为各大品牌新款手机的卖点之一,起到一个通知提醒的作用。 展开全文
呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。其广泛应用于手机之上,并成为各大品牌新款手机的卖点之一,起到一个通知提醒的作用。
信息
特    点
由亮到暗逐渐变化
英    译
Breathing light
主要作用
通知提醒
中文名
呼吸灯
控制源
微电脑
应用范围
手机
呼吸灯应用
广泛应用于手机之上,并成为各大品牌新款手机的卖点之一。如果你的手机里面有未处理的通知,比如说未接来电,未查收的短信等等,呼吸灯就会由暗到亮的变化,像呼吸一样那么有节奏,起到一个通知提醒的作用。电子爱好者可通过简单的电路来实现呼吸灯的效果。
收起全文
精华内容
参与话题
  • LED呼吸灯程序

    千次阅读 2019-06-08 22:59:08
    LED呼吸灯是在闪烁的基础上,调节LED点亮的时间和熄灭的时间,进而时LED呈现出逐渐变亮或者变暗的过程。 我们知道点亮或者熄灭LED就是给端口高低电平即1或0,通过调节占空比,改变1和0 的占用时间即可达到此效果。 ...

    STM32入门一百步第二十八步

    LED呼吸灯是在闪烁的基础上,调节LED点亮的时间和熄灭的时间,进而时LED呈现出逐渐变亮或者变暗的过程。
    我们知道点亮或者熄灭LED就是给端口高低电平即1或0,通过调节占空比,改变1和0 的占用时间即可达到此效果。

    主程序如下

    int main (void)
    {
    	u8 MENU;
    	u16 t,i;
    	//初始化程序
    	RCC_Configuration(); //时钟设置
    	LED_Init();
    	//设置变量的初始值
    	MENU = 0;
    	t = 1;
    	//主循环
    	while(1)
    	{
    		//菜单0
    		if(MENU == 0)
    		{ //变亮循环
    			for(i = 0; i < 10; i++)
    			{
    				GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
    				delay_us(t); //延时
    				GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
    				delay_us(501-t); //延时
    			}
    			t++;
    			if(t==500){
    				MENU = 1;
    		}
    	}
    		//菜单1
    		if(MENU == 1)
    		{ //变暗循环
    			for(i = 0; i < 10; i++)
    			{
    				GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
    				delay_us(t); //延时
    				GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
    				delay_us(501-t); //延时
    			}
    			t--;
    			if(t==1)
    			{
    				MENU = 0;
    			}
    		}		
    	}
    }
    
    展开全文
  • 单片机实现呼吸灯

    千次阅读 2019-06-11 17:45:21
    用渐变的PWM信号实现LED呼吸灯。 LED由暗逐渐变亮,再由亮逐渐变暗循环。 C语言代码如下: /*----------------------------------------------- Function: 用渐变的PWM信号实现LED呼吸灯 Description: LED由暗逐渐变...

    项目描述:
    用渐变的PWM信号实现LED呼吸灯。 LED由暗逐渐变亮,再由亮逐渐变暗循环。
    C语言代码如下:

    /*-----------------------------------------------
    Function: 用渐变的PWM信号实现LED呼吸灯
    Description: LED由暗逐渐变亮,再由亮逐渐变暗循环
    Author: Zhang Kaizhou
    Date: 2019-6-11 17:47:35
    -----------------------------------------------*/
    #include <reg52.h>
    #define uchar unsigned char
    #define uint unsigned int
    #define PERIOD 500 // 周期为 (9.766 * 500 + 8.682)us
    
    /*全局变量定义*/
    uint low = 0;
    	
    /*端口定义*/
    sbit led = P1^7;
    
    /*函数声明*/
    void delay(uint xus);
    
    /*主函数*/
    void main(){
    	while(1){
    		led = 1;
    		delay(50000);
    		for(low = 0; low < PERIOD; low++){
    			led = 0;
    			delay(low);
    			led = 1;
    			delay(PERIOD - low);
    		}
    		led = 0;
    		delay(50000);
    		for(low = PERIOD - 1; low > 0; low--){
    			led = 0;
    			delay(low);
    			led = 1;
    			delay(PERIOD - low);
    		}
    	}
    }
    
    /*延时函数*/
    void delay(uint xus){ // 延时9.766us * x + 8.682us(仿真测的数据)
    	while(xus--);
    }
    
    展开全文
  • 呼吸灯的实现

    千次阅读 2019-04-03 10:24:02
    最近做的项目中,有要求要实现LED灯光强弱变化控制的,之前有了解过呼吸灯的概念,也知道通过PWM来控制,但也只是停留在概念上面,以前也没有真正去做过这方面的,所以就在网上再搜罗了一番,感觉还是有些云里雾里的...

    最近做的项目中,有要求要实现LED灯光强弱变化控制的,之前有了解过呼吸灯的概念,也知道通过PWM来控制,但也只是停留在概念上面,以前也没有真正去做过这方面的,所以就在网上再搜罗了一番,感觉还是有些云里雾里的,最后只好自己静下心来,从原理上弄懂先。

    了解到要想改变LED亮度改变LED的电流,就需要,一则改变限流电阻,二则改变供电电压值。
    前者一般电阻都是选定,无法再做实时更改,就算可以实时(如数字电位器)在此也是大材小用。
    后者则是一个良好的选择,电压怎么变,如下:

    在这里插入图片描述
    该图展示了方波(PWM)与其电压有效值或者平均值的关系。
    t/T的值可以改变输出的电压有效值或者平均值,t则是高电平时间,T则是方波(PWM)的周期值。
    我们只要固定方波周期值,固定高电平时间,即固定了占空比,也就固定了输出电压值。
    在这里插入图片描述
    先码一下例程代码:

    //灯亮度控制
    void Light_LuxAssign(unsigned char Lux_Strenth)//亮度配置(实设置高电平时长)
    {
    	static unsigned char breath_rt;         //呼吸计时器
    	static const unsigned char breath_Ta=20;这里就先固定一下周期值(周期值不能超过22ms.否则会有闪烁现象,视觉暂留)
    	static unsigned char breath_Ton; //高电平时间
    	breath_Ton=Lux_Strenth;//注意Lux_Strenth不能超过周期值breath_Ta
    	if(breath_Ta<breath_rt)//计时器累加到一个周期
    	{
    		breath_rt=0; //计时器归零	
    	}		
    	else 
    	{
    		breath_rt++;//计时器继续累加
    	}
    	(breath_Ton>breath_rt)?(LED7_O(1)):(LED7_O(0));//灯亮灭时间控制
    }
    

    这段函数功能是实现输入一个固定的高电平时间值(即固定占空比),然后LED就实现了LED的亮度控制。
    在这里插入图片描述
    按此思路,然后就来呼吸灯的实现步骤,
    实现呼吸灯的效果,即运行过程中,就需要实现占空比(高电平时长)如同呼吸一样消长。因为如上言,改变占空比,即改变LED两端的电压有效值,也就改变了驱动LED的有效电流值,从而实现LED暗亮的渐变效果。即动态占空比的实现

    实现代码如下:

    void Breath_Light(unsigned char breath_speed,unsigned char breath_Ta)// 呼吸速率(us)|呼吸时间(us)
    {
    	#define BREATH_TASK_TIME 200 //时基200us
    
    	static unsigned char breath_dir;//呼吸方向(呼气/吸气)
    	static unsigned char breath_rt;//呼吸计时器
    	static unsigned char breath_speed_cnt;//呼吸速率累加器
    	static unsigned char breath_Ton;//高电平时间
    	
    	if(!breath_dir)
    	{
    		if(breath_Ta<breath_rt)//计时器累加到一个周期
    		{
    			breath_rt=0; //计时器归零
    			if(0==breath_speed_cnt++%breath_speed)	
    			{
    				breath_speed_cnt=0;
    		   	breath_Ton++;//占空比加大
    			}				
    		}		
    		else  //
    		{
    			breath_rt++;//计时器继续累加
    		}
    		if(breath_Ton>=breath_Ta)
    		{		
    			breath_dir=1;
    			breath_Ton=breath_Ta;
    		}	
    		(breath_Ton>breath_rt)?(LED7_O(1)):(LED7_O(0));	//Ton导通时间区	
    	}
    	else
    	{
    		if(breath_Ta<breath_rt)//计时器累加到一个周期
    		{
    			breath_rt=0; //计时器归零
    			if(0==breath_speed_cnt++%breath_speed)	
    			{
    				breath_speed_cnt=0;
    				breath_Ton--;//占空比减小
    			}		
    		}		
    		else  //
    		{
    			breath_rt++;//计时器继续累加
    		}
    		if(0>=breath_Ton)
    		{		
    			breath_dir=0;
    			breath_Ton=0;
    		}
    		(breath_Ton>breath_rt)?(LED7_O(1)):(LED7_O(0));		
    	}
    }
    

    上面函数是在定时器中运行的,定时时基为200us

    定时器中断如下:

    void TIM1_ISR() interrupt 3 
    {
    //	Breath_Light(5,100);//呼吸灯
    	Light_LuxAssign(20);//暗弱控制
    }
    
    展开全文
  • 呼吸灯源代码呼吸灯源代码呼吸灯源代码呼吸灯源代码呼吸灯源代码呼吸灯源代码呼吸灯源代码呼吸灯源代码
  • PWM实现呼吸灯

    千次阅读 2019-07-30 20:34:20
    PWM实现呼吸灯 一、PWM简介 脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制, ...

    PWM实现呼吸灯

    一、PWM简介
    脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制, PWM 原理如图 14.1.1 所示:
    在这里插入图片描述
    图 14.1.1 就是一个简单的 PWM 原理示意图。图中,我们假定定时器工作在向上计数 PWM模式,且当 CNT<CCRx 时,输出 0,当 CNT>=CCRx 时输出 1。那么就可以得到如上的 PWM示意图:当 CNT 值小于 CCRx 的时候, IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1), 当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。
    STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样, STM32 最多可以同时产生 30 路 PWM 输出!这里我们使用 TIM3的 CH2 产生一路 PWM 输出。
    要使 STM32 的通用定时器 TIMx 产生 PWM 输出,我们会用到这 3 个寄存器 来控制 PWM 的 。这三个寄存器分别是 :捕获 /比较模式寄存器(TIMx_CCMR1/2)、捕获/比较使能寄存器(TIMx_CCER)、捕获/比较寄存器(TIMx_CCR1~4)。接下来我们简单介绍一下这三个寄存器。
    首先是捕获/比较模式寄存器(TIMx_CCMR1/2),该寄存器总共有 2 个, TIMx _CCMR1和 TIMx _CCMR2。 TIMx_CCMR1 控制 CH1 和 2,而 TIMx_CCMR2 控制 CH3 和 4。该寄存器的各位描述如图 14.1.2 所示:
    在这里插入图片描述
    该寄存器的有些位在不同模式下,功能不一样,所以在图 14.1.2 中,我们把寄存器分了 2层,上面一层对应输出而下面的则对应输入。这里我们需要说明的是模式设置位 OCxM,总共可以配置成 7 种模式,我们使用的是 PWM 模式,所以这 3 位必须设置为 110/111。这两种 PWM 模式的区别就是输出电平的极性相反。 另外 CCxS 用于设置通道的方向(输入/输出)默认设置为 0,就是设置通道作为输出使用。接下来,我们介绍捕获/比较使能寄存器(TIMx_CCER),该寄存器控制着各个输入输出通道的开关。该寄存器的各位描述如图 14.1.3 所示:
    在这里插入图片描述
    该寄存器比较简单, 我们这里只用到了 CC2E 位,该位是输入/捕获 2 输出使能位,要想PWM 从 IO 口输出,这个位必须设置为 1,所以我们需要设置该位为1。
    最后,我们介绍一下捕获/比较寄存器(TIMx_CCR1~4),该寄存器总共有 4 个,对应 4 个输通道 CH1~4。因为这 4 个寄存器都差不多,我们仅以 TIMx_CCR1 为例介绍,该寄存器的各位描述如图 14.1.4 所示:
    在这里插入图片描述
    在输出模式下,该寄存器的值与 CNT 的值比较,根据比较结果产生相应动作。利用这点,我们通过修改这个寄存器的值,就可以控制 PWM 的输出脉宽了。 本章,我们使用的是 TIM3的通道 2,所以我们需要修改 TIM3_CCR2 以实现脉宽控制 DS0 的亮度。
    我们要使用 TIM3 的 CH2 输出 PWM 来控制 DS0 的亮度,但是 TIM3_CH2 默认是接在 PA7上面的,而我们的 DS0 接在 PB5 上面,如果普通 MCU,可能就只能用飞线把 PA7 飞到 PB5上来实现了,不过,我们用的是 STM32,它比较高级,可以通过重映射功能,把 TIM3_CH2映射到 PB5 上。
    STM32 的重映射控制是由复用重映射和调试 IO 配置寄存器(AFIO_MAPR)控制的,该寄存器的各位描述如图 14.1.5 所示:
    在这里插入图片描述
    我们这里用到的是 TIM3 的重映射,从上图可以看出, TIM3_REMAP 是[11:10]这 2 个位控制的。 TIM3_REMAP[1:0]重映射控制表如表 14.1.1 所示:
    在这里插入图片描述
    默认条件下, TIM3_REMAP[1:0]为 00,是没有重映射的,所以 TIM3_CH1~TIM3_CH4 分别是接在 PA6、 PA7、 PB0 和 PB1 上的,而我们想让 TIM3_CH2 映射到 PB5 上,则需要设置TIM3_REMAP[1:0]=10,即部分重映射,这里需要注意,此时 TIM3_CH1 也被映射到 PB4 上了。
    至此,我们把本章要用的几个相关寄存器都介绍完了, 本章要实现通过重映射 TIM3_CH2到 PB5 上,由 TIM3_CH2 输出 PWM 来控制 DS0 的亮度。 下面我们介绍配置步骤:
    1)开启 TIM3 时钟,配置 PB5 为复用输出。
    要使用 TIM3,我们必须先开启 TIM3 的时钟(通过 APB1ENR 设置),这点相信大家看了这么多代码,应该明白了。这里我们还要配置 PB5 为复用输出,这是因为 TIM3_CH2 通道将重映射到 PB5 上,此时, PB5 属于复用功能输出。
    2) 设置 TIM3_CH2 重映射到 PB5 上。
    因为 TIM3_CH2 默认是接在 PA7 上的,所以我们需要设置 TIM3_REMAP 为部分重映射(通过 AFIO_MAPR 配置),让 TIM3_CH2 重映射到 PB5 上面。
    3)设置 TIM3 的 ARR 和 PSC。
    在开启了 TIM3 的时钟之后,我们要设置 ARR 和 PSC 两个寄存器的值来控制输出 PWM 的周期。当 PWM 周期太慢(低于 50Hz)的时候,我们就会明显感觉到闪烁了。因此, PWM 周期在这里不宜设置的太小。
    4)设置 TIM3_CH2 的 PWM 模式。
    接下来,我们要设置 TIM3_CH2 为 PWM 模式(默认是冻结的),因为我们的 DS0 是低电平亮,而我们希望当 CCR2 的值小的时候, DS0 就暗, CCR2 值大的时候, DS0 就亮,所以我们要通过配置 TIM3_CCMR1 的相关位来控制 TIM3_CH2 的模式。
    5)使能 TIM3 的 CH2 输出,使能 TIM3。
    在完成以上设置了之后,我们需要开启 TIM3 的通道 2 输出以及 TIM3。前者通过
    TIM3_CCER1 来设置,是单个通道的开关,而后者则通过 TIM3_CR1 来设置,是整个 TIM3 的总开关。只有设置了这两个寄存器,这样我们才能在 TIM3 的通道 2 上看到 PWM 波输出。
    6)修改 TIM3_CCR2 来控制占空比。
    最后,在经过以上设置之后, PWM 其实已经开始输出了,只是其占空比和频率都是固定的,而我们通过修改 TIM3_CCR2 则可以控制 CH2 的输出占空比。继而控制 DS0 的亮度。
    通过以上 6 个步骤,我们就可以控制 TIM3 的 CH2 输出 PWM 波了。

    //TIM3 PWM 部分初始化
    //PWM 输出初始化
    //arr:自动重装值
    //psc:时钟预分频数
    void TIM3_PWM_Init(u16 arr,u16 psc)
    {
    //此部分需手动修改 IO 口设置
    	RCC->APB1ENR|=1<<1; //TIM3 时钟使能
    	RCC->APB2ENR|=1<<3; //使能 PORTB 时钟
    	GPIOB->CRL&=0XFF0FFFFF; //PB5 输出
    	GPIOB->CRL|=0X00B00000; //复用功能输出
    	RCC->APB2ENR|=1<<0; //开启辅助时钟
    	AFIO->MAPR&=0XFFFFF3FF; //清除 MAPR 的[11:10]
    	AFIO->MAPR|=1<<11; //部分重映像,TIM3_CH2->PB5
    	TIM3->ARR=arr; //设定计数器自动重装值
    	TIM3->PSC=psc; //预分频器不分频
    	TIM3->CCMR1|=7<<12; //CH2 PWM2 模式
    	TIM3->CCMR1|=1<<11; //CH2 预装载使能
    	TIM3->CCER|=1<<4; //OC2 输出使能
    	TIM3->CR1=0x0080; //ARPE 使能
    	TIM3->CR1|=0x01; //使能定时器 3
    }
    

    此部分代码包含了上面介绍的 PWM 输出设置的前 5 个步骤。这里我们关于 TIM3 的设置就不再说了, 这里提醒下:在配置 AFIO 相关寄存器的时候,必须先开启辅助功能时钟。

    void LED_Init(void)
    {
    	RCC->APB2ENR|=1<<3;    //使能PORTB时钟	   	 
    	RCC->APB2ENR|=1<<6;    //使能PORTE时钟	
    	   	 
    	GPIOB->CRL&=0XFF0FFFFF; 
    	GPIOB->CRL|=0X00300000;//PB.5 推挽输出   	 
        GPIOB->ODR|=1<<5;      //PB.5 输出高
    											  
    	GPIOE->CRL&=0XFF0FFFFF;
    	GPIOE->CRL|=0X00300000;//PE.5推挽输出
    	GPIOE->ODR|=1<<5;      //PE.5输出高 
    }
    

    初始化PB5和PE5为输出口.并使能这两个口的时钟 LED IO初始化

    void TIM3_IRQHandler(void)
    { 		    		  			    
    	if(TIM3->SR&0X0001)//溢出中断
    	{
    		LED1=!LED1;			    				   				     	    	
    	}				   
    	TIM3->SR&=~(1<<0);//清除中断标志位 	    
    }
    

    该部分代码主要是定时器3中断服务函数。

    void TIM3_Int_Init(u16 arr,u16 psc)
    {
    	RCC->APB1ENR|=1<<1;	//TIM3时钟使能    
     	TIM3->ARR=arr;  	//设定计数器自动重装值//刚好1ms    
    	TIM3->PSC=psc;  	//预分频器7200,得到10Khz的计数时钟		  
    	TIM3->DIER|=1<<0;   //允许更新中断	  
    	TIM3->CR1|=0x01;    //使能定时器3
      	MY_NVIC_Init(1,3,TIM3_IRQn,2);//抢占1,子优先级3,组2	
     }
    

    通用定时器初始化。

    #include "sys.h"
    #include "delay.h"
    #include "usart.h" 
    #include "led.h" 
    #include "timer.h" 
    //ALIENTEK精英STM32F103开发板 实验9
    //PWM输出 实验  
    //技术支持:www.openedv.com
    //广州市星翼电子科技有限公司 
    int main(void)
    {					   
    	u16 led0pwmval=0;    
    	u8 dir=1;	
    	Stm32_Clock_Init(9);	//系统时钟设置
    	uart_init(72,115200);	//串口初始化为115200
    	delay_init(72);	   	 	//延时初始化 
    	LED_Init();		  		//初始化与LED连接的硬件接口
      	TIM3_PWM_Init(899,0);	//不分频。PWM频率=72000/(899+1)=80Khz
       	while(1)
    	{
     		delay_ms(10);	 
    		if(dir)led0pwmval++;
    		else led0pwmval--;	 
     		if(led0pwmval>300)dir=0;
    		if(led0pwmval==0)dir=1;	   					 
    		LED0_PWM_VAL=led0pwmval;	   
    	}
    }
    

    主函数代码。
    通过以上的程序就可以通过PWM实现呼吸灯闪烁。接下来将通过STM32来完成一个4轮避障小车。实现一个定时器的4个通道来实现PWM电机调速。来加深对PWM的理解。

    展开全文
  • 呼吸灯.txt

    2020-07-28 23:32:16
    简单明了的呼吸灯程序,适合初学者,积分无法自定义,感觉这么简单的代码,5个积分太多了
  • 呼吸灯效果动画

    千次阅读 2017-11-01 07:44:21
    呼吸灯效果动画
  • FPGA verilog HDL 呼吸灯及呼吸流水灯实现

    万次阅读 多人点赞 2020-08-24 15:12:13
    项目一:FPGA的呼吸灯实现 项目介绍:呼吸灯,就是想人们呼吸频率的一种led灯亮灭的一种表现形式。过程是慢慢变亮,然后变亮以后又慢慢变灭的一种过程。很多初学者会认为硬件逻辑语言怎么能控制电流的高低呢,让灯...
  • 呼吸灯案例css

    2020-08-05 19:37:42
    <!... <... <head> ...meta charset="UTF-8">...meta name="viewport" content="width=device-width, initial-scale=1.0">...呼吸灯</title> <style> *{ box-sizing: borde
  • STM32——呼吸灯

    千次阅读 2018-03-29 21:44:06
    此时PA1相当于开关,输入高则导通,亮,输入低则截至,暗。 用定时器生成PWM波 PWM全称是Pulse Width Modulation,通过控制高频信号的占空比,眼睛当成低通滤波器,可以控制亮暗。再循环更改pwm的阈值,就弄...
  • 呼吸灯的写法

    千次阅读 2018-08-03 21:21:03
    芯片周期20ns,当计数50次为1us,在计数1000次则1ms,在计数1000... 为了实现呼吸灯从亮到暗,在由暗到亮需要设置一个标志位flag 呼吸灯的画出分析 这里写代码片 module huxi( input wire clk, input wire rst_n,...
  • 基于FPGA的呼吸灯设计

    千次阅读 2020-01-03 13:49:01
    网上类似的标题很多,有一些呼吸灯的设计是基于单片机的,还有一部分设计是基于FPGA的,我也一时手痒,将这两天自己重新写的verilog描述语句晒出来,免得压箱底放久了,出现发霉点。 为什么说重新写的呢,之前有...
  • 基于STM32最简单的呼吸灯

    万次阅读 2014-12-14 16:19:05
    下午做了一个呼吸灯,十几行代码,调试好久,才出来一个比较好的呼吸灯效果。下面我示范以下,怎么用最简单的方法实现一个基于STM32的呼吸灯(基于安富莱 STM32-V5开发板,里面用的了ST官方的库函数,还有安富莱他们...
  • 基于51单片机的呼吸灯

    万次阅读 多人点赞 2020-07-23 20:38:49
    我们家里使用的是50Hz,一秒钟会亮灭50次,但是我们觉得是一直亮着的。 但是亮和暗的程度取决于发光和不发光所占时间的长短比例,但是亮和灭的持续时间不能超过1/24秒(视觉残留最长时间) 程序设...
  • Arduino基础入门篇09—会呼吸

    万次阅读 2019-11-04 14:02:07
    本篇使用Arduino模拟输出功能,通过PWM脉宽调制来控制LED灯亮度,使其呈现呼吸灯效果。
  • 呼吸灯就是类似人的呼吸一样,一呼一吸,灯的变化是从亮到灭再到亮的过程,是一个循序渐进的过程,而不是一个跳变。 通过软件模拟PWM,可以达到呼吸灯的效果。 PWM即脉冲宽度调制,简单地说,就是一段时间为高,一段...
  • Arduino Uno 全彩呼吸灯 三色LED灯渐变实例

    万次阅读 多人点赞 2017-08-08 11:35:58
    共阳三色雾状LED 可以控制三种颜色 ,分别是红,绿,蓝, 通过控制其亮度,可以混合出各种颜色,非常漂亮哦 注意  共阳指接的是正极 共阴指接的是负极 实验效果 引脚 请查看产品大图...
  • CSS3特效 - 呼吸灯效果

    千次阅读 2018-10-17 17:10:29
    1. 效果图 2. 代码如下 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="content-type"...呼吸灯&lt;/title&gt; &lt
  • 51单片机基于定时器的精准呼吸灯

    千次阅读 多人点赞 2019-12-09 10:24:58
    51单片机基于定时器的精准呼吸灯 设计目的:实现LED小灯从最暗到最亮再到最暗的循环显示 最暗——最亮——最暗 整个周期为2.88秒(符合呼吸频率) 以下代码可调,可以自己定义时间。 51单片机 P2接LED。 只需要把...
  • http://item.jd.com/1105057.html FN+Scrllock为开关按钮 FN+PuUp为调节灯光   http://item.jd.com/1154075.html 鼠标底面有开关可以一键切换是否打开或者关闭呼吸灯
1 2 3 4 5 ... 20
收藏数 7,664
精华内容 3,065
关键字:

呼吸灯