这是我们电路测试的直流电机学习作品,软件是quartus,用了我一个礼拜的时间,附件里是源程序、波形图、电路图,分享给大家,希望对大家学习有一些帮助。
直流电机实验 一、实验目的 1、学习直流电机的工作原理和控制方式,了解PWM控制原理 2、熟悉QuartusⅡ软件的相关操作,掌握数字电路设计的基本流程; 3、掌握混合编辑法进行编辑的基本方法,熟悉软件环境的参数配置,仿真,管脚分配,下载等基本操作。 二、实验原理 1.直流电机: ①定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。 ②直流电机的两根控制引脚A和B,电流流入的大小决定了电机的转速。当用脉冲波输入时,周期恒定时,占空比大的平均电流就大,平均电流越大,转速越高,等效于占空比越大,转速越高,所以可以用PWM(Pulse Width Modulation)方式来控制转速;通过脉冲波输入的引脚来控制方向。 ③本实验中采用RF-310T-11400型号直流电机,同时配有光耦测速模块。通过检测输出脉冲来检测电机转速。
2.设计原理框图:
3.混合编辑法步骤: (1)建立新工程 a)指定新工程名称; b)选择需要加入的文件和库; c)选择目标器件; d)选择第三方EDA工具; e)结束设置。 (2)建立文件 File→New→Device Design Files…,建立多个VHDL文本文件。 (3)输入程序代码 (4)创建图元 File→Create/update→Create Symbol File for Current File→生成*.bsf格式的图形文件。生成的图元符号在顶成设计中作为模块使用。 (5)建立原理图文件并添加图元符号 (6)连接各模块并命名 (7)编译工程 (8)仿真 a) 系统默认为时序仿真。 b) 功能仿真 Assignment→Setting→Simulator Setting…,单击Processing→Generate Functional simulation Netlist→单击波形仿真按钮; 仿真结果正确后,继续后续步骤。 (9)引脚分配 Assignment→Pins… (10)下载验证 a)对引脚分配后必须再重新编译; b)配置下载电缆--Tools→Programmer…; c)JTAG模式下载--下载文件为 *.sof;d)Active Serial 模式下载--下载文件为 *.pof;
三、实验设备 1、微机 1台 2、直流电机 1台 3、Windows 操作系统 4、QuartusII 8.0或9.0应用软件 四、实验步骤 1、按照实验准备将相应的跳线连接好,调节拨码开关选择对应的模块; 2、打开QuartusⅡ软件,采用混合编辑法编辑直流电机的电路图和程序:新建一个工程,找到本次实验每个模块的源程序,并将每个模块编译成图元符号文件,该图元符号可以在顶层原理图文件中作为模块使用;新建一个顶层原理图文件,在其中将原理图输入,即添加各个模块的图元符号并连接各个模块;编译工程;仿真;将程序下载到实验平台上。 3、将en置高(SW4拨上),LED8亮表示可以调速,将start置高(SW1拨上)电机开始工作,调动direct(SW2)控制电机转动方向,按F1键加快电机转速,当达到最高速时,LED1指示灯亮,按F2键电机减速,当达到最小时,LED3指示灯亮;在调节转速时,观察数码管上显示的电机转速,表示每秒多少转,即rps。 注意:由于电机的驱动电流原因,在刚开始的增速过程中,要增加到一定程度时,输出相应的电流才能驱动电机。即按键F1起初按下的几次,电机会没有反映,多按几次就好了。
五、实验内容 1. 用VHDL语言设计一个直流电机控制器,要求方向可控(可正转、反转),速度可控制加速和减速,并可测速,用数码管显示当前转速 2. 用QuartusⅡ软件进行编译、下载到实验平台上进行验证。 (1) 仿真电路:
(2) 操作步骤 ① 建立VHDL文本文件,输入各个模块的代码; 1) 分频模块(div):
2) 比较模块(cmp):
3) 测速模块(rate):
4) 方向控制模块(mux1) 5) 调速模块(cnt16 6) 标准阶梯波产生器(cnt16_bz) 7) 按键检测模块(key_check 8) 显示模块(xianshi)
② 创建图元文件: 1) 分频模块(div): 2) 比较模块(cmp): 3) 测速模块(rate): 4) 方向控制模块(mux1): 5) 调速模块(cnt16) 6) 标准阶梯波产生器(cnt16_bz) 7) 按键检测模块(key_check) 8) 显示模块(xianshi) ③ 建立原理图文件并添加图元符号: 连接后的原理图如图所示:
④ 建立波形图文件:
如图,时钟信号clk为50MHz, oc_pulse信号为50MHz; 反相信号direct周期为480ns; start信号置为高电平; en置为高电平; 加速、减速信号speed_up、speed_down都为周期为30ns的时钟信号,且不同时起效。 ⑤ 仿真结果: 如图,仿真方式为功能仿真
④结果分析 1) 从波形图中可以看出,当方向控制信号direct改变时,电机信号立即从motorA变为motorB,即实现了正转和反转的切换,方向可控。 2) 从波形图中可以看出,当减速信号speed_down置高,加速信号speed_up为时钟信号时,电机加速,即电机的占空比逐渐增大;当加速信号speed_up置高,减速信号speed_down为时钟信号时,电机减速,即电机的占空比逐渐减小,即实现了速度可控制。 3) 从data[2..0]的波形可以看出,可以实现测速,将实时速度显示出来; 4) 从数码管a-g的波形可以看出,显示器可以将当前转速通过数码管显示出来; 5) 当电机速度减至最小时,speed_min为低电平,速度增到最大时,speed_max为低电平,说明可以正常显示速度为最大、最小时的情况
六、总结和问题讨论 1. 调试方法:可以先将每个模块分别运行,通过输入模拟信号仿真使其保证实现正常功能后再连接成完整电路,可以提前得知需要修改和调试的模块 2. 体会和建议:只有仔细思考代码之后的逻辑才能更好地理解实验、做好实验。
|