发作品签到
标准版

2011年电赛G题简易电阻测试仪

工程标签

1.7k
0
0
2

简介

本项目是基于武汉芯源半导体有限公司生产CW32F030C8T6作为主控,设计方案被测电阻与基准电阻串联,在其两端施加电压,通过ADC采集被测电阻两端电压,即可换算出被测电阻的阻值。

简介:本项目是基于武汉芯源半导体有限公司生产CW32F030C8T6作为主控,设计方案被测电阻与基准电阻串联,在其两端施加电压,通过ADC采集被测电阻两端电压,即可换算出被测电阻的阻值。

开源协议

GPL 3.0

创建时间:2023-06-05 13:10:46更新时间:2023-07-27 01:54:18

描述

题目要求

PY21zvTg0vOgmwsDkhhVFfHdfu8J0sIBammGTbi7.png

3OMNTqWSPgYOxfFWY8z66VKtbgQh1OiOYwrGeNx5.png

题目分析

根据题目可知,电路主要设计换挡部分和电阻测量部分,换挡部分我采用了四个继电器,四个挡位使被测电阻分别与100Ω、1KΩ、10KΩ、1MΩ进行分压,再通过单片机ADC采集被测电阻两端电压,即可换算出被测电阻的阻值,设被测电阻和基准电阻上的电压分别为Vx、Vo,根据分压关系可得被测电阻的阻值为:Rx=(Vx/Vo)/R。由于手头上没有M以上的电阻所以基础部分就搞了一堆电阻随机来测。

发挥部分(1)通过一个矩阵键盘输入阻值跟被被测电阻进行对比。

发挥部分(2)通过L298电机驱动控制电机带动电位器旋转,再通过单片机ADC采集被测电位器和基准电阻上的电压,通过实时采集到的数据在OLED打点画出电位器变化波形。
oF5i0q6WAHaQU1PjFVoP5Wpzv2TkXTw2bHxzoqwk.png

原理图设计说明

换挡电路

ZJiQ3jyunQ2yv6fi71acLv7u6gzYHivQrt7IMtns.png

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

实物展示

8GBvKnHXQ8KHUAMmuU4DWl673MtF6LnSlna7v91F.jpeg

注意事项

CW32引脚驱动能力比较强,刚开始我控制换挡的三极管基极没有上拉,导致四个继电器都处于打开状态,后面通过一个20K上拉到5V,继电器才能通过单片机正常开关。

设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
10.1uC10,C13,C18C06033
210uC16,C17C12062
3SS34_C266553D1,D2,D3,D4SMA_L4.4-W2.8-LS5.4-RD4
4SS24D5SMA_L4.3-W2.6-LS5.2-RD1
5DC005-2.0MMDC1DC-IN-TH_DC0051

附件

序号文件名称下载次数
1
54392b987e8a9358ad62493537a5f2d.jpg
57
2
CW32_MX_LV_BS.zip
109
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航