- 系统设计目标
本系统可以分为两个模式来进行运行,分别为手动模式和自动模式,同时,在上电进入系统后,还会有一个模式选择的界面产生。
- 模式选择:在此界面中,可以通过按键K1来控制模式选择,两个模式分别为手动模式和自动模式;通过按键K2可以进入模式
- 手动模式:在手动模式中,可以通过K1来进行速度调整,分为低速、中速和高速,可以通过K3来控制是否为摇头状态。
- 自动模式:在自动模式下,可以通过红外传感器来检测周围是否有人,通过温湿度传感器来测试周围环境温度和湿度,若达到条件就会触发风扇进行运转,风速也有低速模式、中速模式、高速模式。
- 具体的硬件选型
- 主控芯片
主控芯片选择的是stm32f103c8t6最小系统板,价格便宜,非常适合新手进行单片机项目的开发,可以配合面包板来使用,很适合电路连接。
2.显示模块
显示模块主要是使用0.96英寸OLED屏幕。通过OLED模块来显示模式信息、温度信息、扫风信息等内容。
3.温湿度传感器
温湿度传感器使用的是DHT11温湿度传感器,用来在自动模式下来采集温度数据和湿度数据,控制风扇的转速。
4.红外模块
红外模块主要是用来检测周围是否有人存在,在检测到周围有人存在的时候,就可以将信息传递给单片机来进行响应,当温度达到设定值时,可以控制风扇开始转动。
5.电机驱动电路
我的电机驱动电路是使用的大功率二极管来进行驱动电机的,其实也可以用L298N来进行驱动,这个就根据个人手头上的元件来决定。
6.舵机
风扇的扫风模式我主要是使用舵机来完成的,通过控制舵机的占空比来实现风扇的扫风。
7.电机
这次的电机我使用的是空心杯这个小电机。
- 具体的软件思路
- 模式选择界面
在选择模式下可以通过按键来切换模式,并通过按键进入模式,其中使用K1按键来进行模式的选择,分为自动模式和手动模式;通过K2进入所选择的模式。
2.手动模式
在手动模式下,通过按键来控制风扇的转动和扫风模式以及退出到选择界面的功能。在手动模式中,按下K1键来进行风扇的加速,分为低速模式—>中速模式—>高速模式—>停止。通过K3来控制扫风,当按下一次K3后,会进入扫风模式,风扇扫风,再次按下K3,停止扫风。按下K4后,会退出手动模式进入模式选择界面。
3.自动模式
在自动模式下,系统会自动检测周围环境并决定是否进入扫风模式和使风扇转动。
- 首先会检测前方是否有人,若没有人,无事发生;若有人,进入2。
- 若前方有人,会检测左侧是否有人,若无人且环境温度大于27度,风扇转动但不扫风;若有人,进入3。
- 若左侧有人,会检测右侧是否有人,若无人且环境温度大于27度,风扇转动且左半边扫风;若有人,且环境温度大于27度,风扇转动且0度到180度扫风。
- 若环境温度在27度到29度之间,风扇转速为低速模式,若环境温度在29度到31度之间,风扇转速为中速模式,若环境温度在31度以上,风扇转速为高速模式。
- 元件的连接
注:如果要实现自动模式的效果,要在舵机的桨上将电机和红外模块粘上,这样才能更好地实现自动模式中所期望的效果。