零基础学会制作 基于STM32/51的多功能车位锁设计/车位锁/停车计时/停车场计时器

项目介绍

本研究旨在设计并实现一款基于STM32单片机的多功能车位锁系统,该系统利用STM32单片机的高性能和低功耗特性,集成了距离检测、光照控制、蓝牙通信等多种智能技术,实现了对停车位的智能管理和自动控制。通过超声波模块实时监测车辆与车位锁之间的距离,借助光敏传感器调节停车区域的照明亮度,以蓝牙模块实现远程控制开锁,系统旨在提高停车效率、保障停车安全,并优化用户体验。

功能介绍

设计一个基于STM32的多功能车位锁。该设计能够帮助用户更方便地实现车位的监控和管理,用户可以通过这个系统精准地管理停车位,有效防止非法占用或损坏车位,为用户提供更加便捷的停车服务。该设计由主控制器、光敏电阻模块、超声波检测模块、蓝牙模块、语音播报模块等组成。
1)实现车位锁和车辆的蓝牙通信,在车辆距离车库一定距离后,打开车位锁,语音播报:可以安全停车,车辆离开后,车库进行自动上锁;
2)采用光敏电阻对光线强度进行检测,当光线太弱时自动补光;
3)采用超声波传感器检测车位有车时车锁不动作;
4)实现车位锁的开和关;

所用模块

本设计采用单片机作为控制核心,负责处理来自各传感器的数据,执行用户命令,以及管理无线通信和语音模块。光照采集模块用于检测车位锁周围的光照条件,根据光照强度自动调节灯光,以确保用户停车安全。通过超声波传感器测量车辆与车位锁的距离,用于自动检测车位上是否有车,在有车时车锁不动作。采用显示屏,用于显示车位状态信息、操作提示或其他用户交互信息。语音模块提供语音提示和语音控制功能,增强用户交互体验,特别是在驾驶状态下提供便捷的操作方式。

系统原理图

在这里插入图片描述

实物图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

部分代码

u8 set=20,set1=4;
u16 adcx,flag,flag1;
int main(void)
{
float temp;
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
NVIC_Configuration();//ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
uart_init1(9600); //´®¿Ú³õʼ»¯Îª9600
LED_Init(); //LED¶Ë¿Ú³õʼ»¯
Adc_Init(); //ADC³õʼ»¯
KEY_Init();
OLED_Init();
OLED_ShowCH(0,0,“light”);
OLED_ShowCH(0,2,“close”);
OLED_ShowCH(0,4,“dis”);

TIM2_PWM_Init(19,799);	 //²»·ÖƵ¡£PWMƵÂÊ=72000/900=8Khz

Timerx_Init(500,799); //10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½5000Ϊ500ms
UltrasonicWave_Configuration(); //¶Ô³¬Éù²¨Ä£¿é³õʼ»¯
while(1)
{

	adcx=Get_Adc_Average(ADC_Channel_0,10)*0.02;		
OLED_ShowNum(60, 0, adcx, 2,1);
OLED_ShowNum(100, 0, set, 2,1);
	OLED_ShowNum(80, 2, flag1, 2,1);
OLED_ShowNum(100, 4, set1, 3,1);
	delay_ms(250);	
	if(adcx<set)
	{
		 GPIO_SetBits(GPIOA,GPIO_Pin_1);		//PB.5 Êä³ö¸ß
	}
	if(adcx>set)
	{
	   GPIO_ResetBits(GPIOA,GPIO_Pin_1);	//PB.5 Êä³ö¸ß
	}
	
	if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==1&&flag==0)
	{
	  flag=1;
    TIM_SetCompare3(TIM3,5); 
  delay_ms(300);
  TIM_SetCompare3(TIM3,10); 
  delay_ms(300);
  TIM_SetCompare3(TIM3,15); 
  delay_ms(300);
  TIM_SetCompare3(TIM3,20); 
  delay_ms(300);//
	  OLED_ShowCH(0,2,"open ");
    GPIO_SetBits(GPIOA,GPIO_Pin_2);			//PB.5 Êä³ö¸ß
    delay_ms(250);	
	  delay_ms(250);	
	  GPIO_ResetBits(GPIOA,GPIO_Pin_2);		//PB.5 Êä³ö¸ß

	}
	if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==0&&flag==1)
	{
		 flag=0;
	   TIM_SetCompare3(TIM3,15); 
   delay_ms(300);
		 TIM_SetCompare3(TIM3,10); 
   delay_ms(300);
		 TIM_SetCompare3(TIM3,5); 
   delay_ms(300);
		 OLED_ShowCH(0,2,"close");		
	}

		
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6)==0)
	{
	  delay_ms(80);
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6)==0)
	  {
	   flag1++;
	   if(flag1>=3)
		  {
		  flag1=0;
		  }
	  }
	}

	
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)==0&&flag1==1)
	{
	  delay_ms(30);
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)==0&&flag1==1)
	  {
	   set++;
		 if(set>99)
		   {
			  set=0;
	     }
	   }
	 }
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0&&flag1==1)
	{
		delay_ms(30);
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0&&flag1==1)
	  {
	   set--;
		if(set<1)
		  {
		   set=99;
		  }
	  }
  }
	
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)==0&&flag1==2)
	{
		delay_ms(30);
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)==0&&flag1==2)
	  {
	  set1++;
		if(set1>99)
		  {
			 set1=0;
	    }
	  }
  }
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0&&flag1==2)
	{
		delay_ms(30);
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0&&flag1==2)
	  {
	   set1--;
		 if(set1<1)
		   {
		    set1=99;
		   }
	   }
	 }
 }

}

资料下载链接

「实物制作资料 分享.rar」,来自夸克网盘分享。
夸克网盘无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
/7b80346jCs😕
链接:https://pan.quark.cn/s/3e81858eda83
提取码:Ceiz

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值