#include<stdio.h>
#include</usr/include/wiringPi.h>
void init();
void change(int angle);
int main()
{
init();
int angle_0 = 1;
int angle_1 = 180;
// scanf("%d",&angle);
int timess = 100;
while(timess)
{
change(angle_0);
change(angle_1);
timess--;
}
return 0;
}
void change(int angle)
{
int i=0;
float x=0;
int k=180;
while(k--)
{
x=11.11*i;
digitalWrite(25,HIGH);
delayMicroseconds(500+x);
digitalWrite(25,LOW);
delayMicroseconds(19500-x);
if(i==angle)
break;
i++;
}
}
void init()
{
wiringPiSetup();
pinMode(25,OUTPUT);
}
用示波器看看波形吧
delayMicroseconds(500+x);
舵机高电平范围是500us-2.5ms,所以这个函数延时应该是us,毫秒太多了。
不好意思,看错了。
谢谢。试过了,不行。
是不是滞环、控制死区的问题?