目录第1章直流电机的原理与驱动 (2)1.1 让你的DC Motot-Kit迅速转起来——PWM开环实验 (3)1.1.1 基于EasyARM101开发板 (3)1.1.2 基于EasyARM615开发板 (4)1.1.3 基于EasyARM8962开发板 (5)1.1.4 基于SmartARM2300开发板 (6)1.2 让你的DC Motot-Kit迅速转起来——PID算法闭环实验 (7)1.2.1 基于EasyARM101开发板 (7)1.2.2 基于EasyARM615开发板 (8)1.2.3 基于EasyARM8962开发板 (10)1.2.4 基于SmartARM2300开发板 (11)1.3 直流电机概述 (13)1.3.1 直流电机的特点、基本工作原理 (13)1.3.2 直流电机的电器特性 (13)1.3.3 PWM控制直流电机原理 (15)1.3.4 PWM驱动的闭环控制 (16)1.3.5 PWM双极性驱动原理 (17)1.3.6 PID算法的原理及应用 (20)Motor-Kit直流电机模块电路原理 (24)1.4 DC1.4.1 电路原理图 (24)1.4.2 接口说明 (24)1.4.3 H桥驱动 (26)1.4.4 PWM输入电路 (27)1.4.5 电流检测电路 (28)1.4.6 红外测速电路 (28)1.5 软件说明 (30)1.5.1 PWM开环程序 (30)1.5.2 PID算法闭环程序 (37)1.5.3 数据队列使用说明 (52)1.5.4 串口通讯协议 (57)第1章直流电机的原理与驱动电机是把电能转换成机械能的装置。
电机的种类繁多,如果按电源类型分,可分为直流电机和交流电机两大类。
常见的直流电机包括有刷电机、无刷电机、步进电机等。
直流有刷电机是所有电机的基础,它具有启动快、制动及时、可在大范围内平滑地调速、控制电路相对简单等特点。
如果没有特别说明,本文所提到的直流电机均指直流有刷电机。
DC MOTOR-KIT是致远公司推出的一款基于PID算法的直流电机实验板,如图 1.1所示。
它外型轻巧,性能优异,可用7根杜邦线连接到广州致远电子有限公司推出的ARM系列开发板上使用,包括群星系列基于Cortex-M3内核的开发板,或 NXP系列基于ARM7内核的开发板。
图 1.1 DC Motor-Kit实物图1.1 让你的DC Motot-Kit迅速转起来——PWM开环实验在负载一定的情况下,直流电机的转速和供电电压成正比。
本实验使用PWM方波驱动电机,通过改变PWM的占空比来调节电机两端的平均电压,实现粗略的调速。
关于PWM 调速的原理,本文1.3节将有详细说明。
1.1.1基于EasyARM101开发板1.实验原理本实验使用EasyARM101的单路简易PWM信号来驱动DC Motor-Kit。
通过改变PWM 的占空比来调节电机两端的平均电压,实现粗略的调速。
实验使用EasyARM101的KEY1和KEY2两个按键来改变PWM的占空比,每按动一次就改变10%;EasyARM101的数码管显示当前的PWM占空比,例如显示“5”表示占空比为50%;LED1和LED2分别表示电机正转和反转;另外还有过流报警的功能,如果电机被堵转,EasyARM101的蜂鸣器就会报警。
本实验的电路工作原理和程序说明将在1.4节和1.5节分别详细说明。
2.实验步骤(1)对EasyARM101进行短路设置;用短路帽分别把JP1的KEY1与PB1、KEY2与PB3、LED2与PB5、MISO与PA4、SCLK与PA2、SSEL与PA3、MOSI与PA5和BUZZ与PB2短接,JP1的其它跳线不能被短路;另外使用杜邦线连接JP1的LED1和J1的PB6。
(2)用短路帽短接电机模块的J3“单”端处,表示使用单路PWM驱动。
(3)用杜邦线连接EasyARM101的J1和电机板的J2相关的引脚,如表 1.1所示。
表 1.1 EasyARM101 PWM开环管脚连接EasyARM101 J1 电机模块 J2+5V 5VPB0 PWMAPB4 CURRENTPA0 SPEED1PA1 SPEED2GND GND(4)连接EasyARM101开发板的电源和仿真器。
(5)如果使用CrossStudio软件,把光盘上的相关工程复制到硬盘,编译后用H-JTAG仿真头下载程序到EasyARM101上;如果使用Keil软件,把光盘上的相关工程复制到硬盘,编译后用ULink或ULink2仿真器下载程序到EasyARM101上。
注:两个例子工程分别使用了CrossStudio和Keil默认安装目录下的DriverLib.lib 驱动库文件。
如果你的CrossStudio或Keil安装目录不是默认的,请在工程中重新指定库文件的路径。
(6)按一下EasyARM101的复位键,让开发板脱机运行。
(7)按动EasyARM101的KEY1和KEY2键,调节电机的转速;观察数码管的LED1和LED2的显示情况。
注:数码管显示PWM的占空比,即电机的转速档位;LED1表示正转,LED2表示反转。
(8)用手堵住电机不让其转动,聆听蜂鸣器是否报警。
注意:在某些占空比的情况下,堵转时电流仍然不大,不会报警。
1.1.2基于EasyARM615开发板1.实验原理本实验使用EasyARM615的两路带死区的互补PWM信号来驱动DC Motor-Kit。
通过改变PWM的占空比来调节电机两端的平均电压,实现粗略的调速。
实验使用EasyARM615的KEY1和KEY2两个按键来改变占空比,每次按动将改变10%的占空比,实验开始时默认占空比为50%。
LED1和LED4分别表示电机正转和反转,另外还有过流报警的功能,如果电机被堵转,EasyARM615的蜂鸣器就会报警。
本实验的电路工作原理和程序说明将在1.4节和1.5节分别详细说明。
2.实验步骤。
(1)对EasyARM615进行短路设置;用短路帽分别把JP2的KEY1与PD4、KEY2与PD5、LED1与PD7、LED2与PC5、LED3与PC6、LED4与PC4、BUZZ与PA5短接,其它跳线不能被短路;(2)用短路帽短接电机模块的J3“双”端处,表示使用双路PWM驱动。
(3)用杜邦线连接EasyARM615的J3、J6和电机板的J2相关的引脚,如表 1.2所示。
表 1.2 EasyARM615 PWM开环管脚连接EasyARM615 J3和J6 电机模块 J2+5V 5VPD0 PWMAPD1 PWMBPB4 CURRENTPA0 SPEED1PA1 SPEED2GND GND(4)连接EasyARM615开发板的电源和仿真器。
(5)如果使用CrossStudio软件,把光盘上的相关工程复制到硬盘,编译后用H-JTAG仿真头下载程序到EasyARM615上;如果使用Keil软件,把光盘上的相关工程复制到硬盘,编译后用ULink或ULink2仿真器下载程序到EasyARM101上。
注:两个例子工程分别使用了CrossStudio和Keil默认安装目录下的DriverLib.lib 驱动库文件。
如果你的CrossStudio或Keil安装目录不是默认的,请在工程中重新指定库文件的路径。
(6)按一下EasyARM615的复位键,让开发板脱机运行。
(7)按动EasyARM615的KEY1和KEY2键,调节电机的转速;观察LED1、LED2、LED3和LED4的显示情况。
注:LED2和LED3显示PWM占空比改变情况;LED1表示正转,LED4表示反转。
(8)用手堵住电机不让其转动,聆听蜂鸣器是否报警。
注意:在某些占空比的情况下,堵转时电流仍然不大,不会报警。
1.实验原理本实验使用EasyARM8962的两路带死区的互补PWM信号来驱动DC Motor-Kit。
通过改变PWM的占空比来调节电机两端的平均电压,实现粗略的调速。
实验使用EasyARM8962的KEY1和KEY2两个按键来改变占空比,每次按动将改变10%的占空比,实验开始时默认占空比为50%。
LED3和LED4分别表示电机正转和反转,另外还有过流报警的功能,如果电机被堵转,EasyARM8962的蜂鸣器就会报警。
本实验的电路工作原理和程序说明将在1.4节和1.5节分别详细说明。
2.实验步骤(1)对EasyARM8962进行短路设置;用短路帽分别把JP2的KEY1与PE2、KEY2与PE3、LED1与PF3、LED2与PF2,JP3的LED3与PB6、LED4与PC5、BEEP与PA7短接,其它跳线不能被短路;(2)用短路帽短接电机模块的J3“双”端处,表示使用双路PWM驱动。
(3)用杜邦线连接EasyARM8962的J3和电机板的J2相关的引脚,如表 1.3所示。
表 1.3 EasyARM8962 PWM开环管脚连接EasyARM8962 J3 电机模块 J2+5V 5VPB0 PWMAPB1 PWMBPB4 CURRENTPA0 SPEED1PA1 SPEED2GND GND(4)连接EasyARM8962开发板的电源和仿真器。
(5)如果使用CrossStudio软件,把光盘上的相关工程复制到硬盘,编译后用H-JTAG仿真头下载程序到EasyARM8962上;如果使用Keil软件,把光盘上的相关工程复制到硬盘,编译后用ULink或ULink2仿真器下载程序到EasyARM101上。
注:两个例子工程分别使用了CrossStudio和Keil默认安装目录下的DriverLib.lib 驱动库文件,请使用最新的驱动库,旧的驱动库不支持Luminary 100脚系列的单片机。
另外,如果你的CrossStudio或Keil安装目录不是默认的,请在工程中重新指定库文件的路径。
(6)按一下EasyARM8962的复位键,让开发板脱机运行。
(7)按动EasyARM8962的KEY1和KEY2键,调节电机的转速;观察LED1、LED2、LED3和LED4的显示情况。
注:LED1和LED2显示PWM占空比改变情况;LED3表示正转,LED4表示反转。
(8)用手堵住电机不让其转动,聆听蜂鸣器是否报警。
注意:在某些占空比的情况下,堵转时电流仍然不大,不会报警。
1. 实验原理本实验使用SmartARM2300的两路软件模拟死区的PWM 信号来驱动DC Motor-Kit 。
通过改变PWM 的占空比来调节电机两端的平均电压,实现粗略的调速。
实验使用SmartARM2300的KEY1和KEY2两个按键来改变PWM 的占空比,每按动一次就改变10%,LED7和LED8分别表示电机正转和反转。
本实验的电路工作原理和程序说明将在1.4节和1.5节分别详细说明。