今天笔者要跟大家分享一下硬石有刷直流电机的基本控制,其实这款电机的控制是非常简单的,只需要给电机两端施加一个电压差,这个电压差大于电机的启动电压,电机就能实现旋转了。
本例中采用的是硬石的《直流有刷驱动板》跟硬石的《STM32F407开发板》来实现对直流有刷电机的控制。限于篇幅,就不再重头一步一步的来写操作步骤了,利用硬石现有的例程,简单分析一下硬件部分和主要代码。
首先,我们来看一下电机本身接口引脚图:
接下来,我们根据电机接口,将对应的线一一接到驱动板上,同时用排线直接插到STM32F407开发板上:
硬件链接好后,我们可以来看代码部分了,打开例程源码“直流有刷电机_按键控制”,虽然说,MDK编译的时候比较慢,但是笔者在这里还是选择用自己比较熟悉的MDK来进行讲解。另外顺便说下,用HAL库开发的程序,在MDK环境下编译很慢,可以在这里设置一下,把“Browse Infomation”前面的勾去掉,编译就会快很多了,当然,这样做的话,会导致代码追踪的时候追踪不了:
好了,言归正传,现在我们来看代码部分。由于不是硬石的购买用户,所以没找到使用手册(硬石部分资料是只针对购买用户开发,不过硬石的视频教程中,有“直流无刷电机专题”,讲的还是很详细的),所以,就直接来看代码吧,还在,硬石的每个工程源码中都有“例程功能说明”,这也是一个值得我们借鉴的好习惯。
从上述例程功能说明中,我们可以清楚的看到,这个例程,就是通过5个按键分别来控制电机的加速、减速、正转、反转、停止这五个状态。
首先,我们来配置这五个按键的输入模式,将其均配置成了“输入上拉模式”:
接下来,为每个按键专门写了一个函数,来获取按键的状态,以KEY1为例,其他都是一样的方式:
接下来,我们看下按键逻辑部分,结合例程功能说明,相信应该很容易就能看明白:
按键KEY1和按键KEY2,是通过按键按下时,改变PWM_Duty的值,然后再通过SetMotorSpeed(PWM_Duty) 函数来根据PWM_Duty的值改变电机的速度:
按键KEY3和按键KEY4是通过调用SetMotorDir()函数,来改变电机的方向:
按键KEY5直接关闭了PWM和他的互补通道的输出,从而让电机停止。
将程序编译后,下载到程序中,然后按不同的按键,就可以看到效果了:http://v.youku.com/v_show/id_XMzk0MDU1OTYwNA==.html
原创作品,未经权利人授权禁止转载。详情见转载须知。