传感器与检测技术课程设计【案例1】——简易数显电子秤的设计与制作

文章目录

  • 任务目标
  • 一、数显电子秤的工作原理
  • 二、各模块设计
    • 1.应变传感器
    • 2.信号处理电路
    • 3.单片机和AD采样
  • 三、仿真和测试
    • 1.硬件仿真
    • 2.实际测试
    • 3.改进与优化
  • 总结

任务目标

称重技术是广泛应用于工业,农业,交通,贸易和科研等领域的重要技术,与社会发展、工业生产和人们生活息息相关,电子秤属于电子衡器,技术水平的高低,直接影响着生产生活质量和经济效益的发展。

技术指标 要求
量程 0-10kg
分辨率 1g
最大引用误差 <0.1%
绝对误差 <5g

以下是本篇文章正文内容,案例可供参考

一、数显电子秤的工作原理

电子秤采用单片机处理系统,通过称重传感器将被测量转换为电信号,经过对采样信号的处理和分析,实现重量信号的采集和转换,并利用单片机系统进行计算分析,最后通过显示设进行显示,能达到快捷,方便的重量信息显示。

总体设计方案如下图所示:

二、各模块设计

1.应变传感器

传感器模块选用10kg量程电阻应变式压力传感器,内部集成惠斯通电桥。实物图和具体技术参数如下图所示。


传感器灵敏度为1mV/V,若电桥的激励电压为10V,则满量程时电压差为10mV,假定电压差值与压力传感器受力呈线性关系,则变化率1uV/g。传感器模块与信号处理电路接线如下:

2.信号处理电路


信号调理电路大致可以分为桥路差动放大、跟随器、反向放大、低通滤波四部分。OPA2333搭建桥式放大器,AAD227搭建二级放大器。

原理图
首先通过差动放大,通过差分接法得到电桥差值并放大到合适的值。根据芯片数据手册定下放大倍数约100倍
电压跟随器在电路中可以作为隔离器,且具有高输入阻抗低输出阻抗的特点,可以防止前后电路产生干扰。由于芯片特性,输入电流不得大于20mA,因而在同相端串联一5kΩ电阻。该阻值对放大倍数不产生影响。
由于前面电桥产生差值为负电压,需要接入反相器使得电压转化为单片机可以测量的正电压,同时使受到放大器性能制约的差分放大电路可以进一步放大使得测量范围足够大。反相放大器的放大倍数Au = - ( Rf / Rin )

最终放大倍数 = (R2/(R1+350))(IN2-IN1)1(-R7/R6)≈300

3.单片机和AD采样

单片机部分选用STM32F103C8T6最小系统板,常用,便于快速编写。
由于需要采集uv级别的信号,芯片自带的12位ad不足以胜任任务的需要,编写SPI通信24位AD模块ADS1256。

驱动程序参考-》ADS1256驱动

主程序代码如下(示例):

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"
#include "exti.h"
#include "ADS1256.h"#define Au 300.0
int KeyState = 0;
char str[15],str2[15];void Delay(vu32 nCount)
{for(; nCount != 0; nCount--);
}
//定时器3 500ms一次中断
void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值    计数到5000为500msTIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM_ITConfig(  //使能或者失能指定的TIM中断TIM3, //TIM2TIM_IT_Update ,ENABLE  //使能);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设}void TIM3_IRQHandler(void)   //TIM3中断
{if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 {TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 printf(str);}
}int main(void)
{   long double vr,vout,vsum,v[50];unsigned char i=0,j=0;long ulResult;long double ldVolutage;delay_init();            //延时函数初始化  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2uart_init(9600);     //串口初始化为9600LED_Init();             //初始化与LED连接的硬件接口 LEDx=0;              //点亮LEDEXTIX_Init();        //外部中断初始化printf("OK\r\n");    Init_ADS1256_GPIO(); //初始化ADS1256 GPIO管脚 Delay(0x1ffFF);GPIO_SetBits(GPIOB, GPIO_Pin_11 );  ADS1256_Init();TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms  for(i = 0;i < 20;i++) v[i]=0;while(1){        for(i = 0;i < 1;i++){ulResult = ADS_sum( (i << 4) | ADS1256_MUXN_AINCOM);  //ulResult = ADS_sum( ADS1256_MUXP_AIN0 | ADS1256_MUXN_AINCOM);    if( ulResult & 0x800000 ){ulResult = ~(unsigned long)ulResult;ulResult &= 0x7fffff;ulResult += 1;ulResult = -ulResult;}ldVolutage = (long double)ulResult*0.59604644775390625;//printf("第%d通道:",(i & 0x07)?(i & 0x07) - 1:7);//sprintf(str,"%lf\r\n",ldVolutage);     //double//printf("uV\r");//printf("%x",(unsigned long)ulResult);//16Delay(0x3fFFF);}vsum = 0;for(i = 1;i < 20;i++){v[i] = v[i-1];vsum += v[i];vsum /= 2.0;}v[0] = ldVolutage;vsum += v[0];vsum /= 2.0;if(j<20){vr = vsum;j++;}vout = (vsum - vr) / Au;///20.0;sprintf(str,"%.0lf    ->   ",vsum);sprintf(str2,"%.0lf g\r\n",vout);}
}
//END

滤波算法采用连续采样20个值(小样本)求平均,实际表现效果良好。

三、仿真和测试

1.硬件仿真


仿真时方案放大倍数为240,后实际方案修改为300

桥路输出电压(mv) 对应物体重量 仿真输出电压
0.001 1g 241.999uV
0.01 10g 2.402mV
0.1 100g 24.001mV
1 1kg 239.997V
10 10kg 2.4V

2.实际测试

3.改进与优化

a)可以考虑修改成三运放构建差动仪表放大的方案。
b)通过实际测试数据进行拟合提高检测精度。
……


总结

本文仅仅简单介绍了简易数显电子秤的设计和制作,为后续其他教学项目的开展提供了样本和案例。

【检测技术课案】简易数显电子秤的设计与制作相关推荐

  1. 【检测技术课案】直流低电阻测试仪的设计与制作(二)

    上接 [检测技术课案]直流低电阻测试仪的设计与制作(一) 3 硬件设计 3.1 硬件结构 主要的硬件结构为电源.三层板和开尔文夹,具体硬件结构见实物图3-1. 图3-1 硬件实物图 3.2 电源管理 ...

  2. 【检测技术课案】直流低电阻测试仪的设计与制作(一)

    1 引言 1.1 研究背景与意义 在生产和实践中,常常需要对低电阻进行精确测量,如电机和变压器的线圈电阻,电闸接线端子和电缆插座的接触电阻,大功率电器开关的接触电阻等[1],这些电阻一般在MΩ级甚至μ ...

  3. Arduino 简易屏显电子温度计

    Arduino 简易屏显电子温度计 一.前言 二.硬件要求 三.参数基础 四.原理剖析 五.实验思路 六.程序概要 七.arduino使用接线 八.成果展示 九.总结 一.前言 温度计的使用,在日常生 ...

  4. 开关怎么使用_智能数显压力开关怎么使用?

    智能数显压力开关是一种高精度,高稳定性的传感器设备,在很多的领域内都会使用到,使用过程中有一些事项需要注意. 智能数显压力开关采用高精度.高稳定性能的压力传感器,再经专用 CPU模块化信号处理技术,实 ...

  5. 车辆仪表数显器E-mark认证流程是怎样的?

    车辆仪表数显器E-mark认证是欧洲经济委员会(Economic Commission of Europe,简称ECE)针对车辆仪表数显器出口或与整车配套出口至其成员国市场实施的一种技术要求,认证标准 ...

  6. 智能数显+过载报警,一个给你满满安全感的桌面PDU

    01产品简介 同为科技(TOWE)桌面PDU产品APZ-1014AV 品牌:同为(TOWE) 特点:大屏智能数显.过载欠压报警.专业跷板总控开关.3*1.5mm²加粗线芯 安装方式:两端固定安装/背面 ...

  7. 智能数显压力开关怎么使用?

    智能数显压力开关怎么使用? 智能数显压力开关是一种高精度,高稳定性的传感器设备,在很多的领域内都会使用到,使用过程中有一些事项需要注意. 智能数显压力开关采用高精度.高稳定性能的压力传感器,再经专用  ...

  8. 数显倾角传感器的应用

    数显倾角传感器的应用 倾角传感器的理论基础就是牛顿第二定律,根据基本的物理原理,在一个系统内部,速度是无法测量的,但却可以测量其加速度.如果初速度已知,就可以通过积分计算出线速度,进而可以计算出直线位 ...

  9. 服务器信号显示闪电,数显测电笔显示闪电的原因

    有关数显测电笔显示闪电的原因,包括按钮说明,数显测电笔的直接检测,间接检测与断点检测,测电笔适用于直接检测12-250v的交直流电和间接检测交流电的零线.相线和断点. 数显测电笔显示闪电的原因 数码测 ...

最新文章

  1. 青稞大义 -RISV-V
  2. c语言输入10个国名要求按字母顺序输出,编写程序,输入10至20个城市名,按字母顺序输出城市名清单。...
  3. 8位以上 密码 正则表达式
  4. access开发精要(9)-排序
  5. linux无法访问443端口,linux – 为什么我无法在Ubuntu上ping端口443?
  6. linux中split函数用法,Linux split命令参数及使用方法详解
  7. 关于用FOMR提交编码的问题
  8. 搞懂静态代码分析,看这文就够了!
  9. 用AI实现隔墙“透视”,准确率达97%,这家中国公司研究入选CVPR
  10. SpringBoot与缓存
  11. 3D Vision--生成空间任意圆柱及任意直线
  12. java识别照片是彩色还是黑白照
  13. java 拨通电话_android应用调用系统拨打电话
  14. 超好用!5款完全免费、支持全平台的笔记软件
  15. 计算机系统的还原及备份,怎么给电脑系统备份以及还原
  16. linux cads
  17. 装linux时电脑蓝屏如何解决,笔记本电脑开机蓝屏 怎么用u盘安装ubuntu
  18. 配置typora图片上传服务器
  19. 教育部高等学校大学计算机课程教学指导委员会,2018-2022教育部高等学校工科基础课程教学指导委员会2018年全体委员会议在北京召开...
  20. 电流环、速度环、位置环的优化

热门文章

  1. XML解析器列表(超全!)
  2. Metasploit---情报收集---被动情报收集
  3. C语言-求各位数之积(简易版)
  4. 在大数据和人工智能时代,我们是否需要分布式流处理?
  5. LAMP系统构建论文
  6. SAP上云——助力制造业数字化转型
  7. CentOS 7安装ELK日志分析系统
  8. python 地图偏移_python 地图经纬度转换、纠偏的实例代码
  9. 嵌入式教程:什么是物联网
  10. 升级php7+安装laravel过程中遇到的问题汇总