设计一个基于STM32的PID温度控制系统,主要温度器件–半导体制冷器,PTC加热片
温度控制系统这个题目算是课程设计和毕业设计中常见的题目了,本期阿目动手设计了一个简单的基于PID的温度控制系统,并带有上位机显示实时的波形。下面就分享下这个题目的电路、下位机以及上位机的设计思路吧!
需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章2¥,然后后台私信我哦!!(看到消息会第一时间回复~)
首先,介绍下硬件设计思路,本次选取的单片机是STM32F103C8T6,这是一款常用的单片机了,设计上的资料也是非常的多;温度传感器是DS18B20;加热器是常见的恒温加热片;制冷器件选择的是半导体制冷元器件,见下图:
半导体制冷器件需要安装散热器和风扇,因为其工作时散热面会散发大量的热,散热效果好的话,制冷效果会更好,因此设计中加入了风扇和散热片;然后就是电路的控制电路了,本设计使用NMOS管(NCE2060K)控制加热片和制冷器的工作;然后还添加了一个oled模块用于显示调试信息,这个比较重要,通常下位机有一个显示设备,可以让调试更加方便;与上位机通信的用的是USB转TTL模块;电源模块是AMS117-3.3的ldo稳压芯片;以上元器件都是可以在某宝购买的哦有问题,欢迎后台留言~
下面都看下主要的功能电路吧!
单片机的最小系统,非常常见,不再详述。
加热模块和制冷模块的设计,使用了光耦进行信号隔离,使用二极管作为续流作用,保护功率器件。
电源电路,AMS117的典型设计电路~~
展示一下全部电路~~
下面叙述下下位机的设计。下位机主要实现温度的采集,然后通过串口将数据发送到上位机,并从上位机接收目标温度信息。
一上来,先初始化外设,主要串口,温度传感器、OLED、PWM和PID。
PID的数值这里可以先凭经验设置,后续再调试。pid的实现的话是采用的增量式的pid控制的,实现代码详见源程序了~
温度采集程序,就是DS18B20的实现,可详见程序。接收数据后按字节发送到上位机~~
处理上位机的数据,其实就是发来的目标温度,会设置pid中的目标温度。这里的数据来自于串口中断函数,所以是需要在串口中断函数中处理接收到的数据的,这里我们把数据放在了一个rev_dat数组里面。
上位机的讲解在上一期的《用python写一个简单的带波形的串口上位机》中(关注公众号【阿目分享嵌入式】)。
下面看下实物的展示吧~
供电是焊接的一个type C接口,所以可以直接用手机充电线给板子供电~
采集到的温度变化曲线~上位机实现了温度的显示和目标温度的设定以及历史数据的回放。
需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章2¥,然后后台私信我哦!!~~ending