STM32项目分享:基于STM32的焊接工位智能排烟系统
“我们不做一锤子买卖,只做技术成长的长期伙伴!”
目录
一、视频展示
二、项目简介
三、原理图设计
四、PCB硬件设计
五、程序设计
六、资料分享
一、视频展示
基于STM32的焊接工位智能排烟系统 -视频分享
二、项目简介
题目:基于STM32的焊接工位智能排烟系统
主控:STM32
显示:OLED显示屏
MQ-2烟雾传感器
MQ-135空气质量传感器
L293D风扇驱动
风扇
三按键
功能:
1.屏幕实时显示当前烟雾浓度,空气质量,风速,阈值信息等。
2.可按键设置阈值信息,最大MQ-2,最低MQ-135。如果数据超过阈值,则根据浓度自动调节抽风强度。
3.分为手动和自动,手动模式下手动调节速度,自动模式下根据浓度自动调节速度。
三、原理图设计
四、PCB硬件设计
五、程序设计
#include "stm32f10x.h" // 设备头文件
#include "delay.h" // 延迟函数库
#include "lcd.h" // LCD显示库
#include "dht11.h" // DHT11传感器库
#include "IOput.h" // 输入输出控制库
#include "usart.h" // 串口通信库
#include "adc.h" // ADC转换库
#include "MOTOR.h" // 电机控制库
#include "timer.h" // 定时器库u8 on_flag, speed, real_speed, cesu_flag, count, speed_flag;
u8 show_flag, show1_flag,mode_falg=0;
float yali, count1, count2,mq2,mq135;
u8 max_TY = 60,dec_TY = 60;int main (void)
{delay_init(); // 初始化延时函数NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设置中断优先级组Adc_Init(); // 初始化ADCOLED_Init(); // 初始化OLED显示屏delay_ms(1); // 延时1msOLED_Clear(); // 清屏output_init(); // 初始化输出input_init(); // 初始化输入Usart1_Init(9600); // 初始化串口1,波特率9600motor_init(); // 初始化电机TIM_PWM_Init(100, 8); // 初始化PWM定时器TIM2_Int_Init(71, 9999); // 初始化定时器2while(1){count++;key_scan(1, 0, 0); // 扫描按键mq135 =Get_Adc_Average(0, 10) * 100 / 4096;mq2 =Get_Adc_Average(1, 10) * 100 / 4096; if(set_flag == 1 && show_flag != 1){show1_flag = 0;OLED_Clear();set_flag = 0;show_flag++;if(show_flag >= 2){show_flag = 0;}}if(show_flag == 0){OLED_ShowCH(0, 0, " 智能排烟系统 ");OLED_ShowCH(0, 2, "MQ-2 :");OLED_ShowNum(48, 2, mq2, 2, 16);OLED_ShowCH(0, 6, "MQ135:");OLED_ShowNum(48, 6, mq135, 2, 16);if(dec_flag==1){OLED_Clear();dec_flag=0;mode_falg++;if(mode_falg>=2)mode_falg=0;}if(mode_falg==0){if(speed != 0){OLED_ShowCH(104, 4, "开");}else{OLED_ShowCH(104, 4, "关");}OLED_ShowCH(0, 4, "速度:");OLED_ShowNum(40, 4, speed, 2, 16);OLED_ShowCH(96, 6, "手动");if(add_flag == 1){real_speed++;add_flag = 0;if(real_speed <= 60 || real_speed >= 101){real_speed = 60;stop(); // 停止电机}else{go(real_speed); // 启动电机}speed = real_speed - 60;}}else{OLED_ShowCH(96, 6, "自动");if(mq2>=max_TY){OLED_ShowCH(0, 4, "自动调速");go(mq2);}else if(mq135>=dec_TY){OLED_ShowCH(0, 4, "自动调速");go(mq135);}else if(mq2<max_TY && mq135<dec_TY){OLED_ShowCH(0, 4, "停止调速");go(0);}}}if(show_flag == 1){OLED_ShowCH(0, 0, "最大MQ-2 :");OLED_ShowCH(0, 2, "最大MQ135:");OLED_ShowNum(72, 0, max_TY, 2, 16);OLED_ShowNum(72, 2, dec_TY, 2, 16);if(set_flag == 1){set_flag = 0;show1_flag++;if(show1_flag >= 2){show_flag = 0; OLED_Clear();}}if(show1_flag == 0){OLED_ShowCH(112, 0, "←");if(add_flag == 1){add_flag = 0;max_TY ++;}if(dec_flag == 1){dec_flag = 0;max_TY --;}if(max_TY >= 100 || max_TY <= 0){max_TY = 0;}}if(show1_flag == 1){OLED_ShowCH(112, 2, "←");if(add_flag == 1){add_flag = 0;dec_TY++;}if(dec_flag == 1){dec_flag = 0;dec_TY--;}if(dec_TY >= 100 || dec_TY <= 0){dec_TY = 0;}}}}
}
六、资料分享
点击即可查看当前资料分享。