文章目录
- 实物
- 接线
- msp432程序
实物
https://www.cnblogs.com/yasina/p/12439035.html
接线
接线:
pwm:橙色信号线
VCC:红色(4.8-6v)不能是3.3V
GND:棕色
(1)单片机需要输出PWM波形控制舵机角度。
(2)PWM周期必须是50ms。
(3)PWM高电平时间在0.5ms到2.5ms之间,分别对应0到180度。对应关系如下图。
(4)不同型号的舵机这个高电平时间段有区别,可以看一下各自舵机的用户手册。
msp432程序
这段程序是一个控制舵机的代码,使用的是MSP432P4单片机。
首先,定义了一个变量 duty_pwm,表示舵机的占空比,初始值为 1500。然后定义了一个 Timer_A_PWMConfig 结构体变量 pwmConfig,用于配置 PWM 的参数,包括时钟源、分频系数、周期、比较寄存器等。
在 main 函数中,首先初始化了单片机的一些设置,如禁用看门狗、设置 Flash 等待状态、设置 DCO 频率、启用浮点运算等。
接下来,将 GPIO2.4 配置为输出模式,用于输出 PWM 的信号。然后调用 Timer_A_generatePWM 函数,生成 PWM 信号,并将配置参数传入。
之后,将 GPIO2.0 配置为输出模式,并设置输出低电平。
接着,将 GPIO1.1 和 GPIO1.4 配置为输入模式,并带上拉电阻。
在一个无限循环中,通过检测按键的状态来改变舵机的占空比。如果按键1被按下,首先判断按键1是否为按下状态,然后切换 GPIO2.0 的输出电平,即实现一个LED的闪烁效果。接着进入一个循环,等待按键1释放(松开)。待按键1释放后,判断当前的占空比是否小于2000,如果是,则将 duty_pwm 的值增加100,并更新 PWM 的配置参数。最后调用 Timer_A_generatePWM 重新生成 PWM 信号。
同样的逻辑也适用于按键2,只是判断按键2的状态和更新占空比的条件不同。
整个程序实现了通过按键控制舵机占空比的功能,从而改变舵机的位置。
程序下载:https://github.com/xddun/blog_code_search