华东交通大学机械工程测试技术课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试技术课程设计
课题:基于arduino的超重警报装置
学院:机电与车辆工程学院
专业班级:车辆工程
姓名:
学号:
目录
一、设计目的 (3)
二、设计要求 (3)
三、设计任务 (3)
四、电路的总体结构 (4)
五、课程设计进度 (7)
六、标定 (7)
七、学习心得 (8)
附录一: (9)
一、设计目的
1.学会应用Arduino设计一个在超重时会有警报音和信息显示的装置。
2.能够通过设计掌握独立分析和解决实际问题的能力。
3.通过设计掌握Arduino的使用,并了解压力传感器的工作原理。
4.学会使用和查找设计有关的书籍和资料。
5.学会撰写课程设计总结报告,培养阐述,写作与表达能力。
二、设计要求
1.测试技术基础的基本理论为指导,将设计实验分为电路设计和编程,电路设计是指将Arduino与压力传感器连接起来,并连接其他模块设计出超重警报器的装置;编程指通过Arduino软件对系统发出指令实现物体超重时发出警报声和液晶屏显示的双提醒的功能。
2.使用Arduino,并了解压力传感器的原理。
3.学会使用液晶屏和分辨率的调整以及对整个测试系统的调试。
三、设计任务
设计一个测试物体重量的电路,测定物体重量并判断该物体是否超重,通过放大电路对信号进行放大,并通过结论对其进行相应的处理,未超重则显示测得重量;超重则液晶屏显示超重蜂鸣器响。
四、电路的总体结构
1.电路的总体功能框图,如图1所示。
图1 功能框图
2.图中所使用的AD转换模块是个24bit的AD模块,24bit的AD读出来的
值为0-16777216(2的24次方),如果用5v是基准电压,则其中AD值的1
表示5/16777216=0.000298mV,所以24bit的AD去读取mv左右的变化完全
可以。其内部自带放大,可以把输入信号放大128倍,然后再做处理。
3、LCD1602 液晶显示屏,能够同时显示16x2即32 个字符(16列2行)。1602液晶显示屏也叫1602字符型液晶显示屏,它是一种专门用来显示字母、
数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11 等点阵字符位组
成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之
间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显
示图形,但是可以很好的显示字符。LCD1602 是指显示的内容为16X2,即可以
显示两行,每行16个字符液晶模块(显示字符和数字)。
表1 LCD1602 液晶显示屏主要技术参数
带质量物体压力传感器Arduino 蜂鸣器
液晶显示屏
AD模块
内含放大电路
图2 LCD1602液晶显示屏实物图
表2 LCD1602 液晶显示屏引脚说明
其与Arduinod主板连接电路图如图3所示。
其中有引脚V0 需要接入LCD 调整电压来调节对比度,对比度过高或过低均会使屏幕无法正常显示,会显示一片黑或者一片亮光,我采用接入滑动电阻器进行调整以正常显示。
图3 LCD1602液晶显示屏与Arduin
4.超重报警装置实现的原理非常简单,一句话表述就是:压力传感器有一个自己的限值(5kg),当质量未超过限值5kg时,液晶屏则会显示该物体的重量,蜂鸣器不会发出声响;当物体质量超过限值5kg时,液晶屏则会显示“over”字样,同时蜂鸣器发出声响来提醒超重,当物体离开传感器,蜂鸣器响声延迟两秒。当超重时,液晶屏上虽不显示重量,但在电脑上可以进行串口显示超重时的重量,这样就可以进行远程警报。
图4 压力传感器
5.所需器件: Arduino、压力传感器、面包板、液晶显示屏、蜂鸣器、电线电阻若干等等。
五、课程设计进度
准备好需要的模块,将线路接好,写好程序基本实现超重报警的功能,并用液晶显示屏显示出来,用蜂鸣器来提醒是否超重。
六、标定
本系统所采用的是压力传感器,内部采用AD转换模块,其输出信号已经经过其模块内部信号调理电路(放大电路)进行处理,再通过其程序进行计算和处理,就能够得到关于距离测重物体的重量的数据 ,不用特别进行标定。
七、学习心得
在本次小作品的制作过程中,我通过视频学习,对各个模块的连线和编程有了大致的了解。例如: LCD1602液晶显示屏、压力传感器的使用等。通过本次的制作,我学会了制作一个简单测试系统所需要的步骤先是编写程序和连线,然后标定误差分析。刚开始所设想的功能最终觉得实现起来太简单,所以想多添加几个功能,就需要多加几种程序。在编写程序过程中,能更好的理解各个模块之间的联系以及数据是如何进行传输的。Arduino是一个开源的系统,可以通过互联网下载免费获得库文件,从而大大简化了程序开发工作。对于初学者来说比较好入门。我就是通过老师给的视频以及网上的资源来完成本次制作。连线主要是对着引脚图,像LED的连线会相对来说复杂一些,因为要连很多根线比较多的引脚,还要接入电阻调节背光。因为背光太亮或者太暗就会看不清你所要显示的东西。其他模块的连线都比较简单。主要问题还是在编写程序上,一开始对于程序不是很懂也不知道怎么把各个模块连接在一起,然后向同学求教,大致对程序有个了解,然后开始把各个模块的程序拼接在一起,为了方便自己和别人易于迅速的读懂我的程序,还在程序必要的地方加上的注解。
附录一:
程序:
#include "HX711.h"
#include
#define TrigPin 6
#define EchoPin 7
//#define FM 8
#define Buzzer 9
LiquidCrystal lcd(12,11,5,4,3,2);
int Weight = 0;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
lcd.begin(16,2); //初始化LCD1602
lcd.print("start"); //液晶显示start
delay(2000); //延时1000ms
lcd.clear();
//pinMode(FM,OUTPUT);//为IO带上拉输入
Init_Hx711(); //初始化HX711模块连接的IO设置
Serial.begin(9600);
Serial.print("Welcome to use!\n");
Get_Maopi(); //获取毛皮
delay(3000);