• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【风采汇】+纸张计数显示装置

2019电赛选题:纸张计数显示装置(F题)

1.设计内容中文摘要

设计并制作纸张计数显示装置,其组成如图 1 所示。两块平行极板(极板 A、极板 B)分别通过导线 a 和导线 b 连接到测量显示电路,装置可测量并显示置于极板 A 与极板 B 之间的纸张数量。

1 纸张计数显示装置组成

2.设计方案工作原理

2.1系统结构工作原理

根据设计任务要求,并尽可能达到最好,该系统的总体框架可分为几个基本的模块,框图如(图2)所示:

2 系统总体框图

2.2极板方案分析比较

1)极板论证与选择

方案1:金属板材。

电阻率较低,导电性能较好。但是也有如下缺点:金属板材厚度即板材前后左右四面会有电场,形成电场的边缘效应对平板电容的影响,所以若直接用不考虑边缘效应时的平行板电容器公式去计算所测介质的介电常数,其结果就会偏大,若其大于测量误差,边缘效应的影响便不可忽略,有必要对测量结果进行修正;金属板材纯度越高强度越低;部分金属引出导线有难度,例如铝;并且如果采取全金属,外界对电极板电容干扰较大。

方案2:双面覆铜板(具有过孔工艺)。

铜厚度仅为0.3mm,尽可能平行,方便引出导线,并且双面覆铜板另一面可以形成静电屏蔽,从而降低外界对测量的干扰。但是不具有过孔工艺,引出导线有难度。由于本身极板电容比较小,外界干扰很容易影响电容值,从而形成误差。

综合考虑,选择方案2.

 

(2)导线的论证与选择

方案1:杜邦线:市面上500mm需要定制,材料有铁和铜,铁线阻抗高于铜线,抗干扰能力差。并且,杜邦线的绝缘层较薄,外界比较容易对其产生影响。

方案2:屏蔽线:抗干扰能力强,阻抗小,但是外壳接地有点难度。

由于本题测量电容值较小,所以主要考虑减少外界干扰的影响,因此尽量减少外界因数,综合考虑,选择方案2

 

2.3极板机械结构分析比较

方案1:通过卡住A4双面覆铜板的形式,测量纸张数。

3  SolidWorks建模图

实物图

 

方案2:用三根钢轴连接上下俩个平面,连接处用含油轴承保持顺滑度,三点确定一平面,使上下俩个面时刻处于水平位置,通过直升的形式,卡主纸张,测量纸张数。

 

5  SolidWorks建模图

 

图6  实物图

综合考虑,由于双面覆铜板过孔使极板接触面产生突起,测量时不能完全贴紧纸张,所以选择方案1

 

3.核心部件电路设计

3.1关键器件的论证与选择

1MCU的论证与选择

方案1STM32系列芯片具有功耗低、片内资源丰富等优点,功能强大。

方案2:MSP430一种16位超低功耗,虽然比51单片机功能强大。但是msp430仍有可能工作速度跟不上。

方案3STC89C52系列芯片具有抗干扰能力强、保密性能强悍,很难被破解的优点。但是其功耗较高,运行速度慢,故不采用此方案。

由于本题要进行大量的数据分析,并且stm32操作简单,资料丰富。综合考虑,选择方案1

 

(2)传感器的论证与选择

方案1TI公司的FDC2214 是面向电容式传感解决方案的抗噪声和 EMI、高分辨率、高速、多通道电容数字转换器系列。该系列器件采用基于窄带的创新型架构,可对噪声和干扰进行高度抑制,同时在高速条件下提供高分辨率。该系列器件支持宽激励频率范围,可为系统设计带来灵活性。宽频率范围对于导电液体感测的可靠性特别有用。FDC2214 经过优化,分辨率高达 28 位,250nF 超大最高输入电容支持使用远程传感器并跟踪环境随时间、温度和湿度的变化情况。

方案2:使用NE555芯片产生振荡,给极板充电,构成一个充放电回路,设置一个振荡电路的频率,然后通过单片机来检测电路变化,他频率变化对应纸张的张数。

由于FDC2214是工业级别的,具有28位,NE555达不到这样的精度的,并且自身存在这零点漂移和干扰,综合考虑,选择方案1

 

3.2核心电路设计仿真

1STM32F103RCT6最小系统板     

2 STM32F103RCT6最小系统板原理图

(2)FDC2214电容数字转化器

图 7 FDC2214电容数字转化器原理图

通道CH0ACH0B分别连接两个极板,测量出电容值,通过内部转化为一个数值,单片通过I2C读取数据进行处理。

内部转化公式为:Csensor=1/L*(2Π*fsensor)-C

3)蜂鸣器  

           图 8 BEE原理图  

          图 9 BEE的PCB

当被测纸张固定后,一键启动测量,程序给I/O口高电平,三极管SS8050导通,有源蜂鸣器发出声响。

41602液晶屏

1602液晶屏通过PCF8574两条双向总线(I2C)实现I/O的扩展,与单片机进行通信,且PCF8574输出锁存具有大电流驱动能力,可直接驱动LED

4.系统软件设计分析

软件部分主要分成菜单界面设计和数据采集和处理部分,程序流程图如下。

5.竞赛工作环境条件

5.1设计分析软件环境

1)编程环境:Keil MDK5

2)编程语言:C语言

5.2仪器设备硬件平台

可编程线性直流源、函数信号发生器、数字示波器、万用表、数字电桥TH2816B

5.3配套加工安装条件

电钻、热熔胶枪、雕刻机、热风枪、雕刻刀、倒角刀、3D打印机等

6.作品成效总结分析

6.1制作结果

     经过四天三夜的努力,我们将纸张计数显示装置设计制作完成,经过不断的调参,都达到了预期的目标,电路方面,我们使用FDC2214,较为成功的拟合出电容的曲线,但是精度还有待提高,机械方面,我们的通过3D打印技术,做出来的机械结构非常的实用,使两个板之间相对平行,进一步减小误差,使测量更加精确。

6.2 结论与心得

通过这次比赛,我们受益匪浅。学习到了很多全新的知识,对电容测距以及3D打印技术有了更多的了解和认识。在制作的过程中,我们也遇到了很多难题。比如一开始我们就遇到了硬件选择的难题:我们本来准备了比较坚硬的厚环氧树脂板,切出来后发现环氧树脂板整体不水平,导致一天的机械结构设计白费;后来又设计了四角固定A4双面覆铜板的方式,并考虑重物的选择,避免金属对实验产生干扰,我们用4个塑小料瓶装满沙子作为重物,并用3D打印出了固定小瓶的座子,虽然后面没采用,但是仍是个加重好方法;在四角固定的方式在实验时,同时又设计了一套直升压紧纸张的装置,可惜由于嵌入的双面覆铜板过孔有突起,并不能压紧纸张,只能放弃。我们连夜用3D打印机做出各种结构,但是都不怎么管用。最后还是采用A4板边缘固定的方式。反复的尝试、实验,再修改耗费了我们大量的时间和精力。但我们相互鼓励安慰,从不放弃,努力找出原因,突破难点,一步一步走出困境。

这四天三夜,有遗憾同样也有收获。我们体验到了团队的力量,沟通的重要性以及遇到困难不退缩迎难而上的宝贵精神。最后感谢学校以及全国大学生电子设计竞赛组委会给我们提供这么优秀的平台和机会。

全部回复(7)
正序查看
倒序查看
2019-11-05 10:37

这道题很有意思,难度不大。

一、FDC2214

FDC2214资料:/upload/community/2019/11/05/1572919304-41413.pdf

1、FDC2214为工业级28/12位电容数字转换器,在信号传输距离非常短的情况下它可以测一包纸(500张);

2、FDC2214为差分输入,屏蔽线另一端不用接到回路里,也不能用双绞线,因为双绞线上存在耦合电容。

二、机械结构

1、机械结构重点就是“压紧”;随着纸张数的增加,拟合曲线趋于平缓,提高精度必须得压紧两个极板;

2、我的方案是在上面放了一个铁块,不是很好,而且下级板之固定了四角,会产生形变,导致误差得出现。

3、赛场上有亚克力板“压紧”、机械臂“压紧”、衣服夹子“压紧”等等。

三、程序

由于本人水平有限,拟合得不是很好,就不献丑了。

2
回复
ccccclay
LV.1
3
2019-11-05 12:01
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2
回复
ccc___ccc
LV.1
4
2019-11-05 16:18
@ccccclay
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
有木有其他方案?
0
回复
2019-11-05 17:04
@ccc___ccc
有木有其他方案?

有的

第二种是采集电压信号;

第三种NE555方案,也能测到100张往上。

0
回复
2019-11-20 09:47

坐等更新 让我们学习学习啊

0
回复
2019-11-23 22:08
@QC过河记
这道题很有意思,难度不大。一、FDC2214FDC2214资料:/upload/community/2019/11/05/1572919304-41413.pdf1、FDC2214为工业级28/12位电容数字转换器,在信号传输距离非常短的情况下它可以测一包纸(500张);2、FDC2214为差分输入,屏蔽线另一端不用接到回路里,也不能用双绞线,因为双绞线上存在耦合电容。二、机械结构1、机械结构重点就是“压紧”;随着纸张数的增加,拟合曲线趋于平缓,提高精度必须得压紧两个极板;2、我的方案是在上面放了一个铁块,不是很好,而且下级板之固定了四角,会产生形变,导致误差得出现。3、赛场上有亚克力板“压紧”、机械臂“压紧”、衣服夹子“压紧”等等。三、程序由于本人水平有限,拟合得不是很好,就不献丑了。

#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "timer.h"

#include "led.h"

#include "fdc2214.h"

#include "McuDataSend.h"

#include "1602_iic_sw.h"

#include "moniiic.h"

#include "keybroad.h"

#include "beep.h"

void Sys_Init(void);

float res0,res1,res2,res3;float temp0,temp1,temp2,temp3;

int main(void)

BEEP_Init();  

Sys_Init(); 

init_1602(); 

while(1) 

{

//Oled_Printf_Float(0,1,res0-temp0,0);

//Oled_Printf_Float(0,3,res1-temp1,0);

//Oled_Printf_Float(0,5,res2-temp2,0);

//Oled_Printf_Float(0,7,res3-temp3,0); 

//printf("CH0;%3.3f CH1;%3.3f CH2;%3.3f CH3;%3.3f\r\n",res0-temp0,res1-temp1,res2-temp2,res3-temp3);                  

printf("CH0;%3.3f \r\n",res0); //printf("CH0;%3.3f CH1;%3.3f CH2;%3.3f\r\n",res0-temp0,res0,temp0); //setCursor(3, 0); //ShowxNum(4);                 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//delay_ms(20);

}

}

u8 set=0 ;

/*int main(void){  u8 x , y; BEEP_Init();  Sys_Init(); init_1602(); while(1) { x=KEYPAD_Scan(); if((x==16)&&(set==0))      {                setCursor(6, 0);                lcdPrint("WELCOME!");       lcdPrint("      1 auto correct");                setCursor(1, 1);                lcdPrint("PLEASE SELECT MODE"); lcdPrint(" 2 measure papers");            } if((x==15)&&(set==1)) { Clear();                setCursor(6, 0);                lcdPrint("WELCOME!");       lcdPrint("      1 auto correct");                setCursor(1, 1);                lcdPrint("PLEASE SELECT MODE"); lcdPrint(" 2 measure papers"); delay_ms(10);     set=0;     } if((x==0)&&(set==0)) {                    Clear();                    delay_ms(1);                     setCursor(0, 0);                    lcdPrint("1 auto correct");                    setCursor(0, 1);                    lcdPrint("30 papers:");                     //写显示数值                    delay_ms(10); set++; } else if((x==1)&&(set==0)) {                    Clear();                    delay_ms(1);                    setCursor(0, 0);                    lcdPrint("2 measure papers");                    //显示数值                    delay_ms(10); set++; }    }}*/

void Sys_Init(void)

delay_init();     //延时函数初始化   

NVIC_Configuration();//设置NVIC中断分组2:2;2位抢占优先级,2位响应优先级 

uart_init(115200); //串口初始化为115200 while(FDC2214_Init()); 

delay_ms(100); temp0 = 232021045.248/Cap_Calculate(0);//读取初始值 TIM5_Ctrl_Init(2000-1,720-1);}//定时器5中断服务程序

void TIM5_IRQHandler(void)   //TIM5中断{ if(TIM5->SR&0X0001)//20ms定时中断 { res0 = Cap_Calculate(0);//采集数据// Data_Send_Status(res,0,0);// printf("%5d : %5d : %5d\r\n",res0,res1,res2); led=~led; } TIM5->SR&=~(1<<0);  //中断标志位清0,等待下一次中断}

0
回复
2020-04-10 13:42

请问下你电路仿真用的什么软件   我用的很多元器件找不到

0
回复