设计一个基于STM32的PID温度控制系统

设计一个基于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

### PTC加热片连接到继电器的方法 PTC加热片是一种具有正温度系数的热敏电阻材料,其阻值会随着温度升高而显著增加。为了实现对PTC加热片的有效控制,通常通过继电器来切换电源通断。以下是具体的连接方法以及注意事项。 #### 1. 基本原理 继电器的作用是作为开关设备,在低电压信号下控制高功率负载(如PTC加热片)。当继电器线圈得电时,触点闭合或打开,从而控制PTC加热片的工作状态[^1]。 #### 2. 所需元件清单 - **继电器**:选择额定电流大于等于PTC加热片工作电流的型号,例如30A或更高的继电器。 - **PTC加热片**:根据实际需求选定规格。 - **直流电源**:用于驱动PTC加热片及其供电回路。 - **二极管**:保护继电器免受反向电动势影响(推荐使用快速恢复型二极管)。 - **保险丝**:防止过载损坏电路。 #### 3. 连接方式说明 将PTC加热片接入继电器常开触点的一端,另一端接到电源正极;继电器公共端连至PTC加热片负极端子并接地形成闭环。具体如下: ```plaintext +-------------------+ | | | DC Power |----(+)------> To One Side Of PTC Heater | Supply | | | Common Terminal (COM) --> (-) of PTC & GND +-------+----------+ | v Relay Coil Pin1 -----> Control Signal Input From MCU/Other Source | Relay Coil Pin2 -----< Ground For The Control Circuitry ``` 注意在线圈两端跨接一个续流二极管以吸收感应回路产生的尖峰电压,延长使用寿命。 #### 4. 安全提示 - 确认所选继电器的最大承载能力满足PTC加热器的实际功耗要求; - 加强散热设计避免长时间高温运行造成损害; - 正确安装防护装置比如熔断器预防短路事故的发生。 #### 示例代码片段(针对MCU控制情况) 如果采用单片机或其他微控制器触发继电器动作,则可能涉及如下简单的GPIO操作逻辑: ```c #define RELAY_PIN PB5 // Define pin connected to relay coil void setup() { pinMode(RELAY_PIN, OUTPUT); // Set the pin as output mode. } void loop() { digitalWrite(RELAY_PIN, HIGH); // Turn on relay by setting high level at GPIO port. delay(5000); // Keep it ON for five seconds. digitalWrite(RELAY_PIN, LOW );// Then turn off after certain period. delay(5000); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值