龙空技术网

基于STM32的红外线测距系统 (含代码)

嵌入式xff 170

前言:

眼前大家对“红外传感器程序流程图”大致比较讲究,各位老铁们都想要分析一些“红外传感器程序流程图”的相关内容。那么小编也在网摘上收集了一些对于“红外传感器程序流程图””的相关内容,希望兄弟们能喜欢,你们快快来学习一下吧!

前言

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

一、任务书1.1设计(研究)目标:

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

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

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

二、思路第一步红外传感器模块GP2YOA21YKOF发送红外线;第二步到达物体后反射红外线;第三步红外传感模块接收反射后的红外线;第四步传感器模块将信号发送给单片机处理模块;第五步经过模数转换将非线性的模拟信号转换为线性的数字信号;第六步由单片机处理模块发送数字信号到液晶显示模块;第七步最后结果表明在液晶显示模块LCD1602上三、硬件GP2YOA21YKOFOLED按键PCF8591STM32F103四、部分实现代码

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 );	    		}   	}}

完整代码以及框图等资料可进群免费领取。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

标签: #红外传感器程序流程图