找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机PID算法的恒温控制系统仿真与程序源码设计(DS18B20传感器)

查看数: 15488 | 评论数: 27 | 收藏 24
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-4-24 10:21

正文摘要:

楼主做的基于51单片机主控的PID算法的恒温控制系统,带加热指示灯与递增和递减按钮.采用DS18B20做的温度传感器 电路原理图如下:

回复

ID:1134216 发表于 2024-10-21 11:32
设计的不错啊
ID:336378 发表于 2022-3-30 15:11
                        for(i=0;i<10;i++)
                        {
                                s=get_temper();//取得现在的温度。
                                rin = s; // Read Input
                                rout = PIDCalc ( &spid,rin ); // Perform PID Interation
                        }
ID:739402 发表于 2020-5-5 11:08
楼主能QQ私聊一下吗?救助,感激不尽
ID:732724 发表于 2020-5-5 10:56
landing 发表于 2020-5-4 11:14
谢谢,刚好要写一个恒温PID控制,可以参考一下。

能否加个QQ传我 感激不尽
ID:732724 发表于 2020-5-5 10:55
landing 发表于 2020-5-4 11:14
谢谢,刚好要写一个恒温PID控制,可以参考一下。

请问你能打开吗?我打不开,显示丢失什么文件
ID:739026 发表于 2020-5-4 11:14
谢谢,刚好要写一个恒温PID控制,可以参考一下。
ID:491642 发表于 2019-5-11 15:49
谢谢楼主分享
ID:509991 发表于 2019-4-16 21:17
楼主你这个是通过什么加热装置加热的呀
ID:507638 发表于 2019-4-13 19:45
楼主,没有降温处理吗?
ID:507638 发表于 2019-4-10 20:23
有没有解析呢??
ID:507638 发表于 2019-4-9 11:04
yzh123 发表于 2018-4-24 20:41
楼主你好,你的pid参数是怎么整定的?

要求精度不高的话通常设置都是一样的
ID:507638 发表于 2019-4-9 11:03
楼主能私聊下吗
ID:507638 发表于 2019-4-9 10:50
zxr961129 发表于 2018-6-7 21:13
感谢楼主,最近在做毕业设计,需要模糊pid方面的程序和仿真,很高兴楼主能够分享出来!

能互相交流下吗
ID:507638 发表于 2019-4-9 10:46
楼主能加QQ聊吗
ID:489404 发表于 2019-3-12 18:22
楼主你好,你的pid参数是怎么整定的?
ID:450056 发表于 2018-12-20 23:49
谢谢,楼主给力
ID:245429 发表于 2018-12-20 20:58
学习了,下载下来以后试试
ID:407060 发表于 2018-10-9 16:05
求救楼主 仿真的电路板在哪里,我打不开
ID:280466 发表于 2018-9-1 19:52
可以吗???
ID:340241 发表于 2018-6-14 02:00
楼主流弊
ID:304629 发表于 2018-6-7 21:13
感谢楼主,最近在做毕业设计,需要模糊pid方面的程序和仿真,很高兴楼主能够分享出来!
ID:323102 发表于 2018-6-7 12:49
实际测量温度不显示谁帮帮我加qq2304146938
ID:323102 发表于 2018-6-7 12:48
实际测量温度不显示谁帮帮我加qq2304146938
ID:323102 发表于 2018-6-7 11:17
温度显示不出来怎么回事
ID:311660 发表于 2018-4-25 19:37
楼主我想对你的程序提几个问题。在你的温度比较处理子程序里面有一段程序是这样的if(set_temper>temper)         //设置温度大于当前温度
        {
                ledred=0;
                ledgreen=1;
                if(set_temper-temper>1)         //温度相差1度以上
                {         
                        high_time=100;
                        low_time=0;
                }
                else         //设置温度不大于当前温度
                {
                        for(i=0;i<10;i++)
                        {
                                get_temper();
                                rin = s; // Read Input
                                rout = PIDCalc ( &spid,rin ); // Perform PID Interation
                        }
                        if (high_time<=100)         high_time=(unsigned char)(rout/800);
                        else        high_time=100;
                        low_time= (100-high_time);
  请问一下rin=s是不是表示的是PID的回馈输入,那么既然如此的话rin不应该是等于输出的温度吗?为什么是s呢?我看了一下程序除了一开始的定义unsigned int s;和刚刚那个地方s就没有别的用处了。
      else         //设置温度不大于当前温度     这一条语句的注释也不是很明白。  这个else是在if(set_temper-temper>1)         //温度相差1度以上      这条语句后面,那么我感觉他的注释应该是     温度相差小于一度
      最后的话是这一句  if (high_time<=100)         high_time=(unsigned char)(rout/800);
                        else        high_time=100;
                        low_time= (100-high_time);整个都不太明白 ,特别是(rout/800)
希望楼主有空的话可以赐教一下,谢谢!

评分

参与人数 1黑币 +80 收起 理由
admin + 80 赞一个!

查看全部评分

ID:311660 发表于 2018-4-25 10:18
谢谢楼主,最近刚好在做这方面的东西
ID:314339 发表于 2018-4-24 20:41
楼主你好,你的pid参数是怎么整定的?

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

Powered by 单片机教程网

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