找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3237|回复: 24
打印 上一主题 下一主题
收起左侧

请教让一个值平稳缓升缓降(像电容充放电一样)

  [复制链接]
跳转到指定楼层
楼主
比如给定一个值200 从0缓慢升到200。不是突变直接给200。下次这个值又是100,200又平稳缓慢的降到100....等。好像电容充放电特性。请问这个程序怎么实现 ??谢谢。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:891041 发表于 2022-8-19 18:31 | 只看该作者
在定时中断里低通滤波吧, 把截止频率定到你想要的带宽就好了。
回复

使用道具 举报

板凳
ID:213173 发表于 2022-8-19 21:25 | 只看该作者
参考PWM呼吸灯
回复

使用道具 举报

地板
ID:1007932 发表于 2022-8-20 02:05 | 只看该作者
将变化过程量化,然后用PWM或DAC输出,即控制各个时刻的占空比或DAC的值
回复

使用道具 举报

5#
ID:499032 发表于 2022-8-20 09:03 | 只看该作者
电容充电,恒流
回复

使用道具 举报

6#
ID:546770 发表于 2022-8-20 09:11 | 只看该作者
既然是类似于电容充放电肯定有对应的函数咯,在程序把函数写好,然后定时器定时,按照时间给计算出相应的值就行了。
回复

使用道具 举报

7#
ID:92553 发表于 2022-8-20 09:49 | 只看该作者
类似于变频器的软启动功能
回复

使用道具 举报

8#
ID:1042500 发表于 2022-8-20 11:00 | 只看该作者
设计一个数组输出函数,在定时器里面调用即可
回复

使用道具 举报

9#
ID:582276 发表于 2022-8-20 11:22 | 只看该作者
就是产生一个锯齿波吧,NE555有类似的应用,
回复

使用道具 举报

10#
ID:491875 发表于 2022-8-20 16:33 | 只看该作者
I/O口控制恒流源给电容器充放电时间,电容器两端可以得到你需要的数值
回复

使用道具 举报

11#
ID:123289 发表于 2022-8-20 17:09 | 只看该作者
先不要求缓慢动作。
你能控制输出量吗?
试试先做在这一点吧。比如:
让输出=100,55,0,33……
回复

使用道具 举报

12#
ID:284571 发表于 2022-8-21 07:04 来自触屏版 | 只看该作者
紫气东来 发表于 2022-8-20 09:49
类似于变频器的软启动功能

就缓启动的意思、不让给定值突变、而是缓慢过渡到给定值
回复

使用道具 举报

13#
ID:284571 发表于 2022-8-21 07:06 来自触屏版 | 只看该作者
yzwzfyz 发表于 2022-8-20 17:09
先不要求缓慢动作。
你能控制输出量吗?
试试先做在这一点吧。比如:

就是软启动、值不能突变、
回复

使用道具 举报

14#
ID:88256 发表于 2022-8-21 09:09 | 只看该作者
WCM1998 发表于 2022-8-21 07:06
就是软启动、值不能突变、

人家11楼的只是问你能否做到百分比输出,没说要突变啊(7楼也是,是你理解不了),如果你连百分比输出都做不到,那么谈何缓慢变化输出?如果做得到,以一定的时间间隔,依次输出百分一、百分二、百分三……,不就可以达到目的了?要是嫌弃不够细腻,那么就百分零点一、百分零点二输出,总会满足你的要求的
回复

使用道具 举报

15#
ID:284571 发表于 2022-8-22 10:11 | 只看该作者
hhdsdy 发表于 2022-8-21 09:09
人家11楼的只是问你能否做到百分比输出,没说要突变啊(7楼也是,是你理解不了),如果你连百分比输出都 ...

就这种模式

1.JPG (23.76 KB, 下载次数: 49)

1.JPG
回复

使用道具 举报

16#
ID:1034262 发表于 2022-8-22 10:22 | 只看该作者
如果你要线性变化,则隔一个时间就加减1,入股要完全像电容充放电那样的响应,则用一阶低通滤波。
回复

使用道具 举报

17#
ID:284571 发表于 2022-8-24 02:28 来自触屏版 | 只看该作者
coody_sz 发表于 2022-8-22 10:22
如果你要线性变化,则隔一个时间就加减1,入股要完全像电容充放电那样的响应,则用一阶低通滤波。

上升可以隔段时间加一`直到到达给定值。第二周期本次给定值小于上次给定值、哪就要从上次值降到本次给定值、该怎么做呢?
回复

使用道具 举报

18#
ID:606226 发表于 2022-8-24 08:04 来自触屏版 | 只看该作者
WCM1998 发表于 2022-8-24 02:28
上升可以隔段时间加一`直到到达给定值。第二周期本次给定值小于上次给定值、哪就要从上次值降到本次给定 ...

你这个就像电梯,从一楼到二楼,就是从100变到200的过程,你说的平稳不清楚要达到什么标准,线性的加1就行了,如果像电梯一样,到了二楼平稳停下来,正好与二楼平齐,就要用到PID算法了
回复

使用道具 举报

19#
ID:382454 发表于 2022-8-24 11:37 | 只看该作者
用PWM方波输出,从0-200 一小格一小格的加就是了。
回复

使用道具 举报

20#
ID:342822 发表于 2022-8-24 16:58 | 只看该作者

用数字电位器可以搞定
回复

使用道具 举报

21#
ID:466505 发表于 2022-8-25 12:13 | 只看该作者
当前值跟给定值做比较,如果大就定时减,如果小就定时加,至于加减多少看你要求要怎么变了!
回复

使用道具 举报

22#
ID:342822 发表于 2022-8-25 13:48 | 只看该作者


回复

使用道具 举报

23#
ID:1042823 发表于 2022-8-26 09:25 | 只看该作者
这还不简单吗?if可以搞定
回复

使用道具 举报

24#
ID:284571 发表于 2022-9-27 15:33 | 只看该作者
杰西Jesse 发表于 2022-8-26 09:25
这还不简单吗?if可以搞定

怎么弄?谢谢
回复

使用道具 举报

25#
ID:1021032 发表于 2022-10-11 20:17 | 只看该作者
I/O口控制恒流源给电容器充放电时间,电容器两端可以得到你需要的数值
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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