智能车制作

标题: k60舵机电机程序,能检测PWM波,但舵机不转 [打印本页]

作者: 夏琪1991    时间: 2013-6-11 23:11
标题: k60舵机电机程序,能检测PWM波,但舵机不转
#include "common.h"
#include "include.h"
#define Mid_duty   7600
#define Half_Right 8800
#define Right      9500
#define Half_Left  6000
#define Left       5500

/*************************************************************************/
void Init_PWM()
{
  FTM_PWM_init(FTM0,CH0,35000,30);    //电机驱动,为FTM0_CH0,PTC1此时占空比为0
  FTM_PWM_init(FTM0,CH1,35000,800);    //舵机驱动初始化,为FTM0_CH1,PTC2
  FTM_PWM_init(FTM0,CH2,35000,10);    //电机驱动,为FTM_CH2,PTC3
  FTM_PWM_init(FTM1,CH0,35000,10);
  
}
void Direction_Motor()
{
  //舵机处于之间值
  FTM_PWM_Duty(FTM0,CH1,Mid_duty);
  time_delay_ms(500);
  //开始右偏
  FTM_PWM_Duty(FTM0,CH1,Half_Right);
   time_delay_ms(500);
   
  FTM_PWM_Duty(FTM0,CH1,Right);
   time_delay_ms(500);
   
  FTM_PWM_Duty(FTM0,CH1,Mid_duty);
   time_delay_ms(500);
  //开始左偏
   FTM_PWM_Duty(FTM0,CH1,Half_Left);
    time_delay_ms(500);
   
   FTM_PWM_Duty(FTM0,CH1,Left);
    time_delay_ms(500);
   
   FTM_PWM_Duty(FTM0,CH1,Mid_duty);
    time_delay_ms(500);
  
}
void Motor()
{
    FTM_PWM_Duty(FTM0,CH0,60);   //控制电机正转
    FTM_PWM_Duty(FTM0,CH2,0);    //反转
}
void main()
{
  
// DisableInterrupts;
    Init_PWM();
    u32 i;
  
  //当前为输入状态
   
//  EnableInterrupts;
  
    while(1)
    {
      
     Direction_Motor();
   //  Motor();
     
     for (i=10; i>1; i--)
     {
       FTM_PWM_Duty(FTM1,CH0,i*10);
       time_delay_ms(100);
     }
        
    }

  
  
}
这是我写的程序,,,不知道哪有问题???

作者: ⊙Lin⊙    时间: 2013-6-11 23:38
不是有PWM就能动的,还要有合适的频率。
作者: vip101vip    时间: 2013-6-12 10:22
你能测出PWM   那就看看是否共地吧
作者: 张胜金    时间: 2013-6-12 15:11
我当时没有设置输入输出引脚,不知道你的是不是这个原因。还有你的舵机不可以是35000HZ的频率啊。还有楼上说的共地。
作者: 夏琪1991    时间: 2013-6-12 15:18
张胜金 发表于 2013-6-12 15:11
我当时没有设置输入输出引脚,不知道你的是不是这个原因。还有你的舵机不可以是35000HZ的频率啊。还有楼上说 ...

嗯  频率我知道了   ftm1- ch0通道不是默认了是ptc1引脚吗???请问共地是什么意思??我不懂
作者: 张胜金    时间: 2013-6-12 15:26
夏琪1991 发表于 2013-6-12 15:18
嗯  频率我知道了   ftm1- ch0通道不是默认了是ptc1引脚吗???请问共地是什么意思??我不懂

/**************PWM 初始化***********/
void PWM_Init(void)
{
gpio_init (PORTC , 0, GPO,HIGH);//电机使能
gpio_init (PORTA , 8, GPO,HIGH);//舵机使能
FTM_PWM_init(FTM1,CH0,65,rol_mid);//舵机FTM,必须中路 A8
FTM_PWM_init(FTM0,CH0,12000,10);//电机C1
FTM_PWM_init(FTM0,CH1,12000,10);//电机C2
}
/************** 电机控制****************/
void PWMoutVec(int Velocity) // 电机正转  
//Velocity速度速率
/*
      INH  IN1   IN2   
       1    1     0   正
       1    0     1   反
       C5   C1    C2  接线
*/
{

  FTM_PWM_Duty(FTM0,CH0,Velocity);//电机FTM1  CH6(PTD6) /*设置电机速度*/
  FTM_PWM_Duty(FTM0,CH1,0);//电机FTM1  CH7(PTD7)
}
void PWMoutStopVec(void) // 停车
{
   //IN1=1,In2=0;正转
   FTM_PWM_Duty(FTM0,CH0,0);//电机FTM1  CH6(PTD6)
   FTM_PWM_Duty(FTM0,CH1,0);//电机FTM1  CH7(PTD7)
   //能耗制动
}
void PWMoutreVec(int Velocity)// 电机反转
{
      if(Velocity>667) Velocity=667;
      FTM_PWM_Duty(FTM0,CH0,0);//电机FTM1  CH6(PTD6)
      FTM_PWM_Duty(FTM0,CH1,Velocity);//电机FTM1  CH7(PTD7) /*设置电机速度*/   
}
//------------------------------------舵机---------------------------------------------
void setPWM_duoji(int n)
{
    FTM_PWM_Duty(FTM1,CH0,n);//舵机 A8
}
这是我的函数。 gpio_init (PORTC , 0, GPO,HIGH);//电机使能
gpio_init (PORTA , 8, GPO,HIGH);//舵机使能
我认为主要是这一句。还有共地就是把你的舵机GND和单片机的GND和稳压GNDl连接在一起。


作者: 夏琪1991    时间: 2013-6-12 15:44
张胜金 发表于 2013-6-12 15:26
/**************PWM 初始化***********/
void PWM_Init(void)
{

非常感谢啊       果然还是要把舵机和电机相应引脚输出

作者: 厚朴    时间: 2013-6-12 23:09
“FTM_PWM_init(FTM0,CH0,35000,30);    //电机驱动,为FTM0_CH0,PTC1此时占空比为0
  FTM_PWM_init(FTM0,CH1,35000,800);    //舵机驱动初始化,为FTM0_CH1,PTC2
  FTM_PWM_init(FTM0,CH2,35000,10);    //电机驱动,为FTM_CH2,PTC3
  FTM_PWM_init(FTM1,CH0,35000,10);“
//////////////////////////////////////////////////////////////////////////////////////
首先,同一FTM模块只能用同一频率。所以舵机和电FTM应用不同的;
其次,你电机和舵机用同一频率,电机35KHz,可能行,舵机行吗?
作者: 厚朴    时间: 2013-6-12 23:11
夏琪1991 发表于 2013-6-12 15:44
非常感谢啊       果然还是要把舵机和电机相应引脚输出

你计算机的?

作者: 张胜金    时间: 2013-6-13 11:50
夏琪1991 发表于 2013-6-12 15:44
非常感谢啊       果然还是要把舵机和电机相应引脚输出

共同学习,共同进步。

作者: 夏琪1991    时间: 2013-6-14 19:14
厚朴 发表于 2013-6-12 23:11
你计算机的?

嗯  是的
作者: 厚朴    时间: 2013-6-15 10:22
夏琪1991 发表于 2013-6-14 19:14
嗯  是的

你们做的怎么样了?

作者: tcxz111    时间: 2013-6-15 18:17
摄像头有多快了?多交流哈
作者: 冬晨夏夜    时间: 2013-11-3 19:29
:P:P:P:P:P:P:P:P:P
作者: somebodyes    时间: 2014-1-23 11:09

作者: somebodyes    时间: 2014-2-5 08:40
{:soso_e193:}
作者: somebodyes    时间: 2014-2-16 09:35
学习了
作者: 假精哟    时间: 2014-2-23 17:08
张胜金 发表于 2013-6-12 15:26
/**************PWM 初始化***********/
void PWM_Init(void)
{

gpio_init (PORTC , 0, GPO,HIGH);//电机使能
gpio_init (PORTA , 8, GPO,HIGH);//舵机使能
、、、、、、、、、、、、、、、、、
请问这是什么意思?  不应该是只要设置电机和舵机所对应P波口就可以有反应吗?

作者: 假精哟    时间: 2014-2-23 17:17
夏琪1991 发表于 2013-6-12 15:44
非常感谢啊       果然还是要把舵机和电机相应引脚输出

请问这是什么意思?  不应该是只要设置电机和舵机所对应P波口就可以有反应吗?

作者: 假精哟    时间: 2014-2-24 16:24
厚朴 发表于 2013-6-12 23:11
你计算机的?

夏琪1991 发表于 2013-6-12 15:44
非常感谢啊       果然还是要把舵机和电机相应引脚输出


请问这是什么意思?  不应该是只要设置电机和舵机所对应P波口就可以有反应吗


作者: 的身份    时间: 2019-5-17 17:02
张胜金 发表于 2013-6-12 15:26
/**************PWM 初始化***********/
void PWM_Init(void)
{

老哥,能说一下你的gpio口对应的引脚是怎么找的吗?  还是说用gpio直接使能舵机和电机的引脚

作者: Muller    时间: 2019-11-19 13:06
夏琪1991 发表于 2013-6-12 15:44
非常感谢啊       果然还是要把舵机和电机相应引脚输出

请问“把舵机和电机相应引脚输出”是什么意思啊,我可能和你遇到了同样的问题




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2