基于C51单片机的智能灭火小车设计与实现

2022-04-22 06:45李海伟李慧慧庞亚男李泽华
山西电子技术 2022年2期
关键词:黑线循迹高电平

李 芸,李海伟,李慧慧,庞亚男,李泽华

(太原工业学院,山西 太原 030008)

随着国民经济的快速发展,人们生活水平不断提高,居民和工业领域的用电量不断增加,随之而来也造成了火灾事故的极易发生。火灾一旦发生,会造成财产和人身极大损失[1]。火灾发生后,消防员就需要进入伴随高温、浓烟的危险环境下抢险救灾,甚至还会威胁到自身的生命安全。另外,单纯依靠人力救火效率低,若不及时,经常会错过最佳灭火时间。针对以上问题,设计了一款智能灭火小车,可以在行进过程中自动循迹,自动感知火源,精准到达预设目标,并控制灭火系统灭火。

1 系统总体设计

本文设计的智能小车系统共有6个模块:单片机控制模块、寻迹模块、驱动电机模块、火焰传感器模块、风扇模块、电源模块。寻迹模块由红外传感器组成,主控芯片采用STC89C51。

2 小车硬件设计

2.1 主控模块的硬件设计

本设计选择STC89C51单片机作为系统主控模块,STC89C51单片机是一款低功耗、高性能的微控制器,拥有32个通用I/O口、2个异步串口、2个定时器模块、AD采样模块等[2]。STC89C52单片机不仅价格便宜,还能满足控制小车驱动和传感器的要求。主控模块引脚连接原理如图1所示。

2.2 电机驱动硬件原理设计

在L298N步进电机驱动模块中,L298N可实现电机驱动及控制电机正反转。单片机P1.4-P1.7、P2.2-P2.5接口与L298N的输入引脚连接,四个直流电机与驱动芯片的8个OUT输出口相连,从而驱动直流电机转动,L298N电机驱动连接原理图如图2所示。

图1 主控模块引脚连接原理图

图2 L298N电机驱动连接原理图

2.3 循迹系统硬件原理设计

循迹系统采用红外循迹法,即利用红外线对黑、白色吸收作用不同的原理[3]。小车在行进过程中,红外发射管不断向地面发射红外线。当红外线遇到白色场地时,发生漫发射,红外线被反射,传感器可以接收返回的数据,经变电电路比较器后输出低电平,当遇到黑色跑道时,红外线被吸收,红外传感器接收不到返回的数据,经变电电路比较器后输出高电平,单片机循迹模块通过传输高低电平实现循迹功能[4]。本设计采用三个循迹模块,循迹模块端子2分别与单片机P1.0、P1.2、P1.3相连接,分别控制左、中、右循迹。

2.4 灭火系统硬件原理设计

灭火系统由火焰传感器模块和风扇模块组成,火焰传感器利用红外线对火焰敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低电平信号[5]。当检测到火焰时,火焰传感器向单片机传入高电平,单片机驱动灭火装置风扇打开。

3 小车软件系统设计

软件主程序设计流程如图3所示。

图3 软件主程序设计流程图

3.1 动力驱动软件设计

定义小车驱动模块输入I/O口,如下代码所示。要想实现小车左转弯,就得令左电机向前转而右电机向后转,小车右转弯同理,如下代码所示。

sbit a1=P1^4; //电机1驱动

sbit a2=P1^5;

sbit b1=P1^6;

sbit b2=P1^7;

sbit a3=P2^2; //电机2驱动

sbit a4=P2^3;

sbit b3=P2^4;

sbit b4=P2^5;

3.2 循迹系统软件设计

定义循迹模块与单片机连接的I/O口,如下代码所示。

sbit d1=P1^3; //循迹1 左 黑线高电平

sbit d2=P1^2; //循迹2 中

sbit d3=P1^0; //循迹3 右 黑线高电平

定义循迹模块,当左循迹模块向单片机传输高电平时,小车左转;当右循迹模块向单片机传输高电平时,小车右转;当中循迹模块向单片机传输高电平,并且左、右循迹同时向单片机传输低电平时,小车直行,如下代码所示。

void xunjin()

{

Stop();

while(d1==0&&d2==1&&d3==0)

{

QianJin();

}

while(d1==1&&d2==0&&d3==0)

{

ZuoZhuan();DelayMs(30);

}

while(d1==1&&d2==1&&d3==0)

{

ZuoZhuan();DelayMs(30);

}

while(d1==0&&d3==1&&d2==0)

{

YouZhuan();DelayMs(30);

}

while(d1==0&&d3==1&&d2==1)

{

YouZhuan();DelayMs(30);

}

while(d1==0&&d2==0&&d3==0)

{

Stop();

}

}

void main()

{

while(1)

{

Stop();

while(d1==0&&d2==1&&d3==0)//左右两边寻迹检测到白纸且中间寻迹检测到黑线前进

{

QianJin();

f1=0;

f2=0;

}

while(d1==0&&d2==0&&d3==1)//右对管检测到黑线右转

{

YouZhuan();DelayMs(30);

}

while(d1==0&&d2==1&&d3==1)//右对管检测到黑线右转

{

YouZhuan();DelayMs(30);

}

while(d1==1&&d2==0&&d3==0)//左对管检测到黑线左转

{

ZuoZhuan();DelayMs(30);

f1=0;

f2=0;

}

while(d1==1&&d2==1&&d3==0)//左对管检测到黑线左转

{

ZuoZhuan();DelayMs(30);

f1=0;

f2=0;

}

while(d1==0&&d2==0&&d3==0)//两个对管检测到黑线停止

3.3 灭火系统软件设计

本设计定义火焰传感器与单片机P2.0接口相连,当I/O口向单片机传输高电平时判断有火焰产生,单片机发出命令驱动灭火装置,灭火系统代码如下:

sbit gz=P2^0; //定义火焰传感器

void Feng()

{

f1=1;f2=0;

DelayMs(5000); //风扇转5秒

}

4 系统调试

本设计以亚克力底板作为支撑小车的框架,L298N步进电机直流电机作为车轮驱动,STC89C51单片机作为小车的主控单元,设计人员按照电路图连接单片机与传感器,成功组装好智能灭火小车,如图4所示。使用黑色胶带在地上铺设小车轨道,当只有中间循迹检测到黑线,小车直走;当左边循迹检测到黑线,小车左转;当右边循迹检测到黑线,小车右转;当循迹都检测不到黑线,小车停止;当小车停止,检测到火焰时,启动风扇进行灭火。

图4 智能灭火小车图

5 结论

智能小车的试验装置设计完成后,经调试运行,各功能系统运行状态良好,其很好地完成了轨迹巡行、火焰检测与灭火设备的开启控制等功能。

猜你喜欢
黑线循迹高电平
基于DFT算法的电力巡检无人机循迹检测系统设计
黑线
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
浅谈基于机器视觉和姿态检测的循迹智能车
虾背黑线真的特别“脏”吗
数字电子技术的应用
智能差分循迹小车设计
浅谈物理电路与数字电路
这也算海鲜
七巧数独