舵机SG90 只能朝一个方向转动

2019-07-15 18:36发布

如标题:#include<reg52.h>
#include<intrins.h>
sbit gate=P1^0;         


void time0_Init() //定时器初始化  定时0.5ms
{
TMOD =0x01; //定时器0工作在方式1
IE= 0x82;
TH0 = (65536-500)/256;
TL0 = (65536-500)%256;
TR0=1; //定时器开始
}

void timer(void)interrupt 1
{
static unsigned char t=1;
TH0 = (65536-500)/256;
TL0 = (65536-500)%256;

if(t<=4)                   //这里t的取值代表转动的角度 无论我这里取1-5里面的任何数  都是朝一个方向转
   gate=1;
else
   gate=0;
t++;
if(t==41)
  t=1;
}

void main()
{       
Time0_Init();
while(1);
}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
1563661808
1楼-- · 2019-07-15 23:37
童鞋 你想问什么呢?  麻烦描述清楚一点
babamamadeningb
2楼-- · 2019-07-16 04:09
 精彩回答 2  元偷偷看……
woodmice
3楼-- · 2019-07-16 07:07
朝一个方向?不停在固定角度吗?
babamamadeningb
4楼-- · 2019-07-16 08:24
woodmice 发表于 2014-9-4 16:10
朝一个方向?不停在固定角度吗?

不是啊 输入一个角度以后 就不停的朝一个方向转动
woodmice
5楼-- · 2019-07-16 11:50
从你的程序看,没看出来有啥问题(未确定是否会因为系统晶振不同产生计算错误)
SG90应该是只在180度范围内转动,你说的它在朝一个方向连续转动,你的这个‘舵机’是不是SG90?如果你有多个SG90,建议重新接一个在电路上试一下
如果有条件,建议将控制接到示波器上查看
shiqiankun424
6楼-- · 2019-07-16 16:06
检查下晶振频率看下定时器的值是否设置正确,占空小于一定值或者频率不对有可能会一直转。
有条件的话拿示波器观察下输出波形,那是最直接的。

一周热门 更多>