华东交通大学机械工程测试技术课程设计.docx
- 文档编号:11807618
- 上传时间:2023-04-02
- 格式:DOCX
- 页数:8
- 大小:437.36KB
华东交通大学机械工程测试技术课程设计.docx
《华东交通大学机械工程测试技术课程设计.docx》由会员分享,可在线阅读,更多相关《华东交通大学机械工程测试技术课程设计.docx(8页珍藏版)》请在冰豆网上搜索。
华东交通大学机械工程测试技术课程设计
测试技术课程设计
课题:
基于arduino的超重警报装置
学院:
机电与车辆工程学院
专业班级:
车辆工程
姓名:
学号:
一、设计目的
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个字符液晶模块(显示字符和数字)。
表1LCD1602液晶显示屏主要技术参数
图2LCD1602液晶显示屏实物图
表2LCD1602液晶显示屏引脚说明
其与Arduinod主板连接电路图如图3所示。
其中有引脚V0需要接入LCD调整电压来调节对比度,对比度过高或过低均会使屏幕无法正常显示,会显示一片黑或者一片亮光,我采用接入滑动电阻器进行调整以正常显示。
图3LCD1602液晶显示屏与Arduin
4.超重报警装置实现的原理非常简单,一句话表述就是:
压力传感器有一个自己的限值(5kg),当质量未超过限值5kg时,液晶屏则会显示该物体的重量,蜂鸣器不会发出声响;当物体质量超过限值5kg时,液晶屏则会显示“over”字样,同时蜂鸣器发出声响来提醒超重,当物体离开传感器,蜂鸣器响声延迟两秒。
当超重时,液晶屏上虽不显示重量,但在电脑上可以进行串口显示超重时的重量,这样就可以进行远程警报。
图4压力传感器
5.所需器件:
Arduino、压力传感器、面包板、液晶显示屏、蜂鸣器、电线电阻若干等等。
五、课程设计进度
准备好需要的模块,将线路接好,写好程序基本实现超重报警的功能,并用液晶显示屏显示出来,用蜂鸣器来提醒是否超重。
六、标定
本系统所采用的是压力传感器,内部采用AD转换模块,其输出信号已经经过其模块内部信号调理电路(放大电路)进行处理,再通过其程序进行计算和处理,就能够得到关于距离测重物体的重量的数据,不用特别进行标定。
七、学习心得
在本次小作品的制作过程中,我通过视频学习,对各个模块的连线和编程有了大致的了解。
例如:
LCD1602液晶显示屏、压力传感器的使用等。
通过本次的制作,我学会了制作一个简单测试系统所需要的步骤先是编写程序和连线,然后标定误差分析。
刚开始所设想的功能最终觉得实现起来太简单,所以想多添加几个功能,就需要多加几种程序。
在编写程序过程中,能更好的理解各个模块之间的联系以及数据是如何进行传输的。
Arduino是一个开源的系统,可以通过互联网下载免费获得库文件,从而大大简化了程序开发工作。
对于初学者来说比较好入门。
我就是通过老师给的视频以及网上的资源来完成本次制作。
连线主要是对着引脚图,像LED的连线会相对来说复杂一些,因为要连很多根线比较多的引脚,还要接入电阻调节背光。
因为背光太亮或者太暗就会看不清你所要显示的东西。
其他模块的连线都比较简单。
主要问题还是在编写程序上,一开始对于程序不是很懂也不知道怎么把各个模块连接在一起,然后向同学求教,大致对程序有个了解,然后开始把各个模块的程序拼接在一起,为了方便自己和别人易于迅速的读懂我的程序,还在程序必要的地方加上的注解。
附录一:
程序:
#include"HX711.h"
#include
#defineTrigPin6
#defineEchoPin7
//#defineFM8
#defineBuzzer9
LiquidCrystallcd(12,11,5,4,3,2);
intWeight=0;
voidsetup()
{
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("Welcometouse!
\n");
Get_Maopi();//获取毛皮
delay(3000);
Get_Maopi();//获取毛皮
pinMode(Buzzer,OUTPUT);
digitalWrite(Buzzer,LOW);//蜂鸣器初始为不鸣叫//蜂鸣器为IO输出
}
voidloop()
{
Weight=Get_Weight();//计算放在传感器上的重物重量
Serial.print(Weight);//串口显示重量
Serial.print("g\n");//显示单位
delay(1000);//延时1s
if(Weight>5000)
{
lcd.clear();
lcd.setCursor(0,1);//设置液晶开始显示的指针位置
lcd.print("over");
digitalWrite(Buzzer,HIGH);//蜂鸣器响
delay(2000);//延时20ms
digitalWrite(Buzzer,LOW);//蜂鸣器关闭
}
if(5000>Weight)//&&Weight>0
{lcd.clear();
lcd.setCursor(0,1);
lcd.setCursor(0,0);//设置液晶开始显示的指针位置
lcd.print("g=");//液晶显示“g=”
lcd.setCursor(0,1);//设置液晶开始显示的指针位置
lcd.print(Weight);
lcd.setCursor(4,1);
lcd.print("g");
//}
//if(0>Weight)
//{lcd.clear();
//lcd.setCursor(0,1);
//lcd.print("danger");
//digitalWrite(FM,HIGH);
}
//else
//digitalWrite(FM,LOW);
//delay(1000);//延时1000ms
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华东 交通大学 机械工程 测试 技术 课程设计