桂花蒸

2011 Electric Competition G Question Simple Resistance Tester

 
Overview

题目要求
题目分析
根据题目可知,电路主要设计换挡部分和电阻测量部分,换挡部分我采用了四个继电器,四个挡位使被测电阻分别与100Ω、1KΩ、10KΩ、1MΩ进行分压,再通过单片机ADC采集被测电阻两端电压,即可换算出被测电阻的阻值,设被测电阻和基准电阻上的电压分别为Vx、Vo,根据分压关系可得被测电阻的阻值为:Rx=(Vx/Vo)/R。由于手头上没有M以上的电阻所以基础部分就搞了一堆电阻随机来测。
发挥部分(1)通过一个矩阵键盘输入阻值跟被被测电阻进行对比。
发挥部分(2)通过L298电机驱动控制电机带动电位器旋转,再通过单片机ADC采集被测电位器和基准电阻上的电压,通过实时采集到的数据在OLED打点画出电位器变化波形。原理图设计说明
换挡电路
PCB设计说明
电源线、地线及印制导线在PCB上的排列要恰当,尽量做到短而直,以减小信号线与回线之间所形成的环路面积。电源线走大一些。
软件说明
软件部分主要是ADC采集

void ADC_Configuration(uint8_t ch)

{   

  __RCC_ADC_CLK_ENABLE(); 

__RCC_GPIOA_CLK_ENABLE();

ADC_SingleChTypeDef ADC_SingleInitStruct;

if(ch == 0)

{

PA00_ANALOG_ENABLE();

ADC_SingleInitStruct.ADC_Chmux = ADC_ExInputCH0; 

}

else if(ch == 1)

{

PA01_ANALOG_ENABLE();

ADC_SingleInitStruct.ADC_Chmux = ADC_ExInputCH1; 

}

  ADC_SingleInitStruct.ADC_DiscardEn = ADC_DiscardNull;

  ADC_SingleInitStruct.ADC_InitStruct.ADC_AccEn = ADC_AccDisable;

  ADC_SingleInitStruct.ADC_InitStruct.ADC_Align = ADC_AlignRight;   

  ADC_SingleInitStruct.ADC_InitStruct.ADC_ClkDiv = ADC_Clk_Div16;   

  ADC_SingleInitStruct.ADC_InitStruct.ADC_DMAEn = ADC_DmaDisable;  

  ADC_SingleInitStruct.ADC_InitStruct.ADC_InBufEn = ADC_BufEnable; 

  ADC_SingleInitStruct.ADC_InitStruct.ADC_OpMode = ADC_SingleChOneMode;   

  ADC_SingleInitStruct.ADC_InitStruct.ADC_SampleTime = ADC_SampTime10Clk; 

  ADC_SingleInitStruct.ADC_InitStruct.ADC_TsEn = ADC_TsDisable;   

  ADC_SingleInitStruct.ADC_InitStruct.ADC_VrefSel = ADC_Vref_VDDA;

  ADC_SingleInitStruct.ADC_WdtStruct.ADC_WdtAll = ADC_WdtDisable;    

  ADC_SingleChOneModeCfg(&ADC_SingleInitStruct);

  ADC_Enable();    

ADC_SoftwareStartConvCmd(ENABLE);

}

float Get_ADC() 

{

uint16_t temp_dat_adc = 0;

ADC_SoftwareStartConvCmd(ENABLE);

while(ADC_GetITStatus(ADC_IT_EOC))

{

ADC_ClearITPendingBit(ADC_IT_EOC);      

temp_dat_adc=ADC_GetConversionValue();

}

return (float)temp_dat_adc;

}


实物展示
注意事项
CW32引脚驱动能力比较强,刚开始我控制换挡的三极管基极没有上拉,导致四个继电器都处于打开状态,后面通过一个20K上拉到5V,继电器才能通过单片机正常开关。
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-08-08 16:38:03
  • Current sharing technology in parallel operation of inverters
  • Keil c51 code and RAM variable addressing problem
  • eboot~~~
  • QT make has problems
  • MSP430G2553 flash operation example
  • I want to make a network port to serial port driver, please give me some ideas

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号