您的当前位置:首页正文

福建农林大学工业控制实验报告(完整版)

2024-02-11 来源:好走旅游网
福建农林大学

工业控制技术实验报告

课程名称 姓名 实验名称 实 验 目 的 及 要 求 工业控制技术 班级 学号 机械电子班 实验日期 2015.5.21 实验成绩 Arduino控制板工作原理与编程 目的:(1)了解Arduino控制板工作原理; (2)熟悉Arduino的基本函数; (3)熟悉Arduino的编程环境与程序下载; (4)掌握Arduino的编程。 要求: (1)简要说明Arduino控制板的组成与工作原理; (2)熟记Arduino的基本函数; (3)熟练Arduino的工作环境和编程下载; (4)完成6位LED的花样(自行设定)走马灯编程与实现; (5)利用按键控制走马灯的亮暗; (6)提交经调试通过的程序一份并附实验报告一份(实验步骤、内容、结果及分析等) Arduino实验箱一套(包括:Arduino控制板一个,L298n驱动模块一个,USB下载线一个,走马灯6个, 按键一个,杜邦线若干,带编码器直流电机一个,二相步进电机两个,步进电机驱动器一个,12v电源一个,1602 液晶一个);装有最新Arduino的PC机一台及其它附件;数字示波器一台。 1) 了解Ardunino的运行与工作环境 2) 进行Ardunino的程序编写与编译, 下载 3) 走马灯程序 4) 按键控制走马灯 5) LED的渐亮与渐暗过程控制 实 验 环 境 实 验 内 容 实 验 步 骤 调

(用适当的形式表达算法设计思想与算法实现步骤) 1.准备好实验所需材料; 2.把走马灯与Arduino控制板连接好,公共端接到PWM输出口6,其余6端接到数字口 38,39,40,41,42,43; 3.编写控制程序,实现走马灯多种变化; 4.把下载线连接到电脑上进行下载; 5.观察实验现象看是否符合我们预期的; 6.如果没有达到我们预期的效果,则检查接线是否有错,程序是否正确; 7.通过不断的调试程序直到达到我们想要的结果; 8.试验完成后整理好自己的材料。 1

试 过 程 及 实 验 结 果 总 结 附 录 问题:编译通过无法上传。 解决方法:查看程序提示程序出错,修改程序。 结果:上传程序后,走马灯开始闪烁。先正循环点亮,后负循环点亮。 接着走马灯由暗逐渐变亮,最终达到最亮的效果,然后熄灭。 实验结果与预期结果一致。通过本次实验,我们对arduino程序编写、硬件等有了初步的认识。但是我们没能编写出更加复杂的程序,还需要继续学习。 #define PWM 6 unsigned char led[6]={38,39,40,41,42,43}; void setup() { for(int i=0;i<6;i++) pinMode(led[i],OUTPUT); pinMode(PWM,OUTPUT); } void loop() { for(int i=0;i<6;i++) {digitalWrite(led[i],HIGH); delay(1000); digitalWrite(led[i],LOW);} delay(1000); for(int i=5;i>=0;i--) {digitalWrite(led[i],HIGH); delay(1000); digitalWrite(led[i],LOW);} delay(1000); for(int k=0;k<256;k++) { analogWrite(PWM,k); delay(20); } delay(2000); for(int i=0;i<6;i++) {digitalWrite(led[i],LOW);} while(1); } 2

福建农林大学

工业控制技术实验报告

课程名称 姓名 实验名称 实 验 目 的 及 要 求 工业控制技术 班级 学号 机械电子班 实验日期 实验成绩 2015.5.28 直流电动机调压调速 目的:(1)了解直流电动机的工作原理; (2)熟悉LCD1602的编程; (3)掌握直流电动机测速与调压调速; (4)掌握示波器的使用方法; (5)掌握Arduino的测速编程. 要求:(1)简要说明带编码器直流电动机的工作原理; (2)熟悉直流电动机调压调速和测速过程; (3)熟练的使用示波器观察其波形; (4)熟练的进行LCD1602的显示编程; (5)提交经调试通过的程序一份并附实验报告一份(实验步骤、内容、结果及分析等) Arduino实验箱一套(包括:Arduino控制板一个,USB下载线一个, 杜邦线若干,带编码器 直流电机一个,12v电源一个,1602 液晶一个); PC机一台及其它附件; 可调电源一台; 数字示波器一台。 1) 利用可调电源对电动机进行调压调速 2) Ardunino的程序编写与编译, 下载 3) 利用示波器观察其波形 4) LCD1602速度显示程序 5) 绘出电压与速度之间的关系曲线 1.准备好实验所需材料。 2.把LCD1602与Arduino控制板连接好,电机与控制板和电源连接好; 3.编写速度显示程序并编译; 4.把下载线连接到电脑上进行下载; 5.调节电压并读出此时的电压值和速度值; 6.设计一个表格用于记录电压与速度值 7.绘出电压与速度曲线; 8.试验完成后整理好自己的材料。 实 验 环 境 实 验 内 容 实 验 步 骤 调 结 试 果 过 程 及

问题:无 解决方法: 实验结果:电机正常启动,正转加速,逐渐减速。随后反转加速,反转减速。 实验结果与预期相符合,不足之处在于调试程序花费了大量时3

总 结 附 录 间,效率太低。 #include #define CP 6 #define DIR 48 #define EN 49 unsigned int i; void setup() {pinMode(DIR,OUTPUT); pinMode(EN,OUTPUT); digitalWrite(EN,HIGH); //启动 InitTimersSafe();} void loop() {digitalWrite(DIR,LOW); //正转 for(i=100;i<=1000;i++) //逐渐加速 {SetPinFrequencySafe(CP,i); pwmWrite(CP, 127); delay(50);} delay(5000); for(i=1000;i>=100;i--) // 逐渐减速 {SetPinFrequencySafe(CP,i); pwmWrite(CP, 127); delay(50);} digitalWrite(DIR,HIGH); //反转 for(i=100;i<=1000;i++) //逐渐加速 {SetPinFrequencySafe(CP,i); pwmWrite(CP, 127); delay(50);} delay(5000); for(i=1000;i>=100;i--) // 逐渐减速 {SetPinFrequencySafe(CP,i); pwmWrite(CP, 127); delay(50);} digitalWrite(EN,LOW); //停止 } 4

福建农林大学

工业控制技术实验报告

课程名称 姓名 实验名称 实 验 目 的 及 要 求 工业控制技术 班级 学号 机械电子班 实验日期 实验成绩 2015.6.18 直流电动机PWM调速 目的: (1)了解直流电动机转速与转向控制原理; (2)熟悉L298N驱动模块的工作原理; (3)熟悉PWM调速原理; (4)掌握直流电动机PWM调速编程; 要求: (1)简要说明直流电动机转速与转向控制原理; (2)熟记L298N驱动模块的使用方法和工作原理; (3)熟练的通过PWM进行调速; (4)完成直流电动机PWM调速编程与实现; (5)编程实现直流电动机加速-匀速-减速过程; (6)提交经调试通过的程序一份并附实验报告一份(实验步骤、内容、结果及分析等) 实 验 环 境 实 验 内 容 实 验 步 骤 (Arduino实验箱一套(包括:Arduino控制板一个,L298N驱动模块一个,USB下载线一个,杜邦线若干,带编码器直流电机一个,12v电源一个,1602 液晶一个); PC机一台及其它附件; 可调电源一台; 数字示波器一台。 1) 通过改变占空比来调节电机速度 2) Ardunino的程序编写与编译, 下载 3) 用外用表测出不同占空比时对应的电机两端的电压 4) 由LCD1602读出不同占空比时对应的电机速度 5) 绘出占空比、电压和速度之间的关系曲线 1.准备好实验所需材料。 2.把Arduino、LCD1602、电机、L298N和可调电源连接好; 电机橙色和黄色线连接到L298N模块的OUT1和OUT2管脚上,IN1和IN2连接到Arduino 的数字口,ENA连接到带PWM输出的数字口,+5连接到Arduino的电源管脚上,模块上的VCC和GND连接到可调电源的正负极。 3.编写控制程序。 4.把下载线连接到电脑上进行下载。 5.用外用表测出不同占空比对应的电压值并记录。 6.由LCD1602读出不同占空比对应的电机速度并记录。 7.绘制出d、u、n之间的关系曲线。 5

8.试验完成后整理好自己的材料。 调 试 过 程 及 实 验 结 果 总 结 附 录 问题:接线错误。 解决方法:仔细检查接线后修改接线。 实验结果:电机由静止状态开始加速,达到最高速后保持2s,随后减速。LCD显示屏上显示电机转速。 我们最初的实验程序设计并没有得到想要的结果,最终在老师的指导下才调试出结果。对于这个复杂的电路,出错的地方有很多,做完这个实验我们才知道我们知识掌握的不全面,还需努力学习,然后学以致用。 #include #include #define pinA 2 #define IN1 15 #define IN2 16 #define EN 7 #define PWM 6 volatile unsigned long tt; unsigned int aa; unsigned char i,j,k,l; LiquidCrystal lcd(36,37,30,31,32,33); void setup() { pinMode(IN1,INPUT); pinMode(IN2,INPUT); pinMode(EN,INPUT); pinMode(pinA,INPUT); FlexiTimer2::set(500,GetCount); attachInterrupt(0,PulseCount,RISING); FlexiTimer2::start(); analogWrite(EN,HIGH); digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); lcd.begin(16,2); lcd.print(\"Speed:\"); } void loop() 6

{ for(int i=0;i<256;i+=20) {analogWrite(PWM,i); delay(2000);} analogWrite(PWM,255); delay(10000); for(int i=255;i>=10;i-=20) {analogWrite(PWM,k); delay(2000);} lcd.clear(); lcd.setCursor(6,0); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l); lcd.print(\"r/m\"); } void PulseCount() {tt++;} void GetCount() { noInterrupts(); //关闭总中断 aa=(tt*120)/334; tt=0; i=aa/1000; j=aa%1000/100; k=aa%100/10; l=aa%10; interrupts(); } 7

福建农林大学

工业控制技术实验报告

课程名称 姓名 实验名称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容 实 验 步 骤 调 试 过 程 及 实 验 结 果

工业控制技术 班级 学号 机械电子班 实验日期 实验成绩 2015.6.4 步进电动机转速转向控制 目的: (1)了解步进电动机工作原理; (2)熟悉步进电机驱动器使用方法; (3)掌握步进电动机转速转向控制编程. 要求: (1)简要说明二相步进电动机工作原理; (2)熟记步进电机驱动器的使用方法; (3)完成步进电动机转速转向控制编程与实现; (4)提交经调试通过的程序一份并附实验报告一份(实验步骤、 内容、结果及分析等)。 1、Arduino实验箱一套(包括:Arduino控制板一个,步进电机驱动器一个,USB下载线一个,杜邦线若干,步进电动机两个); 2、PC机一台及其它附件; 3、可调电源一台。 1) 熟悉驱动器的使用,设定动态电流和细分数; 2) 连接好驱动器与电机; 3) Ardunino的程序编写与编译, 下载; 4) 编程实现两步进电机的转速转向控制。 1. 准备好实验所需材料; 2. 把Arduino、步进电机、驱动器、可调电源连接好; 3. 编写控制程序; 4. 把下载线连接到电脑上进行下载; 5. 试验完成后整理好自己的材料。 问题:电机不动。 解决方法:首先检查程序,编译通过,上传成功。再检查线路,发现pwm并未接在6号口上,更正后重新编译上传,电机转动。 实验结果:电机运行后,先加速正转,后减速正转,逐渐停止。接着加速反转,后减速反转,直到停止。再重复上述流程。 8

总 结 附 录 实验中我们通过输入电压高低的转换来控制电机的正转与反转,通过控制电压大小来进行调速。实验时我们花费较多时间才得到结果,同时还接错了线路,耗费大量时间。 #define PWM 6 #define PIN 30 #define PIN 32 void setup() {pinMode(30,INPUT); pinMode(32,INPUT) ; pinMode(PWM,OUTPUT) ; } void loop() { digitalWrite(30,HIGH); digitalWrite(32,LOW); for(int i=0;i<255;i++) {analogWrite(PWM,i); delay(100);} for(int i=255;i>-1;i--) {analogWrite(PWM,i); delay(100);} digitalWrite(30,LOW); digitalWrite(32,HIGH); for(int i=0;i<255;i++) {analogWrite(PWM,i); delay(100);} for(int i=255;i>-1;i--) {analogWrite(PWM,i); delay(100);} } 注:打印手写均可

9

因篇幅问题不能全部显示,请点此查看更多更全内容