基于STM32的红外测距系统

提示:记录2022年4月做的毕设

前言

基于STM32的车间环境监测系统,主控使用STM32F103ZET6,在正点原子的精英板上开发。


一、任务书

1.1设计(研究)目标:

以STM32单片机为核心器件,设计一个红外测距系统,红外测距仪基于红外线的不扩散原理,在测量短距离物体时有着较高的精度,在生活中发挥着重要的作用。通过硬件和软件的设计,实现能够精准测量10~50cm物体的红外技术测距仪。

设计(研究)内容及具体要求:

1.2设计(研究)内容:
  • 题目的意义;
  • 各种传感器及设备的一般技术和特殊技术的学习:
  • 总体方案的选型设计:
  • STM32单片机及其外围设备的软硬件系统的技术开发:
  • 系统的调试和总体运行原理
  • 其他设计内容;具体要求:
  • 硬件要求1张1号以上的大图:
  • 软件以流程图方式表示:
  • 有调试的说明。

二、思路

  • 第一步红外传感器模块GP2YOA21YKOF发送红外线;
  • 第二步到达物体后反射红外线;
  • 第三步红外传感模块接收反射后的红外线;
  • 第四步传感器模块将信号发送给单片机处理模块;
  • 第五步经过模数转换将非线性的模拟信号转换为线性的数字信号;
  • 第六步由单片机处理模块发送数字信号到液晶显示模块;
  • 第七步最后结果表明在液晶显示模块LCD1602上

三、硬件

  • GP2YOA21YKOF
  • OLED
  • 按键
  • PCF8591
  • STM32F103

四、联系我

承接stm32单片机、STC系列单片机设计、嵌入式
问题联系QQ:2424644692
某宝店铺,搜:“晖亿科创”

五、代码以及框图等资料

int main(void)
{
	int distance=0,light=0;
	int shidu=0,wendu=0;
	char send_str1[200]="Infrared ranging detection system based on stm32!\r";
	char send_str2[200]=" ";
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  all_usart_init();		    // 串口初始化
  delay_init();			      // 延时初始化
	ESP8266_Init();         // 初始化WiFi模块使用的接口和外设
	Esp8266_ap();

	//LED_Init();
	
	OLED_Init();
	OLED_Clear();
 	 
	TIM2_Int_Init(999,7199);  //10Khz的计数频率,计数到1000为100ms
	
	PCF8591_Init();
  DHT11_Start();
	LIGHT_Init();
	
	show_caption();
	Show_Chinese();
	ESP8266_SendString( DISABLE, send_str1, strlen ( send_str1 ), ( ENUM_ID_NO_TypeDef ) 0 );	    
	while(1)
	{	
		/*****************************************************/
		//以下是采集模拟量
		//ADC_IN2()是采集过来的电压值,校准后给distance
		/*****************************************************/
		//distance = 70-(ADC_IN1()/3);
		//delay_ms(100);
    if(dis_flag==1)
		{
			dis_flag=0;
			distance = (170-ADC_IN2())/2;
			OLED_ShowNum(34,3,distance,3,16);
			
			light=LIGHT_IN2();		
			OLED_ShowNum(34,6,light,3,16);
		}
		
		
		
		if(dht_flag==1)
		{
			dht_flag=0;
			DHT11_ReadData(&shidu,&wendu);
			OLED_ShowNum(96,3,shidu,3,16);
			OLED_ShowNum(96,6,wendu,3,16);
		}
		
		
		
		
		/*****************************************************/
		//以下是OLED显示
		/*****************************************************/
		
		//OLED_ShowNum(34,6,distance,3,16);//
		/*****************************************************/
		//以下是ESP8266发送
		/*****************************************************/
		if(esp_flag==1)
		{
			esp_flag=0;
			sprintf(send_str2,"距离:%d CM;光照:%d;温度:%d;湿度:%d\r\n", distance, light, wendu, shidu);
	    ESP8266_SendString( DISABLE, send_str2, strlen ( send_str2 ), ( ENUM_ID_NO_TypeDef ) 0 );	    
		}   

	}
}


喜欢请点赞哦!

在这里插入图片描述

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于STM32红外测距系统设计包括硬件设计和软件程序开发两个部分。硬件设计主要包括选择合适的红外传感器、STM32微控制器、显示屏和其他外围器件,搭建硬件平台。软件程序开发则需要针对红外传感器进行数据采集和处理,实现距离测量和数据显示等功能。 首先,在硬件设计中,我们需要选择一款精度高、稳定性好的红外传感器,例如Sharp GP2Y0A21YK0F,并根据其特性设计电路,将其与STM32微控制器进行连接。同时,根据测距系统的要求,添加合适的显示屏和其他外围器件,构建完整的硬件平台。 其次,在软件程序开发中,需要针对选定的红外传感器编写驱动程序,实现数据的准确采集和处理。通过调用传感器提供的接口,获取红外信号的强度,并结合传感器的测距原理,计算出物体与传感器的距离。然后,将测量到的距离数据通过STM32微控制器的串口或者显示屏进行实时显示。 此外,为了提高系统的实时性和稳定性,还可以在软件程序中添加滤波算法来对采集到的数据进行平滑处理。同时,针对不同的应用场景,可以考虑加入更多的功能,例如测距数据的存储、数据的通信传输等。 综上所述,基于STM32红外测距系统设计需要充分考虑硬件选型和电路设计,同时进行相关的软件开发,以实现稳定、精准的距离测量功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值