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

   日期:2020-10-18     浏览:93    评论:0    
核心提示:利用简单电阻分压原理自动测量电阻1.直接展示while循环函数2.需要外接继电器进行工作

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

注意点
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;
			   }
			  }
}
			
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服