精华内容
下载资源
问答
  • 呼吸灯程序

    2013-05-15 11:39:34
    呼吸灯程序
  • 呼吸灯呼吸灯程序

    2018-12-15 18:52:15
    根据电压高低控制小灯,利用到了pwm脉宽调制,使小灯可以渐渐的变化
  • 呼吸灯程序 breath.c

    2020-08-31 08:51:12
    单片机两种实用的呼吸灯程序,结构体和常用的方法,不占作MCU的系统时间,定时扫描就可以了调节LED点亮的时间和熄灭的时间。适合工程上用。
  • msp430呼吸灯程序

    2013-12-05 16:52:20
    msp430g2553呼吸灯程序,控制一个led灯呼吸闪烁。
  • 单片机呼吸灯程序

    2011-12-07 22:02:53
    简单的单片机呼吸灯程序,并经过本人亲自测试。
  • 蓝桥杯单片机PWM呼吸灯程序,通过调节PWM值,改变灯的亮度,本程序以LED1为例,让其明白原理,应用其它地方就不难了。非常的银杏,非常的好用!
  • 树莓派呼吸灯程序

    2016-05-20 23:58:30
    基于wiringPi库PWM aip 的LED呼吸灯控制程序
  • 1.使用乐鑫官网的esp8266_nonos_sdk_v1.5.4_16_05_20,用ESP8266的PWM功能,写了一个简单的呼吸灯程序 2.驱动IO口分别为GPIO12 13 14 3.使用的模块为nodemcu(ESP-12D) 4.此呼吸灯我目前是用共阴极的灯珠实现的 5...
  • 1.呼吸灯原理分析: 模拟...2.呼吸灯程序设计: 就是改变这40ms中,亮和灭所占的百分比(40ms相对不柔和,20ms效果柔和)。 亮的百分比多,人眼看到的就亮,反之就是暗(实验,为了提高呼吸灯的柔和效果,采用设置20m...

    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(点亮)。熄灭的原理,正好相反,熄灭时间增长。程序中需要两个循环,一个用来点亮一个用来熄灭。

    3.STM32程序实现代码
    程序要灵活设计,能够调整呼吸时间的长短,1.5s这个参数。可以调整柔和度,可以调整40ms这个周期参数,这样就实现了呼吸灯的灵活调整。源代码先不放出来了,等做完实验放出。
    ***********

    428f3f31b7c95907c154196b3183ec18.png

    //=======================================
    void LedOnOff(uint32_t t,uint32_t xx) //T代表整个周期的时间,xx代表周期中点亮时间的长度{ HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET); //GPIO_PIN_SET HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET); mydely_us(xx); //点亮时间
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET); mydely_us(t-xx); //熄灭时间
    }
    //*****************下面注视的代码是通过调用库函数来实现IO控制的方法*****************************************int main(void){ int i; int myLongTime=1500; //ms 呼吸总体时间 int myshortTime=40; //ms int myCYC=myLongTime/myshortTime; delay_init(); //初始化延时函数 LED_Init(); //初始化LED端口 while(1) { for(i=1; i1; i-=1)
    LedOnOff(myshortTime*1000,i*myshortTime*1000.0/myCYC);
    }}

    3a85d21b39501fc9548d45e5525b5bc2.png

    4.原理分析:

    模拟人体呼吸,吸气和呼气各占1.5S,人眼的图像滞留时间0.04s(1/24帧画面)按最快0.04s算,就是40ms。亮0.02S,灭0.02s,人眼看到的应该是一直亮(可以实验)呼吸灯,就是改变这40ms中,亮和灭所占的百分比。
    1500/40=38周期,40ms/37=1052us。38个周期变比中,每个周期增长1个单位1052us,38个周期刚好是40ms.这样达到全亮
    亮的百分比多,人眼看到的就亮,反之就是暗。
    利用40ms这个时间,目测感觉有闪烁,减少这个时间,变化就会缓慢,没有闪烁感。参考用20ms

    //us延时函数的实现

    void mydely_us(uint32_t count)

    {

    HAL_TIM_Base_Stop_IT(&htim1);

    my_tim1_count=0;

    HAL_TIM_Base_Start_IT(&htim1);

    while(my_tim1_count

    HAL_TIM_Base_Stop_IT(&htim1);

    }

    void TIM1_UP_IRQHandler(void)

    {

    /* USER CODE BEGIN TIM1_UP_IRQn 0 */

    extern uint32_t my_tim1_count;

    my_tim1_count++;

    __HAL_TIM_CLEAR_IT(&htim1, TIM_IT_UPDATE);

    /* USER CODE END TIM1_UP_IRQn 0 */

    //HAL_TIM_IRQHandler(&htim1);

    /* USER CODE BEGIN TIM1_UP_IRQn 1 */

    /* USER CODE END TIM1_UP_IRQn 1 */

    }

    29e9f0fcfa9e0c99aad116e65637d389.png

    5.说明:

    利用HAL库,默认没有办法实现us的定时器,方法是。利用硬件定时器,产生一个1us的周期中断,每进入一次中断,一个全局变量加1,通过判断这个变量的值,来确定当前的延时时间。

    6.问题:
    1.HAL库的执行效率比较低,1us中断的实际,还没有处理完中断过程,因此需要手动修改中断函数,
    添加__HAL_TIM_CLEAR_IT(&htim1, TIM_IT_UPDATE);
    屏蔽: //HAL_TIM_IRQHandler(&htim1);
    这样中断处理时间会减少很多。
    2.全局变量的变化,如果总开着定时中断,会影响正常程序的执行,因此,需要延时的时候,开启定时器,延时结束,关闭定时器

    void mydely_us(uint32_t count)

    {

    HAL_TIM_Base_Stop_IT(&htim1);

    my_tim1_count=0;

    HAL_TIM_Base_Start_IT(&htim1);

    while(my_tim1_count

    HAL_TIM_Base_Stop_IT(&htim1);

    展开全文
  • STM32之呼吸灯程序

    2020-08-11 08:31:28
    听说呼吸灯是很久以前的事情了,那时候刚刚学习51单片机,没有单片机的基础。后来在网上看到了一个呼吸灯的电路图,甚是复杂,根本看不懂,无奈之下放弃了呼吸灯的制作。在接触了STM32后,发现呼吸灯还是比较容易...
  • 定义一个0.1ms 的时钟.../*呼吸灯程序*/ void BreathingLamp(void) { static uint8_t LEDTimeCount=0; static uint8_t LEDTimeCount_Y=0; LEDTimeCount++; if(LEDTimeCount>100) { LEDTimeCount=0; L...

    定义一个0.1ms 的时钟周期性调用下面C函数

    
    /*呼吸灯程序*/
    void BreathingLamp(void)
    {
        static uint8_t LEDTimeCount=0;
    	static uint8_t LEDTimeCount_Y=0;
    
    	LEDTimeCount++;
    	if(LEDTimeCount>100)
    	{
    		LEDTimeCount=0;
    		LEDTimeCount_Y++;
    		if(LEDTimeCount_Y>200)
    			LEDTimeCount_Y=0;
    	}
    	/* 每隔0.1ms 进来一次 */
    	if(LEDTimeCount_Y<100) /*上计数*/
    	{
    		if(LEDTimeCount<LEDTimeCount_Y)
    			bsp_LedOn(1);
    		else
    			bsp_LedOff(1);
       }
    	else /*下减数*/
    	{
    		if(LEDTimeCount+100<LEDTimeCount_Y)
    			bsp_LedOff(1);
    		else
    			bsp_LedOn(1);
     }	
    }
    
    

     

                bsp_LedOn(1); /*打开LED*/
                bsp_LedOff(1); /*关闭LED*/

    这两个函数根据不同的MCU自行实现。

    展开全文
  • ti dk-lm3s9b96上的呼吸灯程序
  • LED呼吸灯程序

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

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

    文件:590m.com/f/25127180-490364941-38e8fc(访问密码:551685)

    主程序如下

    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(t500){
    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;
    }
    }
    }
    }

    以下内容无关:

    -------------------------------------------分割线---------------------------------------------

    封装三要素 —— 属性、插槽、事件、方法
    可以封装,但是原生UI库提供的强大功能不能给封装没了吧,吃了回扣可是不好滴。
    那么如何做到不遗漏呢?先做一个合格的传声筒。

    传递属性
    先看看 el-input 提供的属性:

    el-input的属性

    太长了,这里只截了一半。
    这么多的属性,如果一个一个都弄到 props 里面,然后再一个一个绑定上去,这就太麻烦了。

    我们可以分成两部分,重要的属性做到 props 里面,其他的可以放到 $attrs 里面。

    定义一个简单的组件
    模板

    export default {
    name: ‘test-text’,
    inheritAttrs: false,
    props: {
    modelValue: [String, Number]
    },
    setup(props, ctx) {
    const value = debounceRef(props, ctx.emit)

    return {
      value
    }
    

    }
    }
    父组件的调用代码:
    模板

    <inputtext
    v-model=“value”
    v-bind=“attrs”

    代码

    const value = ref(‘222’)

    const attrs = reactive({
    maxlength: 10,
    ‘show-word-limit’: true,
    clearable: true
    })
    这里 modelValue 就是 props ,maxlength、show-word-limit、clearable 就变成了 $attrs 。

    然后要看 el-input 是否是根元素,如果是跟元素的话,那么会自动绑定上,不需要我们手动写 v-bind="$attrs"。

    如果像上面的例子不是根元素的话,需要手动写 v-bind="$attrs"。

    inheritAttrs
    这个是指定组件是否自动绑定 $attrs 。
    默认是 true,会自动把 attrsfalseattrs 绑定到根元素上面,不管根元素是啥。 这里设置为 false,那么attrs 就不会自动绑定到 div 上面了。

    插槽
    这个稍微复杂一点,插槽本来就有一点绕,官网的介绍又比较含混。

    展开全文
  • 让单片机不用定时器做出呼吸灯的效果
  • 本次实验是基于基于qtLED呼吸灯程序(多线程控制),大家都知道呼吸灯都是用pwm波来控制输出电压的大小来控制呼吸灯的一闪一灭来实现呼吸的效果,开呼吸灯程序免不了用while死循环,嵌入式必备程序while(1),我这里用...

    本次实验是基于基于qtLED呼吸灯程序(多线程控制),大家都知道呼吸灯都是用pwm波来控制输出电压的大小来控制呼吸灯的一闪一灭来实现呼吸的效果,开呼吸灯程序免不了用while死循环,嵌入式必备程序while(1),我这里用的是qt的一个GUI界面来控制呼吸灯的呼吸和灭,所以必定开多线程,下面直接贴代码
    在这里插入图片描述这是我写的一个led.h文件,开了一个多线程,
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    在这里插入图片描述

    led.cpp文件,里面写了一个run函数,就是呼吸灯程序
    。。。下面下煮菜

    在这里插入图片描述
    这里我new了一个基类,开了一个多线程,start是调用run()函数的在这里插入图片描述
    myclose里面我直接关闭多线程,也就是可以直接关掉呼吸灯,
    是不是非常的nice,
    qt c++里面的一些细节我就不多说了,感兴趣可以试试。。。。。。。。。。。。。。。。。。。。。。。。。

    展开全文
  • 程序为基于加强型51单片机内部的PWM输出功能设计的LED呼吸灯
  • 51单片机呼吸灯程序

    2013-04-25 12:30:29
    使用延时控制led的亮暗来达到呼吸灯的效果
  • 1-2-3-LED呼吸灯程序.zip

    2021-03-19 10:12:24
    呼吸灯测试例程,stm32f103
  • 我们已经介绍过了 STM32F1的通用定时器,使用 TIM4 的更新溢出中断控制D2 指示闪烁。这一章我们来学习如何使用通用定时器产生 PWM 输出。本文要实现的功能是:通过 TIM3 的通道 1 输出 PWM 信号,控制 D7 指示的...
  • 1.使用乐鑫官网的esp8266_nonos_sdk_v1.5.4_16_05_20,用ESP8266的PWM功能,写了一个简单的呼吸灯程序 2.驱动IO口分别为GPIO12 13 14 3.使用的模块为nodemcu(ESP-12D) 4.此呼吸灯我目前是用共阴极的灯珠实现的 5...
  • PWM脉宽调制LED的亮度。

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 328
精华内容 131
关键字:

呼吸灯程序