任务名称
2011年_G题:简易自动电阻测试仪【高职高专组】
任务要求
难度

一、任务
设计并制作一台简易自动电阻测试仪。
二、要求
1.基本要求
(1)测量量程为 100Ω、1kΩ、10kΩ、10MΩ四档。测量准确度为±(1%读数+2 字)。
(2)3 位数字显示(最大显示数必须为 999),能自动显示小数点和单位,测量速率大于 5 次/秒。
(3)100Ω、1kΩ、10kΩ三档量程具有自动量程转换功能。


2.发挥部分
(1)具有自动电阻筛选功能。即在进行电阻筛选测量时,用户通过键盘输入要求的电阻值和筛选的误差值;测量时,仪器能在显示被测电阻阻值的同时,给出该电阻是否符合筛选要求的指示。
(2)设计并制作一个能自动测量和显示电位器阻值随旋转角度变化曲线的辅助装置,要求曲线各点的测量准确度为±(5%读数+2 字),全程测量时间不大于 10 秒,测量点不少于 15 点。辅助装置连接的示意图如图 1 所示。
(3)其他 

三、说明
1.在辅助装置中,要求电位器为 4.7kΩ 旋转式单圈电位器, 并规定采用线性电位器。
2.要求电位器的三个端子作为测试端子引出。

评审标准

参考答案

GPT-4o给出的设计方案:


一、总体设计

设计一台简易的自动电阻测试仪,通过测量和分析旋转电位器的角度变化来测量电阻值,并在曲线显示装置上显示结果。系统的主要组成部分包括旋转电位器、驱动设备、电阻测试仪和显示设备。电阻测试仪根据旋转电位器的角度变化测量电阻值,并将数据传送给显示器。

二、简单论证

  1. 旋转电位器:用来模拟不同电阻值,通过旋转来改变阻值。
  2. 驱动设备(电机):用来精确控制旋转电位器的角度,确保电位器的旋转精度。
  3. 电阻测试仪:读取电位器的阻值并转换为数字信号,用于后续处理和显示。
  4. 显示设备:实时显示测得的电阻值和相应的曲线,提供用户直观的测量结果。

三、重要指标的理论分析

  1. 测量范围:100Ω、1kΩ、10kΩ、10MΩ四档,确保覆盖广泛的测量范围。
  2. 测量精度:±(1%读数 + 2字),确保测量精确。
  3. 数字显示分辨力:3位数字显示,最大显示数为999,确保能精确表示测量结果。
  4. 测量速度:>=5次/秒,确保快速响应。
  5. 自动量程转换:在不同档位间自动转换,确保无须手动切换。

四、电路原理图设计要点

  1. 旋转电位器和电机控制电路:

    • 使用步进电机驱动旋转电位器,确保控制精度。
    • 步进电机控制器接收来自MCU的控制信号,驱动电位器旋转。
  2. 电阻测量电路:

    • 使用桥式电路或电阻分压电路读出电位器的电压,输入到ADC转换器。
    • MCU通过ADC将模拟信号转换为数字信号。
  3. 显示和接口:

    • 使用LCD或LED数码管显示测量结果。
    • 实现与显示设备的通信接口,如I2C或SPI,用于数据传输。

五、核心器件设计要点

  1. MCU(如STM32系列):

    • 高速ADC用于精确测量电压。
    • GPIO控制步进电机的转动。
    • 通信接口用于与显示设备连接。
  2. 步进电机与驱动电路:

    • 高精度步进电机确保旋转电位器的角度精确。
    • 驱动电路需与MCU适配,能够接受数字输入信号并驱动电机。

MCU主要功能代码

#include "stm32f4xx.h"
#include "stdio.h"

// 定义步进电机控制引脚
#define STEP_PIN GPIO_PIN_0
#define DIR_PIN GPIO_PIN_1
#define STEP_PORT GPIOA

// 定义显示接口
#define I2C_ADDRESS 0x3C

ADC_HandleTypeDef hadc1;
I2C_HandleTypeDef hi2c1;

// 步进电机初始化
void Stepper_Init(void) {
    __HAL_RCC_GPIOA_CLK_ENABLE();
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = STEP_PIN | DIR_PIN;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(STEP_PORT, &GPIO_InitStruct);
}

// 步进电机步进控制
void Stepper_Step(int steps, int direction) {
    HAL_GPIO_WritePin(STEP_PORT, DIR_PIN, direction ? GPIO_PIN_SET : GPIO_PIN_RESET);
    for(int i = 0; i < steps; i++) {
        HAL_GPIO_WritePin(STEP_PORT, STEP_PIN, GPIO_PIN_SET);
        HAL_Delay(1);
        HAL_GPIO_WritePin(STEP_PORT, STEP_PIN, GPIO_PIN_RESET);
        HAL_Delay(1);
    }
}

// ADC初始化
void ADC_Init(void) {
    __HAL_RCC_ADC1_CLK_ENABLE();
    ADC_ChannelConfTypeDef sConfig = {0};
    hadc1.Instance = ADC1;
    hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
    hadc1.Init.Resolution = ADC_RESOLUTION_12B;
    HAL_ADC_Init(&hadc1);
    sConfig.Channel = ADC_CHANNEL_0;
    sConfig.Rank = ADC_REGULAR_RANK_1;
    sConfig.SamplingTime = ADC_SAMPLETIME_15CYCLES;
    HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}

// 读取电位器电阻值
uint32_t Read_Resistance(void) {
    HAL_ADC_Start(&hadc1);
    HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
    return HAL_ADC_GetValue(&hadc1);
}

// 显示初始化
void Display_Init(void) {
    // I2C初始化配置代码
    // 命令更新显示器
}

// 显示电阻值
void Display_Resistance(uint32_t resistance) {
    char buffer[10];
    sprintf(buffer, "%ld", resistance);
    // 通过I2C发送数据给显示设备
    // HAL_I2C_Master_Transmit(&hi2c1, I2C_ADDRESS, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
}

// 主函数
int main(void) {
    HAL_Init();
    SystemClock_Config();
    Stepper_Init();
    ADC_Init();
    Display_Init();
    
    while (1) {
        // 控制步进电机转动,测试不同电阻值
        for(int angle = 0; angle <= 360; angle += 45) {
            Stepper_Step(50, angle > 180);
            uint32_t resistance = Read_Resistance();
            Display_Resistance(resistance);
            HAL_Delay(1000);
        }
    }
}

// 系统时钟配置函数
void SystemClock_Config(void) {
    // 系统时钟配置代码
}

通过上述设计,简易的自动电阻测试仪能够在不同量程下准确测量电阻值,并在显示设备上实时显示结果。此外,步进电机的使用确保旋转电位器的角度转换精确,满足测量精度和响应速度的要求。


本题考察的主要知识点:

  1. 电阻测量:掌握基本电阻测量原理,包括如何读取电阻值并进行显示。
  2. 量程切换:熟悉不同电阻量程模块间自动切换的设计,确保测量准确性。
  3. 电机控制:通过步进电机精确控制旋转电位器的角度,以实现阻值的精确测量。
  4. MCU编程:设计以MCU为核心的测量和控制系统,编写相应的程序实现ADC采样、步进电机驱动和数据显示等功能。
  5. 数据处理与显示:处理从电阻测量得到的模拟信号并进行数字显示,包括三位数字显示、自动调整数值范围等。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号