资讯详情

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

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

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

标签: 回生电阻原理

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台