STM32项目分享:基于STM32智能吸尘器系统的设计与实现
“我们不做一锤子买卖,只做技术成长的长期伙伴!”
目录
一、视频展示
二、项目简介
三、原理图设计
四、PCB硬件设计
五、程序设计
六、资料分享
一、视频展示
基于STM32智能吸尘器系统的设计与实现 -视频分享
二、项目简介
题目:基于STM32智能吸尘器系统的设计与实现
主控: STM32f103c8t6
显示:OLED显示屏
避障模块:超声波
循迹模块
三按键
蓝牙模块
L293D控制电机轮子
清扫风扇
电池供电
功能:
1、OLED液晶显示当前模式,状态。
2、循迹模式下沿着黑色线循迹,并打开清扫风扇,。
3、避障模式下,当检测到前方有障碍物时,自动避开,转向再直行,一直打开风扇。
4、蓝牙模式下,手机连接蓝牙可控制小车移动或停止,打开和关闭清扫,切换模式等。
三、原理图设计
四、PCB硬件设计
五、程序设计
#include "stm32f10x.h" // Device header
#include "delay.h"
#include "lcd.h"
#include "timer.h"
#include "IOput.h"
#include "HW_Track.h"
#include "wave.h"
#include "usart.h"
#include "MOTOR.h"extern u8 res,res1;
u8 mode,set,speed,cound,speed_flag;
u8 step=70;void come();
void stopp();
void Wave(void)
{length = Senor_Using(); //超声波程序if(length>20){go(step,step);OLED_ShowCH(72,4,"前进");}else{time_count = 0;while(time_count <= 100){back(step,step);OLED_ShowCH(72,4,"后退");}time_count = 0;while(time_count <= 60){turn_left(step,step);OLED_ShowCH(72,4,"左转");}}come();
}void TrackWave(void)
{if(length>20){HW_Track(); //循迹程序OLED_ShowCH(72,4," ");
// JDQ=0;}else{stop();OLED_ShowCH(72,4,"停止");
// JDQ=1;}length = Senor_Using(); //超声波程序come();
}void Blueteeth(void)
{if(res1 =='a' || res ==0x01){res1=0;res=0;go(step,step);OLED_ShowCH(72,4,"前进");}else if(res1 =='b' || res ==0x02){res1 = 0;res = 0;back(step,step);OLED_ShowCH(72,4,"后退");}else if(res1 =='c' || res ==0x03){res1 = 0;res = 0;turn_left(step,step);OLED_ShowCH(72,4,"左转");}else if(res1 =='d' || res ==0x04){res1 = 0;res = 0;turn_right(step,step);OLED_ShowCH(72,4,"右转");}else if(res1 =='e' || res ==0x05){res1 = 0;res = 0;stop();OLED_ShowCH(72,4,"停止");}else if(res1 =='f' || res ==0x06){come();}else if(res1 =='g' || res ==0x07){stopp();}
}
int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);OLED_Init();delay_ms(1);OLED_Clear();input_init();output_init();TIM2_Int_Init(71,9999); TIM_PWM_Init(100,8);CH_SR04_Init();Usart3_Init(9600);Usart1_Init(9600);motor_init();OLED_ShowCH(72,4,"停止");OLED_ShowCH(40,2,"停止模式");stopp();while(1){key_scan(1,1,1);OLED_ShowCH(0,0," 智能吸尘器 ");OLED_ShowCH(0,2,"模式:");OLED_ShowCH(0,4,"运动状态:");if(set_flag==1|| res1 =='m' || res ==0x07){res1 = 0;res = 0;stop();set_flag=0;set++;if(set>=4){set=0;}}if(set==3){mode = 3;OLED_ShowCH(40,2,"避障模式");}if(set==1){mode = 1;OLED_ShowCH(40,2,"循迹模式");}if(set==2){mode = 2;OLED_ShowCH(40,2,"遥控模式");}if(set==0){mode = 0;stopp();OLED_ShowCH(40,2,"停止模式");}if(mode == 0){stop();OLED_ShowCH(72,4,"停止");}else if(mode == 1){TrackWave();}else if(mode == 2){Blueteeth();}else if(mode == 3){Wave();}}
}
void come()
{JDQ1=0;JDQ2=1;
}
void stopp()
{JDQ1=0;JDQ2=0;
}
六、资料分享
点击即可查看当前资料分享。