模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762
43---有刷直流马达速度控制实验:
硬件需求:PC机,PCM模块一个,microUSB线,L298N_电机驱动模块,12V/1A直流电
源,有刷直流电机1个,导线若干;
软件需求:PCM编译软件,app软件NeTorch TCP & UDP;
供电方式:12V电源供电给电机驱动模块,电机驱动模块输出的5V给PCM模块供电;
连接电路:如图65
图65 有刷直流马达速度控制实验电路
PCM模块有4个有刷直流马达控制通道,分别为马达1(A0,B0),马达2(A1,
B1),马达3(A2,B2),马达4(A3,B3). L298N_电机驱动模块可以同时驱动2个
马达。本实验使用A0,B0控制1个马达。马达上接一个速度编码器,此速度编码器只要输
出脉冲信号就可以了,此实验不判断马达旋转方向。
本实验使用的是一个小型直流马达,接了一个正交旋转编码器,720线,即旋转一
圈有720个脉冲输出,此编码器有AB相输出,因为不判断旋转方向,所以只使用A相信号
输出,即只记录脉冲信号。
编程思路:
使用一个定时器,设置为周期性定时,定时周期为0.02秒。设置马达的PWM频率为
10Khz.设置好PID的Kp,Ki,Kd值,此值要根据实际情况调试。设置好脉冲计数为最大值中
断,设置脉冲值为30000个脉冲,即脉冲计数达到30000个脉冲时会执行中断程序。设置
好WIFI,设置好TCP服务器模式,通过手机APP网络调试助手NeTorch TCP & UDP软件
改变马达的速度,单位是圈/秒。
程序运行时,会每0.02秒执行一次定时中断程序,在定时中断程序中读取脉冲计数
值,用此值减去上次的计数值,就是此周期的脉冲计数值。此计数值除以编码器线数
720,再除以周期0.02秒,即为马达的运行速度,单位圈/秒。然后使用PID指令计算设定
速度与运行速度的差异,输出值叠加到控制马达速度的占空比上,最终马达会稳定在设
定的速度上运行。
图66为手机端APP网络调试助手截图,采用HEX模式发送数据,每次发送一个字
节,表示马达的设定速度,单位为圈/秒。输入不同的值,可以观察马达的速度会相应变