找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1104|回复: 10
收起左侧

单片机能不能做出可调频率的呼吸灯?

[复制链接]
ID:879080 发表于 2023-11-21 22:22 | 显示全部楼层 |阅读模式
用STC8H1K08系列单片机做呼吸灯效果,要求用两个按键调呼吸的频率,定时器做。我在网上找不到可借鉴的程序,望哪位大神能指点迷津,给于思路,在此不胜感激。
回复

使用道具 举报

ID:879348 发表于 2023-11-22 08:14 | 显示全部楼层
可以,但是想要现成的不大可能
回复

使用道具 举报

ID:123289 发表于 2023-11-22 09:14 | 显示全部楼层
1、用变X中的值表示呼吸频率。
2、定时器取X,实现呼吸。
3、按键时修改X值。
这样就可以了。
回复

使用道具 举报

ID:276663 发表于 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;
  }

}



回复

使用道具 举报

ID:883242 发表于 2023-11-22 21:04 | 显示全部楼层
可调频率和呼吸频率的关系是什么都说不清楚吗?如果没关系那就太好做了,两个无关的定时器就行了。
回复

使用道具 举报

ID:879080 发表于 2023-11-22 21:05 | 显示全部楼层
yzwzfyz 发表于 2023-11-22 09:14
1、用变X中的值表示呼吸频率。
2、定时器取X,实现呼吸。
3、按键时修改X值。

非常感谢!我按您的指导试一下
回复

使用道具 举报

ID:879080 发表于 2023-11-22 21:06 | 显示全部楼层
IdeaMing 发表于 2023-11-22 10:31
首先名表呼吸灯的逻辑就是亮度值变化
亮度值:0  ->   亮一会儿 t   ->  亮度2  -> 亮一会儿 t  ->  亮度4 ...

非常感谢
回复

使用道具 举报

ID:1034262 发表于 2023-11-22 21:42 | 显示全部楼层
简单啊,改变周期不就可以了。
回复

使用道具 举报

ID:1007932 发表于 2023-11-22 22:28 | 显示全部楼层
用两个定时器,简单来说就是
定时器1:|---------------------------------|
定时器2:|---------------|
时间:灯亮--------------灯灭--------------定时器清零
设置定时器1调节频率,设置定时器2调节占空比
回复

使用道具 举报

ID:879080 发表于 2023-11-23 22:03 | 显示全部楼层
一事无成 发表于 2023-11-22 22:28
用两个定时器,简单来说就是
定时器1:|---------------------------------|
定时器2:|---------------| ...

多谢
回复

使用道具 举报

ID:1100995 发表于 2023-11-24 10:35 | 显示全部楼层
将LED连接到单片机的输出引脚,通过PWM信号控制LED的亮度变化。 连接两个按键到单片机的输入引脚,用于调节呼吸灯的频率。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表