TI工程师您好!
本人初学者,问些比较初级的问题,还望给予帮助。
舵机型号MG996R
我想输入一个角度直接输出对应的控制的PWM波的占空比
但是我在用
#include "io430.h"
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT2; P1SEL |= BIT2; CCR0 = 656-1; CCTL1 = OUTMOD_7; CCR1 = 384; TACTL = TASSEL_1 + MC_1; __bis_SR_register(LPM3_bits);}
如果改CCR1的值可以实现改占空比,控制角度好用,但是之后我写了
#include "io430.h"
#define ll long long int
#define uint unsigned int
void Angel(int ratio)
{
ll i;
i=163800+ratio*3640;
i=i/1000;
CCR0 = 656-1; CCTL1 = OUTMOD_7; CCR1 = i; TACTL = TASSEL_1 + MC_1;}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT2; P1SEL |= BIT2;
Angel(180); LPM0;
}
为什就不好用呢?
备注:20ms周期,其中0.5ms对应0°,1ms对应45°,1.5ms对应90°。
还有问题就是舵机为什么一直震,怎么才能消震。
还有就是舵机的反转问题,如何在程序上实现反转?
还是跟舵机型号有关,这个舵机给的使用说明书没有给这方面的说明。
wszqq:
这个需要仔细看MG996R资料,实现正反转就是占空比不同来实现的。震动有可能是控制电压不稳造成的。