标题: 单片机能不能做出可调频率的呼吸灯? [打印本页]

作者: hanxingyijian    时间: 2023-11-21 22:22
标题: 单片机能不能做出可调频率的呼吸灯?
用STC8H1K08系列单片机做呼吸灯效果,要求用两个按键调呼吸的频率,定时器做。我在网上找不到可借鉴的程序,望哪位大神能指点迷津,给于思路,在此不胜感激。

作者: wufa1986    时间: 2023-11-22 08:14
可以,但是想要现成的不大可能
作者: yzwzfyz    时间: 2023-11-22 09:14
1、用变X中的值表示呼吸频率。
2、定时器取X,实现呼吸。
3、按键时修改X值。
这样就可以了。
作者: IdeaMing    时间: 2023-11-22 10:31
首先名表呼吸灯的逻辑就是亮度值变化
亮度值:0  ->   亮一会儿 t   ->  亮度2  -> 亮一会儿 t  ->  亮度4  ... ->亮度100  -> 亮一会儿 t  -> 亮度98  ...  ->亮度2  -> 亮一会儿 t  -> 亮度0  -> 亮一会儿 t

其中这个亮一会儿  t  就是能调节一次呼吸用多久时间。

调节这个 t 就可以了
伪代码:
while
{
    t = 按键调节t;
    设置定时器(t);
}

Timer  interrupt()
{
   static     char L;//亮度百分比值
   static char  Dir;//亮灭方向
   if(Dir)//暗变亮
  {
    L+=2;
   设置灯亮度(L);
    if(L>=100)
       Dir = 0;
  }
  else{//亮变暗
    L -= 2;
   设置灯亮度(L);
    if(L <= 0)
       Dir = 1;
  }

}




作者: Hephaestus    时间: 2023-11-22 21:04
可调频率和呼吸频率的关系是什么都说不清楚吗?如果没关系那就太好做了,两个无关的定时器就行了。
作者: hanxingyijian    时间: 2023-11-22 21:05
yzwzfyz 发表于 2023-11-22 09:14
1、用变X中的值表示呼吸频率。
2、定时器取X,实现呼吸。
3、按键时修改X值。

非常感谢!我按您的指导试一下
作者: hanxingyijian    时间: 2023-11-22 21:06
IdeaMing 发表于 2023-11-22 10:31
首先名表呼吸灯的逻辑就是亮度值变化
亮度值:0  ->   亮一会儿 t   ->  亮度2  -> 亮一会儿 t  ->  亮度4 ...

非常感谢
作者: coody_sz    时间: 2023-11-22 21:42
简单啊,改变周期不就可以了。
作者: 一事无成    时间: 2023-11-22 22:28
用两个定时器,简单来说就是
定时器1:|---------------------------------|
定时器2:|---------------|
时间:灯亮--------------灯灭--------------定时器清零
设置定时器1调节频率,设置定时器2调节占空比
作者: hanxingyijian    时间: 2023-11-23 22:03
一事无成 发表于 2023-11-22 22:28
用两个定时器,简单来说就是
定时器1:|---------------------------------|
定时器2:|---------------| ...

多谢

作者: ultrasonic    时间: 2023-11-24 10:35
将LED连接到单片机的输出引脚,通过PWM信号控制LED的亮度变化。 连接两个按键到单片机的输入引脚,用于调节呼吸灯的频率。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1