在此项目中,我将向您展示如何将伺服电机与STM32F103C8T6蓝色药丸板接口,并使用电位计和MCU的内置PWM功能控制它。通过了解如何使用STM32控制伺服电机,您可以在几个基于STM32的高级项目中使用这些知识。
介绍
伺服电机是工业自动化的工作马。例如,它们通常用于工业机器人技术,自动化设备,CNC机器等。
进入嵌入式系统,小型塑料齿轮型伺服电机在业余爱好者和初学者中非常受欢迎。它们用于小型机器人,机器人臂,太阳能电池板定位和其他相关项目。
TowerPro SG90是在小型嵌入式应用中使用的最流行的伺服电动机类型之一。甚至我在几个基于Arduino的应用程序中都使用了相同的功能。
在这个项目中,我将演示与STM32F103C8T6蓝色药丸板的伺服电机接口。在实施此项目时,我无法访问常用的TowerPro SG90伺服电机。
但是我有一个更大的塔普罗MG 996R金属齿轮伺服电动机,我在另一个机器人应用中使用了它。我将解释此伺服电机的规格,您可以关注该项目,因为即使使用较小的SG 90伺服电动机。
关于MG 996R伺服电机的简短说明
TowerPro的MG 996R数字伺服电动机是带有金属齿轮的高扭矩伺服电机。与1.8公斤SG90相比,它的平均失速扭矩为10kg。
MG996R的旋转角度约为120度,即在任一方向上60度。与SG90伺服器的180度旋转相比,这一点少。
以下是MG996R伺服电机的规格列表。
- 重量 - 55克
- 失速扭矩 - 4.8V时为9.4 kgf-cm,在6V时为11 kgf-cm
- 电压 - 4.8V - 7.2V
- 运行电流 - 500mA - 900mA,6V
- 失速电流 - 2.5a在6V
像SG90一样,MG996R也有三个销钉,橙色PWM引脚,红色VCC引脚和棕色的接地销。PWM信号的周期为20ms,位置为0、60和-60的位置可以设置为脉冲1.5ms,2ms和1ms。
与STM32F103C8T6的接口伺服电机
即使MG 996R伺服电动机更大且功能强大,但相对于MCU的连接与SG90伺服电机相似。橙线必须连接到MCU的任何PWM引脚。
为了控制位置,可以使用电位计,并且根据ADC的读数(其输入为锅),可以调整旋转角度。
电路原理图
下图显示了将伺服电机与STM32F103C8T6蓝色药丸板接口的电路图。
需要组件
- STM32F103C8T6蓝色药板
- 伺服电机
- 10kΩ电位器
- 连接电线
- USB到uart适配器(如果通过UART编程)
连接解释了
对于此项目,我们必须使用STM32F103C8T6 MCU的ADC和PWM引脚。下图显示了STM32F103C8T6 MCU的引脚布局。
如您所见,有10个ADC引脚(PA0 - PA7和PB0 - PB1)和15个PWM引脚(PA0 - PA3 - PA3,PA6 - PA6 - PA10,PB0 - PB0 - PB1,PB1,PB6 - PB9)。
因此,PA3用作连接锅和PA0的ADC引脚用作连接伺服电机PWM引脚的PWM引脚。
用于伺服电机控制的STM32编程
使用STM32F103C8T6蓝色药丸控制伺服电机的代码非常简单,实际上,如果您有与Arduino接口伺服电机的经验,那么编写代码非常相似。但是关于ADC,您需要记住一件事。
如果您参考STM32F103C8T6 MCU的数据表,则您会注意到ADC具有12位分辨率。这意味着STM32F103C8T6的ADC的输出的值将在0到2^12之间,即0 - 4096。
按照Mg 996R伺服电机的规范,最大旋转角度为120度。因此,在程序中,为了将0 - 4096映射到角度0-120,我们必须将ADC的输出值除以4096/120,即34。
如果您的最大角度为180度的SG90伺服电动机,则必须将ADC的输出除以22。
代码
以下是将伺服电机与STM32F103C8T6 MCU连接的简单代码实现。
#include
int servopin = pa0;
int potpin = pa3;
int potvalue = 0;
int servoangle = 0;
伺服迈塞尔河;
void setup()
{
myservo.attach(伺服);
}
void loop()
{
potvalue = aLATERED(POTPIN);
servoangle =(potvalue/34);
myservo.write(servoangle);
延迟(100);
}
在职的
该项目的工作非常简单。首先,电位计的值由STM32蓝色药丸MCU的ADC读取。然后将ADC的输出缩放到伺服电动机的旋转角度。
使用此值,将伺服电动机驱动到该特定角度。另外,您可以在角度0度和120度之间实现完整的扫描功能(如果MG 996R伺服)。
结论
这里实施了用于控制使用STM32F103C8T6蓝色药丸板的简单项目。该项目中使用了一种名为MG 996R的高级伺服电机进行示范。