舵机SG90 只能朝一个方向转动
时间:10-02
整理:3721RD
点击:
如标题:#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);
}
#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);
}
童鞋 你想问什么呢? 麻烦描述清楚一点
我想问的是舵机为什么不能朝反方向转动 是程序的问题还是舵机坏了?
朝一个方向?不停在固定角度吗?
不是啊 输入一个角度以后 就不停的朝一个方向转动
从你的程序看,没看出来有啥问题(未确定是否会因为系统晶振不同产生计算错误)
SG90应该是只在180度范围内转动,你说的它在朝一个方向连续转动,你的这个‘舵机’是不是SG90?如果你有多个SG90,建议重新接一个在电路上试一下
如果有条件,建议将控制接到示波器上查看
检查下晶振频率看下定时器的值是否设置正确,占空小于一定值或者频率不对有可能会一直转。
有条件的话拿示波器观察下输出波形,那是最直接的。
