基于蓝牙、语音控制的STM32单片机摇头风扇设计

本设计的硬件构成:

STM32F103C8T6单片机最小系统板+时钟晶振电路+复位电路(上电自复位,手动复位),LCD1602显示屏电路,独立按键电路,ULN2003步进电机驱动电路,蓝牙模块,语音识别模块,总电源供电电路;

功能介绍:

1. LCD1602液晶显示当前风扇等级,语音控制状态,摇头状态;

2.共设置有4个按键,按键1为摇头开关键;按键2为语音识别功能的开关键;按键3为风扇挡位上调键;按键4为风扇挡位下调键;

3. 可通过蓝牙模块,在手机APP上对风扇状态进行监控和控制;

4. 可通过语音识别模块,用户说出相应语音,实现对风扇的语音控制(演示视频有详细的演示过程);

主要物料清单及型号:

显示屏:LCD1602-5V;

单片机:STM32F103C8T6;

蓝牙模块:JDY-31-SPP;

语音识别模块:LD3320;

步进电机驱动:ULN2003;

步进电机:28BYJ-48-5V

PCB图

程序:

int main(void)
 {		
	u8 key=0;
	u8 dir=1;
	u8 count=0; 	 
	u8 temp_dif=0;
	delay_init();	    	 //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 //串口初始化为115200
 	LED_Init();			     //LED端口初始化
	 KEY_Init();
	 motor_init();
	 Lcd_Init();
 	TIM2_PWM_Init(99,7200);	 //不分频。PWM频率=72000000/900=80Khz
	TIM3_Int_Init(499,7199);//50ms 
	 
	 Lcd_Puts(0,0,"Level:00 V:ON ");
	 Lcd_Puts(0,1,"Shake:NO  ");
	 PWM_adjust(PWM_Level);	
	 Lcd_SetXY(6,0);
	Lcd_Write_Data(PWM_Level/10+0x30);
	Lcd_Write_Data(PWM_Level%10+0x30);
   	while(1)
	{
		key=KEY_Scan(0);
		KEY_Handle(key);	
		rev_handle();
		if(shake_mode==ON)
		{
			if(count<=150&&shake_state==ON)
			{
				count++;
				if(count==150)
					shake_state=OFF;
				motor_open(0,2);
			}
			else if(count>0&&shake_state==OFF)
			{
				count--;
				if(count==0)
					shake_state=ON;
				motor_close(0,2);
			}
		}
		if(time50ms>=10)
		{
			time50ms=0;
			
			Lcd_SetXY(6,0);
			Lcd_Write_Data(PWM_Level/10+0x30);
			Lcd_Write_Data(PWM_Level%10+0x30);
			APP_Data_Update();
			printf("%s",APP_Data);
		}	   
	}	 
 }

资料:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值