任务名称
2016年_G题:简易电子秤
任务要求
难度

一、任务

设计并制作一个以电阻应变片为称重传感器的简易电子秤,电子秤的结构如右图所示。如右图所示,铁质悬臂梁固定在支架上,支架高度不大于 40cm,支架及秤盘的形状与材质不限。悬臂梁上粘贴电阻应变片作为称重传感器。

二、要求

  1. 电子秤可以数字显示被称物体的重量,单位克(g);(10 分)
  2. 电子秤称重范围 5.00g~500g;重量小于 50g,称重误差小于 0.5g;重量在 50g 及以上,称重误差小于 1g; (50 分)
  3. 电子秤可以设置单价(元/克),可计算物品金额并实现金额累加; (15 分)
  4. 电子秤具有去皮功能,去皮范围不超过 100g; (15 分)
  5. 其他。 (10 分)
  6. 设计报告: (20 分)

三、说明

  1. 称重传感装置需自制,不得采用商用电子称的称重装置。
  2. 铁质悬臂梁可用磁铁检验,悬臂梁上所用电阻应变片的种类、型号、数量自定。
  3. 测试时以砝码为重量标准。
参考答案

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


一、设计方案

  1. 传感器:采用电阻应变片作为传感器,贴在杠杆上检测形变引起的电阻变化。
  2. 支架设计:支架可用金属或硬质塑料,高度不超过40cm,结构需要确保稳固。
  3. 秤盘设计:秤盘放置待称物体,与支架通过杠杆连接。
  4. 放大电路:使用运算放大器将传感器输出的微弱电压信号放大。
  5. ADC:利用模数转换器(ADC)将模拟信号转化为数字信号。
  6. MCU:控制、显示和功能实现(去皮、计算金额等),使用STM32系列单片机。

二、重要指标及理论分析

  1. 重量范围和精度

    • 秤重范围:5g到500g。
    • 精度要求:5g以内误差小于0.5g,50g及以上误差小于1g。
    • 公式:电阻应变片电阻变化ΔR = k * ε * R0,其中k为灵敏度系数,ε为应变,R0为初始电阻。
  2. 显示

    • 数字显示对应重量,单位为克。
    • 可设置单价并计算金额。
  3. 去皮功能

    • 支持去皮功能,比较一次称重值和当前归零值,通过MCU实现。

三、原理图设计要点

  1. 应变片电桥电路:应变片连接成惠斯登电桥(Wheatstone Bridge)。

    • 四个臂:两个为应变片电阻,两个为精密电阻。
    • 平衡电桥:无负载时输出电压接近零,有负载时基于应变差形成电压差。
  2. 放大电路:使用运算放大器(如INA125)放大电桥输出的微弱信号。

    • 放大倍数设定:足够高以便ADC能够采样。
  3. ADC电路:将放大后的信号输入到MCU的ADC引脚。

    • 分辨率至少为12位。

四、核心器件设计要点

  1. 电阻应变片

    • 高灵敏度、低滞后、良好稳定性,应变片贴胶注意均匀、防止滑移。
  2. 运算放大器(如INA125)

    • 低噪声、高增益、带宽充足。
  3. ADC(内置于MCU,如STM32F401)

    • 分辨率12位或以上,速率适中。

C代码示例(STM32)

以下示例为简化的C代码,展示如何采集重量数据并计算金额:

#include "stm32f4xx_hal.h"

ADC_HandleTypeDef hadc;
UART_HandleTypeDef huart;

float price_per_unit = 0.1;  // 设置单价,单位:元/克

void SystemClock_Config(void);
void Error_Handler(void);
static void MX_GPIO_Init(void);
static void MX_ADC_Init(void);
static void MX_USART2_UART_Init(void);

int main(void) {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_ADC_Init();
    MX_USART2_UART_Init();

    HAL_ADC_Start(&hadc);
    while (1) {
        HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY);
        uint32_t adc_value = HAL_ADC_GetValue(&hadc);
        float weight = convert_to_weight(adc_value);
        float amount = weight * price_per_unit;

        char buffer[50];
        sprintf(buffer, "Weight: %.2f g\nAmount: %.2f yuan\n", weight, amount);
        HAL_UART_Transmit(&huart, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
        HAL_Delay(1000);
    }
}

float convert_to_weight(uint32_t adc_value) {
    // 基于ADC值转换为重量
    // 具体的转换公式需校准得出
    return (float)adc_value * 0.1;
}

static void MX_ADC_Init(void) {
    ADC_ChannelConfTypeDef sConfig = {0};
    hadc.Instance = ADC1;
    hadc.Init.Resolution = ADC_RESOLUTION_12B;
    HAL_ADC_Init(&hadc);
    sConfig.Channel = ADC_CHANNEL_0;
    HAL_ADC_ConfigChannel(&hadc, &sConfig);
}

static void MX_USART2_UART_Init(void) {
    huart.Instance = USART2;
    huart.Init.BaudRate = 115200;
    HAL_UART_Init(&huart);
}

void SystemClock_Config(void) {/* 系统时钟配置 */}
void Error_Handler(void) {while(1);}
static void MX_GPIO_Init(void) {/* GPIO 初始化 */}

总结

该简易电子秤的设计利用了电阻应变片、运放放大器和MCU进行数据采集、处理和显示,满足了题目要求的重量范围、精度以及扩展功能。量程和精度的设定通过电阻应变原理及放大-模数信号转换实现,电路设计简洁且具有良好的实用性。


这个题目考察的主要知识点:

  1. 电阻应变片传感器的工作原理与应用:理解如何使用电阻应变片传感器测量物体重量,并在电子秤中进行实现。
  2. 电子秤设计与构造:掌握电子秤的设计方法,包括支架、秤盘及其配件的选材和结构设计。
  3. 数据处理与误差分析:能够通过电路测量数据,进行数字显示和误差分析,实现精准称重。
  4. 电路设计:包括如何设计并实现测量电路,特别是放大电路和模数转换电路的设计及调试。
  5. 编程与算法实现:如果使用MCU或FPGA,需要理解相关编程语言(如C、Verilog)的使用,进行数据处理和功能实现。
 
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号