(1)、主控制器采用STM32单片机
(2)、必须要有温度检测装置,采用DS18B20
(3)、要有加热装置,采用220V交流电供电
(4)、要能够设置报警的温度上限值以及温度加热的下限值
(5)、要有声光报警装置,用于报警温度上限
(6)、要能够自动加热使温度保持在设定的一个值,低于该值时自动加热,直到达到该值然后自动停止加热
(7)、相关数值显示采用数码管或液晶显示
(8)、设置的上限和下限值能够实现掉电保存,使得每次上电时不用重新设置相关参数,默认采用上次设置的值
主要实现:实时温度测量及显示,超出温度范围就会进行声光报警,低于下限温度时控制加热器自动加热到指定温度,到达指定温度时自动断开;高于上限温度时也会进行声光报警,同时相应的继电器端口会打开,这是如果你接一个降温的装置比如排气扇,那么此时排气扇就会自动运行降温,直到低于上限温度时才断开排气扇。上下限温度可通过按键设定且设定后的值可自动保存在24C02里面等功能,避免每次上电都要重新设定的繁琐。
#include "stm32f10x.h"
#include "bsp_usart1.h"
#include "bsp_i2c_ee.h"
#include "bsp_SysTick.h"
#include "bsp_ds18b20.h"
#include "lcd.h"
#include "bsp_zizeng.h"
uint8_t shangxian = 30,xiaxian = 25; //上限值存储在地址1 下限值存储在地址2
uint8_t set_st = 0; //标记按下设置键的次数
extern char *wendu_shangxian;
extern char *wendu_xiaxian;
/**
* @brief 主函数
* @param 无
* @retval 无
*/
int main(void)
{
uint32_t delaynum = 0;
Beep_GPIO_peizhi(); //蜂鸣器引脚配置
jidianqi_GPIO(); //继电器引脚配置
/* 配置SysTick 为1us中断一次 */
SysTick_Init();
/*串口工作方式和引脚设置 USART1 config 115200 8-N-1 */
USART1_Config();
printf("eeprom 软件模拟i2c测试例程 \r\n");
ee_Test();//EEPROM 配置IO口,检测设备是否应答;然后填充要发送的数据的缓冲区,然后往EEPROM写入数据,然后读出数据,将读出的数据与写入的数据逐个比较,看是否一致。
while( DS18B20_Init())
{
printf("\r\n no ds18b20 exit \r\n");
}
printf("\r\n ds18b20 exit \r\n");
Delay_us(10000); //延时10ms
check_wendu(); //读取温度值
728 基于STM32水温炉温温度控制系统电路设计
文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html