- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工业控制技术实验指导书3.doc
实验三 直流电动机PWM调速(3学时)
1.1 目的
(1)了解直流电动机转速与转向控制原理;
(2)熟悉L298N驱动模块的工作原理;
(3)熟悉PWM调速原理;
(4)掌握直流电动机PWM调速编程;
1.2 要求
(1)简要说明直流电动机转速与转向控制原理;
(2)熟记L298N驱动模块的使用方法和工作原理;
(3)熟练的通过PWM进行调速;
(4)完成直流电动机PWM调速编程与实现;
(5)编程实现直流电动机加速-匀速-减速过程;
(6)提交经调试通过的程序一份并附实验报告一份(实验步骤、内容、结果及分析等)
1.3 预备知识:
L298N驱动模块的工作原理
电机
旋转
方式
控制端
IN1
控制端
IN2
输入PWM信号改变
脉宽可调速 调速端
ENA
M1 正转 高 低 高 反转 低 高 高 停止 低 低 高
直流电机电源线接IN1和IN2,Arduino上带有PWM输出数字口接到ENA上可调速。编码器线按上次试验接法。白色可调电源正负极接到模块上的VCC和GND上。
PWM调速原理
平均值u为:u=(t1*U)/(t1+t2)
= (t1*U)/T=d*U
式中d为占空比,d=t/T
占空比越大,平均电压越高,速度则越大,
所以通过调节占空比可以调速。
1.4实验内容
1) 通过改变占空比来调节电机速度
2) Ardunino的程序编写与编译, 下载
3) 用外用表测出不同占空比时对应的电机两端的电压
4) 由LCD1602读出不同占空比时对应的电机速度
5) 绘出占空比、电压和速度之间的关系曲线
1.5实验步骤
准备好实验所需材料。
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之间的关系曲线。
8.试验完成后整理好自己的材料。
1.6 实验设备
Arduino实验箱一套(包括:Arduino控制板一个,L298N驱动模块一个,USB下载线一个,杜邦线若干,带编码器直流电机一个,12v电源一个,1602 液晶一个);
PC机一台及其它附件;
可调电源一台;
数字示波器一台。
1.7思考
(1)如何通过程序来控制电机加速-匀速-减速?
(2)分析d、u、n之间的关系。(重点)
1.8提高部分(选做)
通过PID算法实现电机转速的控制。
利用4X4矩阵键盘调节电机转速。
1.9部分程序样例
1.
#include LiquidCrystal.h
#include FlexiTimer2.h
LiquidCrystal lcd(36,37,30,31,32,33);
unsigned char keyvalue[4][4]={{0},{0},{0},{0}};
unsigned char key;
volatile unsigned long tt;
unsigned int aa;
unsigned char i,j,k,l;
unsigned int table[13]={51,68,85,102,119,136,153,170,187,204,221,238,255};//对应不同的占空比
#define PinA 2 //中断0
#define IN3 42
#define IN4 43
#define DUTY 6
void keyscan() // 扫描按键
{
for(int i=22;i26;i++)
{
digi
文档评论(0)