找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3473|回复: 2
打印 上一主题 下一主题
收起左侧

关于MG995舵机 依靠定时器模拟PWM控制

[复制链接]
跳转到指定楼层
楼主
ID:224914 发表于 2017-11-11 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



先上一波代码,有问题 ,依然是看网上知道MG995 舵机 周期是20MS
占空比0.5ms是0° 2.5是180°  1.5ms是90°  但是舵机一直在都懂  现在有点怀疑是舵机有问题
有人能帮助解决下困难吗

# include "reg52.h"
typedef unsigned int uint ;
typedef unsigned char uchar ;
sbit Stevo =P1^0;
uint djzz=15;
void time0init();

void main()
{
        time0init();
        djzz=25;
}

void time0init()
{
        TMOD=0X01;
        TH0=(65536-20)/256;
        TL0=(65536-20)%256;
        EA=1;
        TR0=1;
        ET0=1;
}
void time0 ()  interrupt 1
{

        uint count =0;  //占空比
        TR0=0;
        TH0=(65536-40)/256;
        TL0=(65536-40)%256;
        count++;
        if(count >500)         //40*500=2000=20ms 一个周期
   {
        count=0;
   }
        if( djzz<count )           //  所需要角度 的电压固定  但是占空比给的电压打  说明角度大  因此需要角度小一点  
        {
                 Stevo=0;           // 给高转
        }
        else
                Stevo=1;        
                TR0=1;        
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:224914 发表于 2017-11-16 20:47 | 只看该作者
问题找到了  ,原因是没有加延时,没有让舵机有足够时间去反应
回复

使用道具 举报

板凳
ID:321873 发表于 2018-5-4 10:27 | 只看该作者
你好,请问一下,需要在哪里加延时?我还是不太会用
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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