K60笔记-模拟舵机控制

本程序使用山外库:http://git.oschina.net/chenxuuu/vcan-K60-V5.3

模拟舵机通过电压大小控制方向(好像是这样w)

所以和电机差不多

先初始化PWM口

ftm_pwm_init(S3010_FTM, S3010_CH,S3010_HZ,100);

然后和控制电机一样

ftm_pwm_duty(S3010_FTM, S3010_CH,1000);

和之前一样,可以把这个封装成函数

#define control_actuator_center 1380
#define control_actuator_min 1260
#define control_actuator_max 1500     //自测
/*!
 *  @brief      舵机输出函数
 *  @since      v1.1
 *  @note       输入值范围-1~1   浮点型
 *  Sample usage:            control_actuator(-0.2);    //输出舵机反向0.2
 */
void control_actuator(float Voltage)
{
    if(Voltage>1)
        Voltage=1;
    else if(Voltage<-1)
        Voltage=-1;

    if(Voltage<0)
    {
        ftm_pwm_duty(S3010_FTM, S3010_CH,(int)((control_actuator_center-control_actuator_min)*Voltage+control_actuator_center));
    }else
    {
        ftm_pwm_duty(S3010_FTM, S3010_CH,(int)((control_actuator_max-control_actuator_center)*Voltage+control_actuator_center));
    }
}

调用栗子

if(key_check(KEY_U) == KEY_DOWN)
{
    dj+=0.01;
    control_actuator(dj);
}
if(key_check(KEY_D) == KEY_DOWN)
{
    dj-=0.01;
    control_actuator(dj);
}

本文所用工程文件:http://git.oschina.net/chenxuuu/K60-test/tree/master/舵机

2 Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注