打印

mg995舵机问题,大牛们赐教啊!!

[复制链接]
8821|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
neuqyl|  楼主 | 2008-12-30 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天买了个mg995舵机来玩玩,用51开发板来,写了下面这段程序:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit MOTOR=P0^2;
uint time[4]={1500,0,1500,2000};    //高电平时间 1.5ms 0ms 1.5ms 2ms
uchar level=0;
uchar count=0;
uchar delayflag=1;

void main()
{
 MOTOR=0;
 TMOD=1;
 TH0=65536;
 TL0=65536;
 EA=1; 
 ET0=1;
 TR0=1;
 

 while(1)
    {
    }   
}

void int0() interrupt  1
{
    if (level==0)
        {
        MOTOR=1;
        TH0=(65536-time[count])/256;     //高电平保持时间
         TL0=(65536-time[count])%256;
        level=1;
        }
    else 
        {
        MOTOR=0;
        TH0=(65536-(18000-time[count]))/256;      //低电平保持时间
         TL0=(65536-(18000-time[count]))%256;
        delayflag++;
        if (delayflag==50)         //使波形保持50次
            {
            delayflag=1;
            count++;
            if (count==4) count=0;   //转到下一个波形
            }
        level=0;
        }


按照PWM来看的话转动角度应该是与舵机成90度,0度,90度,45度。但是舵机却是90度-0度之间往复运动。第一次用舵机,还不太会,请大牛们帮看看到底是什么问题。再就是请大牛们发几段51控制舵机的程序吧,介绍一点用mg995舵机的经验也行,谢谢了~~~~

相关帖子

沙发
NE5532| | 2009-1-2 20:43 | 只看该作者

我的书里有例程。

使用特权

评论回复
板凳
neuqyl|  楼主 | 2009-1-4 00:45 | 只看该作者

谢了~

谢谢大虾了

使用特权

评论回复
地板
天问剑语| | 2013-8-4 09:39 | 只看该作者
我也遇到问题了  不知道大侠解决了没有啊

使用特权

评论回复
5
李威威0| | 2013-9-15 11:40 | 只看该作者
你的高电平时间只有两种情况,舵机停止和左极限位置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝