找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3632|回复: 0
收起左侧

基于STM32的智能循迹灭火小车源程序

[复制链接]
ID:842748 发表于 2020-11-19 14:11 | 显示全部楼层 |阅读模式
小车实物组装图

传感器

传感器

小车整体

小车整体

调试巡线:
1、要分析清楚,巡线传感器数据和电机动作的关系
2、车速要合适

根据地图,来分析如何实现小车的无火巡线(顺时针方向或逆时针方)

传感器要调整到合适的状态,当探头在黑线上时,传感器灯亮,不在黑线上时,传感器灯灭

在行进过程中要检测到火焰,通过火焰传感器
应用STM32的ADC来实现

先看下STM32的ADC配置
在STM32的核心板上,有四根针,左侧是3.3v  右侧是GND
STM32            火焰传感器
核心板左侧               VCC
核心板右侧           GND
控制板最上边的白色接口L1  A1
                 G    A2
                HW1   A3
                HW2   A4
                 B   A5


软件上需要查阅资料,看STM32ADC如何配
配置5个通道,来检测火焰的数据

寻线,火焰检测,灭火
1、测试下火焰检测的代码
2、考虑如何实现灭火动作
     1、风扇要转动,需要清楚哪个IO引脚是控制风扇,配置这个引脚为输出方向
     2、要检测到火焰状态

     3、需要正对火焰,表明小车应该有一个转向的动作,停车,灭火

     4、灭火完成后,需要回到巡线状态


void process_fire(void)
{
        int LineL1 = 1, LineL2 = 1, LineR1 = 1, LineR2 = 1;

        bsp_GetLineWalking(&LineL1, &LineL2, &LineR1, &LineR2);
        if(LineL1==0 && LineL2==0 && LineR1==0 && ADC_ConvertedValueLocal[4]>2)
        {
                delay_ms(100);
                Car_Stop();
                Car_SpinLeft(1700, 2000);
                delay_ms(580);
                Car_Run(1700);
                delay_ms(300);
                Car_Stop();
                //while(ADC_ConvertedValueLocal[4]>2)
                GPIO_ResetBits(GPIOA,GPIO_Pin_1);
                delay_ms(5000);
                delay_ms(5000);
                delay_ms(5000);
                GPIO_SetBits(GPIOA,GPIO_Pin_1);
                Car_Back(1700);
                delay_ms(300);
                Car_SpinRight(2000, 1700);
                delay_ms(580);
        }
}

全部资料51hei下载地址:
火焰传感器.7z (2.57 MB, 下载次数: 55)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表