精华内容
下载资源
问答
  • 呼吸灯原理

    2015-10-10 16:47:21
    呼吸灯原理仿真图,基于proteus的仿真原理图
  • 呼吸灯原理

    千次阅读 2020-10-15 11:38:48
    1.呼吸灯原理分析:模拟人体呼吸,吸气和呼气各占1.5S,人眼的图像滞留时间0.04s(1/24帧画面),按最快0.04s算,就是40ms。亮0.02S,灭0.02s,人眼看到的应该是一直亮(可以实验)。 2.呼吸灯程序设计:就是改变这40...

    1.呼吸灯原理分析:模拟人体呼吸,吸气和呼气各占1.5S,人眼的图像滞留时间0.04s(1/24帧画面),按最快0.04s算,就是40ms。亮0.02S,灭0.02s,人眼看到的应该是一直亮(可以实验)。

    2.呼吸灯程序设计:就是改变这40ms中,亮和灭所占的百分比(40ms相对不柔和,20ms效果柔和)。

    亮的百分比多,人眼看到的就亮,反之就是暗(实验,为了提高呼吸灯的柔和效果,采用设置20ms一个周期,20ms内调整亮和灭的比例)

    因此程序设计:1.5S需要1500/20=75个周期,75个周期中,亮度百分比有0%增长到100%,因此每个周期增长时间为20ms/75=266us(点亮)。熄灭的原理,正好相反,熄灭时间增长。程序中需要两个循环,一个用来点亮一个用来熄灭。 程序要灵活设计,能够调整呼吸时间的长短,1.5s这个参数。可以调整柔和度,可以调整40ms这个周期参数,这样就实现了呼吸灯的灵活调整。

    展开全文
  • 呼吸灯原理及制作案例
  • 本文主要讲了呼吸灯电路图设计原理,希望对你的学习有所帮助。
  • 呼吸灯原理简介 + FPGA实现呼吸灯

    千次阅读 2020-02-11 23:15:21
    呼吸灯原理简介 + FPGA实现呼吸灯 所谓呼吸灯,就是是指灯光在微电脑的控制之下完成由亮到暗再由暗到亮的逐渐变化,感觉好像是人在呼吸,主要用于起通知提醒的作用。 本文简要介绍一下呼吸灯的原理,最后并附上FPGA...

    呼吸灯原理简介 + FPGA实现呼吸灯

    所谓呼吸灯,就是是指灯光在微电脑的控制之下完成由亮到暗再由暗到亮的逐渐变化,感觉好像是人在呼吸,主要用于起通知提醒的作用。
    本文简要介绍一下呼吸灯的原理,最后附上FPGA的呼吸灯Verilog HDL代码。希望能给各位读者些许帮助。

    呼吸灯的效果是灯逐渐由暗变亮再逐渐由亮变暗周而复始像人在呼吸一样。大家可能会想到如果能实现逐渐增加电压再逐渐减小电压就能轻松实现。但是FPGA的引脚电压只有“0”和“1”两个等级。因此通过FPGA引脚实现“正弦波式”信号输出是不现实的。所以事实上都是通过改变引脚单位时间内高电平的输出时间来实现呼吸灯,也就是让FPGA引脚输出一系列PWM波信号并不断改变PWM波的占空比。

    呼吸灯分为两个阶段:
    第一阶段:由暗到亮。就是输出的一系列PWM波占空比由0%到100%以1%为间隔递增,共100个周期PWM波。
    第二阶段:由亮到暗。就是输出的一系列PWM波占空比由100%到0%以1%为间隔递减,共100个周期PWM波。
    注意:
    有两个100:一个100为占空比100%;另一个100为由0%到100%或100%到0%需要100个周期PWM波。

    FPGA呼吸灯代码Breath_LED.v:

    /*************************************************
    // 文件说明:      led呼吸灯代码
    // 创 建 人:     mnWu522
    // 日期:         2020-2-11
    // 修 改 人:                     
    // 修改日期:     20xx-xx-xx
    *************************************************/
    module Breath_LED(
    	input clk,
    	output reg led
    );
    
    reg [12:0]cnt1;
    reg [8:0]cnt2;
    reg [8:0]cnt3;
    reg flag;
    initial flag <= 0;
    initial cnt1 <= 0;
    initial cnt2 <= 0;
    initial cnt3 <= 0;
    
    always @(posedge clk)
    begin
    	if(cnt1 == 5000)begin
    		cnt2 <= cnt2 + 1;
    		cnt1 <= 0;
    	end else begin
    		cnt1 <= cnt1 +1;
    	end
    
    	if(cnt2 == 99)begin
    		cnt3 <= cnt3 + 1;
    		cnt2 <= 0;
    	end
    
    	if(cnt3 == 99)begin
    		flag <= ~flag;
    		cnt3 <= 0;
    	end
    
    	if(cnt2 >= cnt3 && flag == 0)begin
    		led <= 1;
    	end else if(cnt2 <= cnt3 && flag == 0)begin
    		led <= 0;
    	end else if(cnt2 >= cnt3 && flag == 1)begin
    		led <= 0;
    	end else if(cnt2 <= cnt3 && flag == 1)begin
    		led <= 1;
    	end
    end
    
    endmodule
    

    代码讲解:
    该代码实现一个2s的呼吸灯,1s由暗到亮,1s由亮到暗。
    由第二个100得一个PWM波周期为1s/100=10ms;
    由第一个100得1%占空比为10ms/100=100us;
    cnt1加到5000是因为本代码默认时钟为50MHz,5000/50000000Hz=100us,可根据FPGA实际情况自行修改。

    展开全文
  • STM32呼吸灯原理

    千次阅读 2020-09-16 21:48:49
    呼吸灯原理其实是利用pwm(脉冲宽度调节)技术,通过改变占空比来实现呼吸灯,占空比是指高电平除以总的周期, 下面直接上代码 int xxx=20000; while(1) { for(i=0;i<xxx;i++) { GPIO_ResetBits(GPIOF,GPIO_Pin_...

    前段时间学习stm32的时候就做过呼吸灯实验,浏览了一些博客后,做下总结
    呼吸灯原理其实是利用pwm(脉冲宽度调节)技术,通过改变占空比来实现呼吸灯,占空比是指高电平除以总的周期,
    下面直接上代码
    int xxx=20000;
    while(1)
    {
    for(i=0;i<xxx;i++)
    {
    GPIO_ResetBits(GPIOF,GPIO_Pin_10);
    delay(xxx-i);
    GPIO_SetBits(GPIOF,GPIO_Pin_10);
    delay(i);
    }
    for(i=0;i<xxx;i++)
    {
    GPIO_ResetBits(GPIOF,GPIO_Pin_10);
    delay(i);
    GPIO_SetBits(GPIOF,GPIO_Pin_10);
    delay(xxx-i);
    }
    delay(100);
    }

    还有一种方法是使用灯引脚用作为定时器复用功能,然后初始化定时器输出功能为pwm,再通过修改CCR1改变占空比。
    下面上程序,
    定时器程序
    GPIO_InitTypeDef aaa;//GPIO初始化结构体
    TIM_TimeBaseInitTypeDef bbb;
    TIM_OCInitTypeDef ccc;

    //0、时钟使能
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//PF9对应的时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);
    
    //1、初始化需要用到的模块
    aaa.GPIO_Pin = GPIO_Pin_9;//PF9
    aaa.GPIO_Mode = GPIO_Mode_AF;//复用功能  因为pF9等会要被用作定时器输出功能
    aaa.GPIO_Speed = GPIO_Fast_Speed;//引脚速度选择
    aaa.GPIO_OType =  GPIO_OType_PP;//推挽输出 GPIO_OType_OD 开漏
    aaa.GPIO_PuPd  = GPIO_PuPd_NOPULL;//选择浮空 无上下拉
    GPIO_Init(GPIOF,&aaa);//LED1初始化
    
    	
    //2、初始化定时器模块---设置PWM周期 计数器+预分频器+设定值
    bbb.TIM_Prescaler = 84-1;//1us/脉冲
    bbb.TIM_Period = 1000-1;
    bbb.TIM_CounterMode = TIM_CounterMode_Up;
    bbb.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseInit(TIM14,&bbb);
    
    //3、将指定的引脚用作为某个复用功能
    GPIO_PinAFConfig(GPIOF, GPIO_PinSource9, GPIO_AF_TIM14);//
    
    //4、初始化定时器14的输出功能模块--根据通道 OC1--CH1  OC2--CH2
    ccc.TIM_OCMode = TIM_OCMode_PWM1;//PWM模式1  PWM模式2
    ccc.TIM_OCPolarity = TIM_OCPolarity_High;//TIM_OCPolarity_Low	
    ccc.TIM_Pulse = 500;//一开始是1000的一半----调节占空比的CCR1
    ccc.TIM_OutputState = TIM_OutputState_Enable;//输出使能
    TIM_OC1Init(TIM14,&ccc);
    
    //开启自动重载载寄存器的使能--TIM  开启定时器ARR寄存器缓冲
    TIM_ARRPreloadConfig(TIM14,ENABLE);
    
    
    //6、开启CCRx的缓冲 
    TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);
    
    
    //7、开启定时器13
    TIM_Cmd(TIM14,ENABLE);
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);//复位PF9  点灯
    

    主程序

    while(1)
    {
    //呼吸灯
    for(i=0;i<1000;i++)
    {
    TIM14->CCR1=i;

    		delay(1);
    	}
    	for(;i>=0;i--)
    	{
    		TIM14->CCR1=i;
    		
    		delay(1);	
    	}
    

    }

    以上就是我个人对呼吸灯实验的总结。

    展开全文
  • 本文主要为lm358呼吸灯简单电路图,希望对你的学习有所帮组。
  • 呼吸灯的Verilog实现

    2018-04-19 22:52:47
    呼吸灯的Verilog实现,基于Vivado平台,同时也可以用Modelsim进行联合仿真同时也可以在source文件夹下查看源码,在别的平台上实现呼吸灯
  • 蓝桥杯单片机PWM呼吸灯程序,通过调节PWM值,改变灯的亮度,本程序以LED1为例,让其明白原理,应用其它地方就不难了。非常的银杏,非常的好用!
  • 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。其广泛应用于手机之上,并成为各大品牌新款手机...现在分享一个呼吸灯PWM控制的仿真原理图如下(proteus仿真工程文件可到附件中下载):
  • 本例程由c语言编写,使用stc89c52rc单片机定时器实现,6ms周期pwm输出,实现led31级亮度调节。
  • 最终所要实现的效果:当按下A键对应A亮,按下B键对应B亮,按下C键对应C亮,按下D键对应D亮。 就选四个键,多了自己写,原理都一样。 原理支撑:对于嵌入的LED,低电平亮,高电平灭(这个大部分这样,实际...

    51之旅的第一步,亮灯。但我们不仅仅只是亮一个灯就够了,我们亮就要亮出花样出来,接下来我来说几种常见的形式。

    (一)按键亮灯

    最终所要实现的效果:当按下A键对应A灯亮,按下B键对应B灯亮,按下C键对应C灯亮,按下D键对应D灯亮。

    就选四个键,多了自己写,原理都一样。

    原理支撑:对于嵌入的LED,低电平亮,高电平灭(这个大部分这样,实际情况不放心可以自己测一下,分别给个高低的电平看看那个亮)。对于独立按键来说,当按键按下,按键所接对应引脚变为低电平。

    接线:LED:L1接P1.0,L2接P1.1,L3接P1.2,L4接P1.3。按键:K1接P0.0,K2接P0.1,K3接P0.2,K4接P0.3。

    好了,原理跟接线都完成了,接下来思路就是:当K1按下时,P0.0变成低电平,此时P1.0应变位低电平,L1亮。即实现了按下K1时L1亮。此时问题就转化成了判断P0.0是否为低电平,实现很简单,没错,用个if语句足以。

    sbit p00 = P0^0;
    if(p00 == 0){
    }

    这里需注意一点,为了减少误触的风险,应当设置防抖动。所以最后一个完整过程的代码实现应为:

    sbit p00 = P0^0;
    sbit p10 = P1^0;
    if(p00 == 0){
        delay_ms(10);
        if(p00 == 0){
            p10 = 0;
        }
    }

    注意,上面的delay代表延时,这个函数得自己写。
    带上头文件,最后得完完整整得程序应为:

    #include <reg51.h>
    
    sbit p00 = P0^0;
    sbit p10 = P1^0;
    
    void delay_ms(unsigned int n)
    {
     int i,y;
     for(i=n;i>0;i--)
      for(y=114;y>0;y--);
    }
    
    void main()
    {
    	while(1)
    	{
    	if(p00 == 0){
    	    delay_ms(10);
    	    if(p00 == 0){
    	        p10 = 0;
    	    }
    	}
    	}
    }

    四个的话,改变引脚重复四次就可以了。我就不多说了。

    接下来,进行下一个,跑马灯。

    (二)跑马灯

    最终效果:当第一个灯亮,其余灯灭,接着第二个灯亮,同时第一个灯灭,接下来是第三个····当最后一个灯亮完,重复整个过程,再来一遍。

    原理支撑:灯亮的原理同上,emmm,好像只要说这个就行。

    接线:讲L1-L8对应接在P1.0-P1.7上。

    实现上述过程,主要是通过位运算来完成。通过左移右移来实现灯灭灯亮。
    在这之前介绍一种用法:

    P1 = 0xfe

    上面代表着,将P1的第一位置为0,也就是P1.0为0,其余位置为1。

    有了上面的基础,这我也不多说,大概差不多,我直接给出完整的程序:

    #include <reg51.h>
    
    void delay_ms(unsigned int n)
    {
     int i,y;
     for(i=n;i>0;i--)
      for(y=114;y>0;y--);
    }
    
    void main(void)
    {
     while(1)
     {
      P1 = 0xfe;
      delay_ms(1000);
      while(P1 != 0xf7)
      {
       P1 <<= 1;
       P1 |= 0x01;
       delay_ms(1000);
      }
      P1 = 0x7f;
      delay_ms(1000);
      while(P1 != 0xef)
      {
       P1 >>= 1;
       P1 |= 0x80;
       delay_ms(1000);
      }
     }
    }

    ok,跑马灯咋也完成了,接下来进行最后一项,呼吸灯。

    (三)呼吸灯

    最终效果:实现灯的由暗到亮并且由亮到暗的逐渐变化。

    原理:emmm,我们采用for循环的方式来进行呼吸灯的实现。两个for循环,总的循环次数不变。假设,总的循环次数为500,当亮为500时,暗为0;当亮为200时,暗为300;当亮为0时,暗为500。如果开始是从亮为0开始循环,即实现的是由暗到亮,如果从亮为500开始,即实现的是由亮到暗。然后你想象一下,两者一结合,是不是就是一个从暗到亮然后亮到暗的完整过程,然后不断重复此过程,好了,恭喜你,呼吸灯你完成了。

    接线:我们只实现一个灯的呼吸灯,所以我们只接一个脚就可以了。将L1接在P1.0上。

    感觉差不多,原理中应该说的很详细了,接下来接触程序:

    #include <reg51.h>
    
    sbit p10 = P1^0;
    
    void main(void)
    {
     int time = 200;
     int i,j=0;
     while(1)
     {
      p10 = 0;
      for(i=0;i<time-j;i++);
      p10 = 1;
      for(i=0;i<j;i++);
      j++;
      if(j == time)
      {
       while(j>0)
       {
        p10 = 0;
        for(i=0;i<time-j;i++);
        p10 = 1;
        for(i=0;i<j;i++);
        j--;
       }
      }
     }
    }

    上面的time是做一次呼吸灯要的时间,不可过长,也不可过短,这个自己改几个值试一下,找到最佳的值。导致这个原因是,晶振的不同。

    好了,呼吸灯现在你也完成了。到这基本也结束了。
    怎么样,是不是很开森。到这,这个LED基本你也完溜了。
    接下来,自己去找一些更好玩的玩法。

    展开全文
  • msp430实现呼吸灯

    2019-04-11 08:09:14
    呼吸灯是 LED 灯在我们的控制下,有规律的逐渐从暗变亮又变暗的过程,当 我们亮暗的程度和频率把握得当时,看起来灯好像是人在呼吸一样 呼吸灯不再是我们闪烁那样一高一低的变化规律,而是有渐变性,是连续变 化的。...
  • 呼吸灯呼吸灯程序

    2018-12-15 18:52:15
    根据电压高低控制小灯,利用到了pwm脉宽调制,使小灯可以渐渐的变化
  • 单片机实现呼吸灯

    万次阅读 多人点赞 2019-06-11 17:45:21
    用渐变的PWM信号实现LED呼吸灯。 LED由暗逐渐变亮,再由亮逐渐变暗循环。 C语言代码如下: /*----------------------------------------------- Function: 用渐变的PWM信号实现LED呼吸灯 Description: LED由暗逐渐变...
  • 关于呼吸灯的C语言编程Options 1,0,0 // Target 'Target 1' Device (AT89C51) Vendor (Atmel) Cpu (IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000)) FlashUt () StupF ("LIB\STARTUP.A51" ("Standard 8051 ...
  • 51单片机实现呼吸灯

    千次阅读 2019-11-20 08:28:26
    一、概述 使用51单片机控制LED,实现其由暗变亮,再由亮变暗的渐变过程。 二、程序 #include <STC15F2K60S2.H> #include "MacroAndConst.h" sbit LED = P1^5; #define LED_ON() LED = 0;...#define...
  • 运放电路呼吸灯电路

    千次阅读 2020-07-22 13:27:43
    本例是一款呼吸灯电路,工作时LED呈现出:暗---渐亮---亮---渐暗---暗---渐亮---亮---周期性变化效果。 电路图: 该电路图主要使用Lm358运放电路元器件和电容(电容实现电压信号的缓慢变化,从而实现,三极管相...
  • 呼吸灯的实现

    千次阅读 多人点赞 2019-04-02 17:36:54
    之前有了解过呼吸灯的概念,也知道通过PWM来控制,但也只是停留在概念上面,以前也没有真正去做过这方面的,所以就在网上再搜罗了一番,感觉还是有些云里雾里的,最后只好自己静下心来,从原理上弄懂先。 了解到要想...
  • 呼吸灯原理 ------呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。其广泛应用于手机之上,并成为各大品牌新款手机的卖点之一,起到一个通知提醒的作用。 设计要求 ------时钟频率50...
  • 基于51单片机pwm控制的呼吸灯程序

    热门讨论 2011-11-04 21:39:24
    基于51单片机,通过定时器输出pwm波,全局变量控制占空比,达到led呼吸灯的目的。欢迎下载。
  • 基于51单片机的呼吸灯

    万次阅读 多人点赞 2019-01-20 10:46:27
    原理: 由于人眼的视觉残留特性:人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。 举例: ...
  • PWM脉宽调制LED的亮度。
  • FPGA verilog HDL 呼吸灯及呼吸流水灯实现

    万次阅读 多人点赞 2018-08-02 16:51:16
    项目一:FPGA的呼吸灯实现 项目介绍:呼吸灯,就是想人们呼吸频率的一种led灯亮灭的一种表现形式。过程是慢慢变亮,然后变亮以后又慢慢变灭的一种过程。很多初学者会认为硬件逻辑语言怎么能控制电流的高低呢,让灯...
  • ne555呼吸灯电路图(一) 这是一个用NE555制作的呼吸/脉冲LED灯电路。这种LED呼吸灯变得非常的流行。这个电路工作在12V的电路中。我们的电脑上的电源为5V,通过普通的升压电路将5V升压到12V也可以让电路工作。 该...
  • 基于STM32的PWM呼吸灯系统设计(程序+原理分析)

    千次阅读 多人点赞 2019-06-18 16:10:14
    使用定时器4输出PWM来实现呼吸灯效果。 在人眼辨识能力范围内,调节LED亮的时间,达到LED灯的亮度不同。例:给低电平LED就亮,如果一个脉冲中全是低电平那么LED最亮,如果一个脉冲一半是高电平,一半是低电平,那么...
  • 呼吸灯顾名思义,随着呼吸的节奏,灯也是逐步变亮和变灭,这是两个步骤。 我们将开始点亮和最亮这段时间,无限等分,可以推导在单位时长内,控制变亮的电路所占的比重逐渐增加,到最后是全份额;变灭也是同等过程。 ...
  • PWM实现呼吸灯

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

    2019-04-02 15:35:32
    pwm呼吸灯 采用pwm的方式,在固定的频率下,采用占空比的方式来实现LED亮度的变化。占空比为0,LED灯不亮,占空比为100%,则LED灯最亮。所以将占空比从0到100%,再从100%到0不断变化,就可以实现LED灯实现特效呼吸。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,201
精华内容 880
关键字:

呼吸灯原理