利用简单电阻分压原理自动测量电阻 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

利用简单电阻分压原理自动测量电阻

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:56

利用简单电阻分压原理自动测量电阻

注意点
1.直接展示while循环函数
2.需要外接继电器完成工作
3.采用PF(1)-PF(6)进行控制继电器

while (1)//直接就展示while循环的内容
{
	if((temp<0.8196&&i!=1)||temp>=3.2)//一直在判断所要检测电阻值是否分压合适,如果太大,或者太小需要调换挡位
	  {
	     i=6;
	    PFout(1)=0;
	    PFout(6)=1;//我所采用的调换挡位方法是从高到低 (从6档到1档)此处改挡位为6档
	     adcx=Get_Adc_Average(ADC_Channel_1,10);
	    LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值
	    temp=(float)adcx*(3.3/4095);
	    cons=temp;
	    adcx=cons;
	    LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值
	    cons-=adcx;
	    cons*=1000;
	    LCD_ShowxNum(172,150,temp,3,16,0X80);
	    if(temp>0.8196&&temp<3.2)//如果6档使电压满足的话就直接转为UPD测量函数
	    goto UPD; 
	     delay_ms(1000);
	 for(i=5;i>1;i--)//如果6档不满足的话就会到这个for循环 从6档 检测到 1 档 哪个适合用哪个测量
	    
		 { 
			    m=i+1;
			    PFout(m)=0;
			    PFout(i)=1;
			    
			    adcx=Get_Adc_Average(ADC_Channel_1,10);
			    LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值
			    temp=(float)adcx*(3.3/4095);
			    cons=temp;
			    adcx=temp;
			    LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值
			    cons-=adcx;
			    cons*=1000;
			    LCD_ShowxNum(172,150,temp,3,16,0X80);
			    if(temp>0.8&&temp<3.2)//此处就为哪个挡位适合 在哪个挡位跳for循环 进行测量函数(UPD就是测量函数)
			     break;
			       delay_ms(1000);
	          }
          }
		upd: //根据挡位不同进行不同的计算 得出电阻
			{
			switch(i)
			  {
			   case(1):
			   if(temp>2) // 1 dang
			  temp1=temp+temp/60;//+temp/10;
			  temp1=temp;
			   break;
			  
			  case(2):// 2dang
			  
			  temp1=temp+temp/100;
			  if(temp>2)
			  temp1=temp+temp/60;
			  break;
			  
			  case(3): //3dang
			   
			  temp1=temp+temp/100;
			  if(temp>2&&temp<=2.7)
			  temp1=temp+temp/60;
			  else if (temp>2.7)
			  temp1=temp+temp/40;
			  break;
			  
			  case(4): //4dang
			 
			  temp1=temp+temp/100;
			  if (temp>1.5&&temp<=2)
			   temp1=temp+temp/50;
			  else if(temp>2&&temp<=2.4)  
			  temp1=temp+temp/60;
			  else if (temp>2.4)
			  temp1=temp+temp/40;
			  break;
			  
			  
			  case(5)://5dang
			  temp1=temp+temp/45;
			  if(temp>2&&temp<2.7)
			  temp1=temp+temp/40;
			  else if(temp>=2.7)
			   temp1=temp+temp/30;
			     break;
			  
			  case(6)://6dang
			  temp1=temp+temp/100;
			  if(temp>2&&temp<2.5)
			  temp1=temp+temp/50;
			  else if(temp>=2.5)
			  temp1=temp+temp/10;
			   break;
			   }
			  }
}
			

相关案例查看更多