0271基于STM32的煤气天然气阈值报警 仿真原理图PCB设计

2021年7月1日 0 条评论 1.98k 次阅读 0 人点赞

【前言】

     hello 大家好,今天给大家讲一讲基于STM32的煤气天然气阈值报警系统,之前钛叔有设计过基于51单片机的该项目,本次项目旨在加深对32单片机的熟悉

     本次项目采用的硬件是B01主板 + S009 比较器模块配合MQ3传感器 + S015 MOS驱动模块配合小风扇的组合,通过LCD1602液晶实时显示当前煤气浓度百分比,2.默认阈值设置如下: a)浓度低于30%为正常,亮绿灯 b)浓度介于30%~50%之间,亮黄灯,打开继电器关闭气阀 c)浓度高于50%,亮红灯,打开继电器以关闭气阀,同时打开风扇。此外,通过串口可实时上报浓度信息,串口波特率为9600。

【仿真设计】

    下面是该项目的仿真图,模块化设计并配有功能说明,实现良好的易读性和移植性。(仿真文件为V8.11版本的,大家可以在此下载安装该版本:http://www.jh-tec.cn/archives/5696

【硬件电路设计】

    下面是该设计的整体原理图和PCB设计概览,原理图模块化分布,每部分都备注有对应的功能名称,便于阅读;PCB设计采用的3D封装的器件,主要是方便配合结构设计。

*  B01主板原理图PCB:

*  关于S015 MOS驱动模块    该模块的原理图如下图所示,使用的MOS管型号是AO4459,该管子支持连续漏极电流(Id)为5.8A,能满足绝大多数应用的功率;漏极的电源电压钛叔这里加了一个跳线帽可以直接接控制板过来的5V电压,同时预留了一个DC3-005座子,可以外接其他电源,比如电磁锁所需要的12V就可以通过此接口供电;源极设计了5.0mm的接线座子、XH2.54接口以及USB2.0立式母头(该座子主要是用于台灯路灯等项目);

这里需要注意一下原理图中的控制部分,最开始钛叔选用的三极管是一个PNP的SS8550,但是回来测试发现了一个问题:当外部供电12V的时候,单片机的最高电压为5V,此时无论如何发射极的电压都高于基极,因此是无法控制三极管的开关的,所以钛叔后来改为NPN管子,但是由于单片机的初始默认电平是高,所以启动的时候为了避免误启动,钛叔这里采用了两个NPN,控制信号为低电平的时候MOS管导通,而高电平MOS管不通。

*  S009 比较器模块   该模块的原理图如下图所示,比较器型号采用的是常用的LM393,采用一个电位器可调节阈值大小,在输入接口部分钛叔作了较多的考虑,分别设计了2Pin和3Pin的排针和排孔,可以外接土壤湿度传感器、震动传感器、光敏传感器、A3144霍尔传感器以及红外光电传感器;对于电源和数据接口部分,钛叔分别设计了两个3P的XH2.54座子用于模拟和数字信号,可与我们的控制主板兼容使用。

 

下面详细介绍一些设计注意点哈,抛砖引玉~

1、关于MCU   本次项目采用的MCU是STM32F103RCT6(仿真图和电路图均是该型号),最小系统如下图所示,BOOT0和BOOT1的处理方式可以参考下图,钛叔用10k电阻到地,然后上拉510Ω通过跳线帽到3.3V,如果需要高电平就插上跳线帽,不插即表示低电平,其他部分都很简单,这里不赘述具体原理。另说一句,在我们调试MCU小系统的时候,如果工作异常,无论什么类型芯片,首先第一步就是检查芯片的供电电源是否正常,再之后检测晶振和复位,绝大多数的问题都是出在这三个地方,钛叔记得以前学生时代有一次调试51单片机就始终下不进去程序,电源正常,复位也正常,最后发现就是晶振的谐振电容错焊成了1000pf,导致晶振起振失败,诸如类似的问题都可能导致芯片启动失败,所以大家按照我上述的三个点出发去调试,就一定能够解决问题。

2、关于电源    如下图所示,钛叔在设计电源接口的时候根据实际使用情况多方面考虑,设计了两种接口方式——排针和miniUSB,排针可以用在杜邦线供电的情况(根据板载丝印正确插入,切记别插反),miniUSB供电的方式比较推荐,可以避免插反烧坏板子情况。钛叔这里之所以采用miniUSB而不是microUSB,主要原因是由于microUSB体积比较小,在开放性板子上面多次拔插容易给搞坏导致接触不良(所谓开放性板子就是无结构件固定的裸板),所以这里钛叔没有采用microUSB。

电源开关部分钛叔采用的是8.5x8.5的自锁开关,这里需要注意就是自锁开关的方向,有部分同学焊接反了导致按下时候为电源关断,弹上来是电源闭合。

钛叔在该设计板上习惯性放了三个MRK点,如果大家有需要量产的需求,且板子比较大不会涉及拼版的情况,就记得放,如果后面是需要拼版的话,可以在最终的大板上放MRK点。

因为STM32供电需求是3.3V,本系统电源输入为5V,所以板上设计了一路3.3V线性电源。这里需要注意线性电源尽量要选用电流达到1A以上的,以满足部分功耗较大的模块。钛叔这里使用的是AMS117,该芯片的性价比很高,推荐大家使用,不过一定要去代理商或者嘉立创拿货,淘宝上很多假货。

 

3、关于显示    B01电路板可以兼容LCD1602、LCD12864以及OLED三种显示器,电路图如下图所示,因为STM32单片机的工作电压为3.3V,因此选用LCD的时候也需要选用对应电平,LCD1602和LCD12864记得买3.3V电平的型号,OLED的工作电压一般兼容了3.3V和5V。大家可以根据自己的项目需求来选择显示器,如果显示内容比较多,比如贪吃蛇之类的游戏的项目就可以选择LCD12864,如果需要注重显示效果就可以选择OLED,如果显示内容不多也不怎么注重效果就可以选择LCD1602。

本次项目钛叔采用的是LCD1602,LCD1602的R/W引脚,大多数的情况下直接接地保持写操作就行,如果是一些项目需要读操作的话,就需要把该引脚接入单片机(类似于示波器或者贪吃蛇这种项目);VL引脚是调试对比度的,如果事先不知道这个分压参数,用的是电位器的话,很可能第一次使用时候分压不合适导致显示屏亮的但没有东西,就误以为是自己程序的问题,这个问题钛叔以前也犯过,捣鼓了半天才发现是对比度没有调好,其实程序早已经再运行,如果大家是在某宝上买的液晶屏,大多数都是满足下边的分压参数,大家可以参考参考哈。

 

4、关于按键      B01多功能板载有6个按键,可以满足绝大多数的应用,如果不够的话,可以通过外接矩阵键盘的方式扩展。板载按键的型号钛叔采用的是贴片的6*6轻触按键,这里需要提醒大家的是,如果大家采用的回流焊机子,一定要注意购买耐高温的元器件,一般如果用编带的按键基本能过高温,如果是袋装的散件很可能就过不了,按钮部分很容易被烤坏,这里提醒大家一下。

5、关于报警     B01多功能板载有声光报警,报警电路部分原理很简单,大家可以参考下图,一个蜂鸣器加LED就可以实现,这里需要注意两个地方,第一是蜂鸣器建议大家选用有源的,操作简单很多,另外就是电压需要选择对应的,钛叔这里采用的是3.3V的HNB09A05 (实测的时候发现5V额定电压的蜂鸣器焊接在这里也可以用😄)。

6、关于存储器    B01多功能板载有EEPROM——型号AT24C02,在这里主要是利用其掉电后数据不丢失的特性的来存储一些测量数据,另外,板子上还设计了一款Flash——W25Q32,该芯片可以用于一些需要存储大量数据的项目。两块芯片都是3.3V供电,W25Q32的通信方式是SPI,AT24C02通信方式是IIC,电路设计很简单,可以参考下图。

7、关于接口     B01主板的接口非常之丰富,如下图所示,可以与钛叔设计的诸多小模块组合。本次项目用到的模块是S009 比较器模块 + S015 MOS驱动模块 +BT06蓝牙模块,分别对应的接口是3PIN、3PIN以及4PIN,因此大家可以在下图3PIN以及4PIN中任意选择连接,只要程序上对应相应的IO口即可。

8、关于PCB布局布线    该芯片的外围比较简单,工作频率也不算高,大家根据器件的原理图位置合理放置就OK,关于GND尽量要保证底层的地完整,不要切割太多,上层的每个GND焊盘附件放置数个过孔,具体的设计大家可以参考我下图。

【程序设计】

    该部分后面再录视频给大家讲解。

【实物】

演示视频:

硬件实物:https://www.bilibili.com/video/BV1g44y1q7UC/

仿真电路:https://www.bilibili.com/video/BV1zK4y1g7cP/

购买地址:

https://item.taobao.com/item.htm?ft=t&id=650245843665

资料地址:

链接:https://pan.baidu.com/s/1HsxiSNP-Rud6C9GM9Zsvng

提取码:c4xl

 

极寒钛

别给思维设限