智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6580|回复: 18
打印 上一主题 下一主题

舵机只能单方向转

  [复制链接]

4

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
822
威望
414
贡献
270
兑换币
266
注册时间
2014-1-14
在线时间
69 小时
跳转到指定楼层
1#
发表于 2014-3-9 11:38:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nzfz_2 于 2014-3-9 11:41 编辑

用野火KL26单片机控制舵机,周期是20ms,也就是频率是50Hz,计算的中间占空比是7.5,但是无论怎样调占空比舵机只往一个方向转。求指教!!!
回复

使用道具 举报

11

主题

194

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4598
威望
2122
贡献
234
兑换币
1571
注册时间
2012-12-8
在线时间
1121 小时
2#
发表于 2014-3-9 12:03:48 | 只看该作者
木有与单片机共地?
回复 支持 反对

使用道具 举报

25

主题

1217

帖子

0

精华

知名人物

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
27554

论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章资源大师奖章

QQ
威望
18751
贡献
5861
兑换币
3255
注册时间
2012-6-6
在线时间
1471 小时
3#
发表于 2014-3-9 12:07:11 | 只看该作者
怎么可能?那一个方向转到底了怎么办? 难道舵机是360度旋转的?
回复 支持 反对

使用道具 举报

55

主题

1235

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6072
威望
3023
贡献
1595
兑换币
1879
注册时间
2012-11-6
在线时间
727 小时
4#
发表于 2014-3-9 12:10:03 | 只看该作者
共地!
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
5#
发表于 2014-3-9 12:25:37 | 只看该作者
不可能吧,一个固定的占空比肯定对应一个角度  你居中值校准没  
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
822
威望
414
贡献
270
兑换币
266
注册时间
2014-1-14
在线时间
69 小时
6#
 楼主| 发表于 2014-3-9 14:41:56 | 只看该作者
andyxu 发表于 2014-3-9 12:25
不可能吧,一个固定的占空比肯定对应一个角度  你居中值校准没

校准不到中值,无论我调的比理论中值大还是小都向一个方向偏转。接线也都接好这,稳压模块输出的6V电压,信号PWM模块输入。

#include "common.h"
#include "include.h"

/*!
*  @brief      main函数
*  @since      v5.0
*  @note       TPM PWM 测试 (TPM 类似 K60 的 FTM)
*/
void main(void)
{
   
    tpm_pwm_init(TPM0, TPM_CH3,50,8);        //初始化 TPM PWM ,使用 TPM0_CH3 ,占空比为8      
                                                    // fire_port_cfg.h 里 配置 TPM0_CH3 对应为 PTE30
   while(1)
    {
#if 1
      DELAY_MS(500);
      tpm_pwm_duty(TPM0, TPM_CH3,5.5);     //设置占空比 为 30 / TPM0_PRECISON
      DELAY_MS(500);
     tpm_pwm_duty(TPM0, TPM_CH3,7.5);     //设置占空比 为 30 / TPM0_PRECISON
     DELAY_MS(700);
       tpm_pwm_duty(TPM0, TPM_CH3,8.5);     //设置占空比 为 30 / TPM0_PRECISON
#endif
    }
}

回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
822
威望
414
贡献
270
兑换币
266
注册时间
2014-1-14
在线时间
69 小时
7#
 楼主| 发表于 2014-3-9 14:46:06 | 只看该作者
.o烏龍茶o灬 发表于 2014-3-9 12:03
木有与单片机共地?

什么叫共地?我们舵机接的是稳压模块输出的6V电压,单片机只输出PWM信号。
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
8#
发表于 2014-3-9 15:01:46 | 只看该作者
nzfz_2 发表于 2014-3-9 14:41
校准不到中值,无论我调的比理论中值大还是小都向一个方向偏转。接线也都接好这,稳压模块输出的6V电压, ...

ni你先用示波器看一下  输出波形跟自己写的程序一不一致    还有 tpm_pwm_duty(TPM0, TPM_CH3,5.5);     //设置占空比 为 30 / TPM0_PRECISON   这里能设置5.5吗?我的意思是一般寄存器不是只能是整型的
回复 支持 反对

使用道具 举报

11

主题

194

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4598
威望
2122
贡献
234
兑换币
1571
注册时间
2012-12-8
在线时间
1121 小时
9#
发表于 2014-3-9 16:18:30 | 只看该作者
nzfz_2 发表于 2014-3-9 14:46
什么叫共地?我们舵机接的是稳压模块输出的6V电压,单片机只输出PWM信号。

单片机与舵机的地有没有相连接?简单的说就是你单片机和舵机是不是公用一个电池来供电?
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
822
威望
414
贡献
270
兑换币
266
注册时间
2014-1-14
在线时间
69 小时
10#
 楼主| 发表于 2014-3-9 16:26:27 | 只看该作者
andyxu 发表于 2014-3-9 15:01
ni你先用示波器看一下  输出波形跟自己写的程序一不一致    还有 tpm_pwm_duty(TPM0, TPM_CH3,5.5);      ...

用示波器看波形正确,那个小数是占空比,应该能兼容,我改成整数试了试还是不行,我把程序改成下面样子,一按开关只轻轻转一下就不动了。

uint8 i;
    uint32 duty;
    tpm_pwm_init(TPM0, TPM_CH3,100,duty);        //初始化 TPM PWM ,使用 TPM0_CH3 ,占空比为 duty/ TPM0_PRECISON
   
   
   
     while(1)
     {
      for(i = 93;i<100;i++)
        {
             tpm_pwm_duty( TPM0, TPM_CH3,100-i);
             DELAY_MS(500);
        }
        for(i=99;i>92;i--)
         {
             tpm_pwm_duty(TPM0, TPM_CH3,100-i);
             DELAY_MS(500);
   
         }
     }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 11:13 , Processed in 0.078685 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表