赞
踩
int sp1 = 3; //接 Arduino UNO的~3 号引脚 输出脉冲波
int pulsewidth;//定义脉冲变量
int val;
int val1;
int myangle1;
//定义一个脉冲函数 每次都是0.5ms高电平,1.98ms低电平,然后再0.52ms低电平,17ms延时低电平
void servopulse(int sp1,int val1)
{
myangle1 = map(val1,0,180,500,2480);
digitalWrite(sp1,1);//PWM口电平至高
delayMicroseconds(myangle1);//延时 脉宽值的微秒数
digitalWrite(sp1,0);//PWM口电平至低
delay(20-val1/1000);
}
void setup()
{
pinMode(sp1,OUTPUT);//设定PWM口为输出接口
Serial.begin(9600);
Serial.println("servu=o_seral_simple ready");
//看电调说明书 ,设置油门行程时,一开始需要把遥控器打到最高点。i<=110大概是2s多
for(int i=0;i<=110;i++)
{
servopulse(sp1,150);//引用脉冲函数
}
//等电机发出B-B两声响后,就是2秒后,把油门打到最低点
for(int i=0;i<=55;i++)
{
servopulse(sp1,20);//引用脉冲函数
}
//后面提示后 就可以控制电机转动了
for(int i=0;i<=65535;i++)
{
servopulse(sp1,50);//引用脉冲函数
}
Serial.println("Hello WORLD");
}
void loop()
{
//将0-9的数转换为0-180度,并让LED闪烁相应的次数
/*val = '8' ;
if ( val>'0'&&val<='9')
{
val1 = map(val1,0,9,0,180);
//将角度转化为500-2480的脉宽值
Serial.print("moving servo to ");
Serial.print(val1,DEC);
Serial.println();
for (long int i = 0;i<=65535;i++)
{ //给予电机足够的时间让它转到指定的角度
// servopulse(sp1,val1);//
}
}*/
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。