找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1371|回复: 24
收起左侧

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

  [复制链接]
ID:284571 发表于 2022-8-19 13:04 | 显示全部楼层 |阅读模式
比如给定一个值200 从0缓慢升到200。不是突变直接给200。下次这个值又是100,200又平稳缓慢的降到100....等。好像电容充放电特性。请问这个程序怎么实现 ??谢谢。

回复

使用道具 举报

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的值
回复

使用道具 举报

ID:499032 发表于 2022-8-20 09:03 | 显示全部楼层
电容充电,恒流
回复

使用道具 举报

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

使用道具 举报

ID:92553 发表于 2022-8-20 09:49 | 显示全部楼层
类似于变频器的软启动功能
回复

使用道具 举报

ID:1042500 发表于 2022-8-20 11:00 | 显示全部楼层
设计一个数组输出函数,在定时器里面调用即可
回复

使用道具 举报

ID:582276 发表于 2022-8-20 11:22 | 显示全部楼层
就是产生一个锯齿波吧,NE555有类似的应用,
回复

使用道具 举报

ID:491875 发表于 2022-8-20 16:33 | 显示全部楼层
I/O口控制恒流源给电容器充放电时间,电容器两端可以得到你需要的数值
回复

使用道具 举报

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

使用道具 举报

ID:284571 发表于 2022-8-21 07:04 来自手机 | 显示全部楼层
紫气东来 发表于 2022-8-20 09:49
类似于变频器的软启动功能

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

使用道具 举报

ID:284571 发表于 2022-8-21 07:06 来自手机 | 显示全部楼层
yzwzfyz 发表于 2022-8-20 17:09
先不要求缓慢动作。
你能控制输出量吗?
试试先做在这一点吧。比如:

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

使用道具 举报

ID:88256 发表于 2022-8-21 09:09 | 显示全部楼层
WCM1998 发表于 2022-8-21 07:06
就是软启动、值不能突变、

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

使用道具 举报

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

就这种模式
1.JPG
回复

使用道具 举报

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

使用道具 举报

ID:284571 发表于 2022-8-24 02:28 来自手机 | 显示全部楼层
coody_sz 发表于 2022-8-22 10:22
如果你要线性变化,则隔一个时间就加减1,入股要完全像电容充放电那样的响应,则用一阶低通滤波。

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

使用道具 举报

ID:606226 发表于 2022-8-24 08:04 来自手机 | 显示全部楼层
WCM1998 发表于 2022-8-24 02:28
上升可以隔段时间加一`直到到达给定值。第二周期本次给定值小于上次给定值、哪就要从上次值降到本次给定 ...

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

使用道具 举报

ID:382454 发表于 2022-8-24 11:37 | 显示全部楼层
用PWM方波输出,从0-200 一小格一小格的加就是了。
回复

使用道具 举报

ID:342822 发表于 2022-8-24 16:58 | 显示全部楼层

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

使用道具 举报

ID:466505 发表于 2022-8-25 12:13 | 显示全部楼层
当前值跟给定值做比较,如果大就定时减,如果小就定时加,至于加减多少看你要求要怎么变了!
回复

使用道具 举报

ID:342822 发表于 2022-8-25 13:48 | 显示全部楼层
回复

使用道具 举报

ID:1042823 发表于 2022-8-26 09:25 | 显示全部楼层
这还不简单吗?if可以搞定
回复

使用道具 举报

ID:284571 发表于 2022-9-27 15:33 | 显示全部楼层
杰西Jesse 发表于 2022-8-26 09:25
这还不简单吗?if可以搞定

怎么弄?谢谢
回复

使用道具 举报

ID:1021032 发表于 2022-10-11 20:17 | 显示全部楼层
I/O口控制恒流源给电容器充放电时间,电容器两端可以得到你需要的数值
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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