STM32开发实例_基于STM32单片机的矿下小车系统(电路图+程序+流程图)24-32-125

一.系统概述

矿下小车系统设计包括以下功能,通过STM32单片机实现:
1. 避障功能
超声波测距模块:实现小车的避障功能,检测周围障碍物距离。
障碍物检测:当检测到障碍物超过设定的阈值时,系统控制电机进行避障操作。
2. 环境监测:
火焰传感器:检测矿下是否有明火出现。
DS18B20温度传感器:实时监测矿下的温度。
MQ-4传感器:检测烟雾和可燃气体浓度。
数据显示:通过OLED显示屏展示检测到的火焰、温度、烟雾和可燃气体数据。
3. 安全控制与报警:
灭火和报警:当检测到明火或烟雾超过设定的阈值时,系统触发灭火和报警措施。
温度控制:当检测到温度超过设定的阈值时,系统控制舵机开窗降温。
4. 远程控制:
 蓝牙模块:通过蓝牙实现手机对小车运动的远程控制操作。

二.电路设计

矿下小车系统设计包括以下功能,通过STM32单片机实现:
1. 避障功能
超声波测距模块:实现小车的避障功能,检测周围障碍物距离。
障碍物检测:当检测到障碍物超过设定的阈值时,系统控制电机进行避障操作。
2. 环境监测
火焰传感器:检测矿下是否有明火出现。
DS18B20温度传感器:实时监测矿下的温度。
MQ-4传感器:检测烟雾和可燃气体浓度。
数据显示:通过OLED显示屏展示检测到的火焰、温度、烟雾和可燃气体数据。
3. 安全控制与报警
灭火和报警:当检测到明火或烟雾超过设定的阈值时,系统触发灭火和报警措施。
温度控制:当检测到温度超过设定的阈值时,系统控制舵机开窗降温。
4. 远程控制
 蓝牙模块:通过蓝牙实现手机对小车运动的远程控制操作。

三.程序设计

#include "stm32f10x.h"              
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"
#include "Car.h"
#include "Obstacle.h"
#include "SteeringEngine.h"
#include "AD.h"
#include "bluetooth.h"
#include "stdio.h"
#include "DS18B20.h"
#include "BUZZER.h"
#include "Relay.h"

#define BUFFER_SIZE 100

int main(void)
{
		/*变量定义*/
		uint16_t AD0,AD1,Tem;
		float Num = 90;
		/*模块初始化*/
		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组(蓝牙初始化)
		uart1_init(9600);   //蓝牙串口波特率初始化为9600
		OLED_Init(); //OLED屏幕初始化
		Timer_Init();		//定时中断初始化	
		AD_Init();					//AD初始化
		Car_Motor_Init(); //小车启动初始化
		Servo_Init(); //舵机初始化
		HS_SR04_Init(); //超声波初始化	
		DS18B20_Init(); //DS18B20温度传感器初始化
		BUZZER_Init(); //蜂鸣器初始化
		Relay_Init(); //继电器初始化
		/*显示静态字符串*/
		OLED_ShowString(1, 1, "Gas:0000");
		OLED_ShowString(2, 1, "Temp:00.00");
		/*显示程序内变量设置*/	
		Servo_SetAngle(90);		
		Delay_ms(1000);
		while (1)
		{	
				Num = Ultrasonic_Ranging(Num,50); //小车超声波避障
				Prevent_Stop(Num,40); //小车避障防卡死		
				AD0 = AD_GetValue(ADC_Channel_0);
				AD1 = AD_GetValue(ADC_Channel_1);
				Tem = DS18B20_GetTemperature();
				OLED_ShowNum(1, 5, AD0, 4);
				OLED_ShowNum(2, 6, Tem>>4, 2);
				OLED_ShowNum(2, 9, Tem&0xF, 2);
				Delay_ms(100);			//延时100ms,手动增加一些转换的间隔时间	
				printf("温度:%d.%d°\r\n",Tem>>4,Tem&0xF);
				printf("气体浓度: %d\r\n", AD0);
				printf("火焰: %d\r\n", AD1);
				printf("\r\n");
				if(AD1 < 3000)
				{
						BUZZER_ON();
						Relay_ON();
						printf("WARNING!!!!!!");
						printf("\r\n");
				}
				else
				{
						BUZZER_OFF();
						Relay_OFF();
				}
		}
}

 四.资料内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小常硬件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值