基于STM32的散热风扇设计(Proteus+keil+设计说明书)

摘要

本文尝试在STM32F103C6微控制器上设计一种比较简单的散热器,通过DS18B20温度传感器实时检测环境温度,并通过LCD1602液晶显示器显示出具体的温度值。此外可以设置一个温度阈值,当检测到环境温度高于阈值时,通过驱动电机转动带动排气扇开始对环境进行散热,当温度降到阈值以下,电机自动停止转动,从而实现一种简单的散热扇设计。这是一个比较简单的STM32的小demo,包含温度传感、LCD液晶显示和电机驱动控制三个模块

环境要求

在这里插入图片描述

整体设计电路原理图

在这里插入图片描述

设计要求的散热风扇需要采用步进电机来驱动,而电机转动所需要的大电压、大电流的工作环境,单凭STM32芯片是无法满足的,因此需要ULN2003来协助单片机输出大电流、满足电机电压,来驱动电机。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。

四相步进电机

本次设计采用的电机为传统的四相步进电机
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相 绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
  当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
ULN2003与四相步进电机的连线图如下

附带的设计报告概况如下:
在这里插入图片描述在这里插入图片描述

仿真结果

将keil生成的hex文件导入到Proteus仿真的STM32F103C6芯片中,程序中设置的风扇开始转动的温度阈值threshold为50C°,仿真时先将DS18B20的环境温度值设置为49C°,开启仿真,结果如图:

在这里插入图片描述
可见温度检测显示与设置值一致,由于温度低于阈值,电机没有转动。
然后设置环境温度为51C°,阈值保持50C°不变,仿真结果如下图所示:
温度显示正常,由于环境温度高于阈值,电机开始转动。

总结

在这次设计过程中,我遇到了很多问题,比如LCD1602的连接要加上拉排阻才能正常显示,步进电机仿真要加反相2003驱动器放大功率,GIPO口配置问题等,经过寻求同学帮助和相关网络论坛查阅资料都得到了解决;在建keil工程时,一定要细心检查需要的函数是否已添加到项目中,以及选项卡中的文件路径是否正确添加;在建Proteus工程时,我学会了如何自己配置供电路,如何创建固件项目;此外这是第一次使用Proteus仿真软件,它也是最近的新版本中才可以支持STM32微机系统的,值得往后进一步探讨软件使用方法。在运行仿真时会有CPU超载的警告,且仿真运行很缓慢,这是因为计算机速度跟不上仿真的速度导致,所以仿真效果与实际效果还是有差别的,然后因为笔记本的配置比较差,运行仿真常常闪退,后来又不断的尝试了其他的Proteus版本才解决闪退问题。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值