实验目的
本节视频的目的是掌握GPIO模拟输出PWM的方法,学习直流电机的控制原理,并实现直流电机的控制。
实验原理
硬件原理图,看到有 2 个直流电机接口,可分别连接直流有刷电机和直流无刷电机。实验箱上只预留一个直流电机的位置,出货默认配置的是直流有刷电机。其中驱动直流有刷电机的管脚分别为:GPIO0[13]和 GPIO0[15]。
控制直流无刷电机的管脚为GPIO5[15]和 GPIO5[8]。其中直流无刷电机内置霍尔传感器,霍尔传感器是根据霍尔效应制
作的一种磁场传感器,用于测量直流无刷电机的转速。
直流有刷电机
直流有刷电机是内含电刷装置的将直流电能转换成机械能或将机械能转换成直流电能的旋转电机。区别于直流无刷电机,电刷装置是用来引入或引出直流电压和直流电流的。直流有刷电机是所有电机的基础,它具有启动快、制动及时、可在大范围内平滑地调速、控制电路相对简单等特点。
改变直流有刷电机电机速度的最有效方式是采用脉宽调制技术,改变pwm信号的脉冲宽度可以调节电机的速度。脉冲高低电平间的比例称为pwm信号的占空比。
直流有刷电机具有良好的启动和调速性能,常应用于对启动和调速有较高要求的场合,如高速电梯、电力机车、地铁列车等生产机械中。
直流无刷电机
无刷直流电机由电动机主体和驱动器组成,是一种典型的机电一体化产品。无刷电机是指无电刷和换向器的电机,又称无换向器电机。电动机的转子上粘有已充磁的永磁体,为了检测电动机转子的极性,在电动机内装有位置传感器。驱动器由功率电子器件和集成电路等构成,其功能是:接受电动机的启动、停止、制动信号,以控制电动机的启动、停止和制动等等。无刷直流电机可应用于汽车、工具、工业工控、自动化以及航空航天等等。
直流无刷电机&直流有刷电机的区别
直流无刷电机和直流有刷电机的区别主要有四点,
第一,是否配置有常用的电刷-换向器。
第二,直流无刷是基于交流调速原理基础上制造出来的,性能方面既有直流电机的启动转矩大,转速稳定调速方便,又有交流电机的结构简单没有易损件。
第三,直流无刷电机大部分都自带驱动电路,驱动起来只要给它接上额定电压后,输入调速PWM信号就可以了。这点无需再添加专门的驱动电路。
第四,直流无刷电机因为有霍尔元件做反馈所以转速几乎是稳定恒速的。
PWM基本原理
脉冲宽度调制即是PWM,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。主要的特点是脉冲,也就是方波的宽度调节,重点在于占空比控制上。
占空比是指高电平在一个周期中所占的比例。
我们看下图示的PWM波形,其中可调脉冲宽度t指高电平的时间,恒定的脉冲周期T是固定频率。
PWM基本原理
在PWM调速系统中,一般可以采用定宽调频、调宽调频、定频调宽3 种方法改变控制脉冲的占空比。
定宽调频指的是脉冲宽度t不变,改变频率,即改变周期T;
调宽调频指的是同时改变脉冲宽度t和周期T;
定频调宽指的是周期T不变,改变脉冲宽度。
但是前两种方法在调速时改变了控制脉宽的周期,从而引起控制脉冲频率的改变,当该频率与系统的固有频率接近时将会引起振荡。为避免这个,本实验设计采用定频调宽改变占空比的方法来调节直流电动机电枢两端电压。
定频调速是在脉冲波形的频率不变的前提下,通过改变一个周期波形中高电平的时间从而改变波形的占空比,从而改变平均电压,调整电机的转速。
程序流程
程序流程设计中首先要进行电机初始化,接着进行定时器和定时器中断初始化,然后进行LCD显示及触摸初始化,接着初始化并配置LVGL,最后进行LCD触摸检测并控制直流电机的转动。
轻量级通用型图形库
LVGL是轻量级通用型图形库,是一个免费的开放源代码图形库,是高度可裁剪、低资源占用、界面美观且易用的嵌入式系统图形库。它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。
主要特性包括提供功能强大的构建块,例如按钮,图表,列表,滑块,图像等,提供带有动画,抗锯齿,不透明,平滑滚动的高级图形,允许各种输入设备,例如触摸板,鼠标,键盘,编码器等。
管脚复用源码
基于StarterWare控制外设时可调用对应的API接口,无需配置复杂的寄存器。GPIO管脚复用配置的函数源码可以查看GPIO.c。
方向配置源码
配置GPIO管脚方向的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。
数据配置源码
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
定时器配置源码
配置定时器的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是用于配置定时器模块。
周期配置源码
配置定时器周期的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是要设置周期的定时器,第三个参数是设置的周期大小。
定时器使能源码
配置使能定时器的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是要使能的定时器,第三个参数是配置使能定时器的模式。
软件操作
导入工程,选择Demo文件夹下的对应工程,导入直流有刷电机和直流无刷电机的程序。
依次编译两个工程
以直流有刷电机的程序为例,将CCS连接实验箱并加载程序
点击运行程序,LCD会显示控制界面,可通过点击 LCD 屏幕上的按钮控制电机的转动速度和方向,同时LCD 屏幕会显示转动方向和 PWM 的占空比。
Motor Dir 表示转动方向,正方向转动为 Forward,反方向转动为 Backward;
DutyCycle表示占空比;
Change代表改变转动方向
Up代表加速
Down代表减速
Stop代表停止转动
实验结束后,建议先按下Stop 按钮,让电机停止转动,然后点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
接着可以查看直流无刷电机的实验现象,直流无刷电机内含霍尔测速,可测量电机速度。
将CCS连接实验箱并加载程序
点击运行程序,LCD会显示控制界面,可通过点击 LCD 屏幕上的按钮控制电机的转动速度和方向,同时LCD 屏幕会显示转动方向和 PWM 的占空比。
Motor Dir 表示转动方向,正方向转动为 Forward,反方向转动为 Backward;
DutyCycle表示占空比;
Speed代表转动速度
Change代表改变转动方向
Up代表加速
Down代表减速
Stop代表停止转动
实验结束后,建议先按下Stop 按钮,让电机停止转动,然后点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。