想做一个arduino uno红外遥控控制舵机的实验,总是不成功

下面是代码,写入之后按红外遥控器,舵机偶尔会抖动一下,也不知道是不是转到了角度,想咨询下是程序哪里的问题
#include "InfraredRemote.h"
#include <Servo.h> //引入lib
Servo myservo; // 创建一个伺服电机对象
void setup()
{
pinMode(IR_IN,INPUT);//设置红外接收引脚为输入
timer1_init();//定时器初始化
myservo.attach(9); // 9号引脚输出电机控制信号
//仅能使用9、10号引脚
}
void loop()
{
remote_decode(); //译码
Deal_Print();
// adrL_code = 0x00;
delay(15); // 等待电机旋转到目标角度
}
void Deal_Print()
{
if( adrL_code == 0x45 )
{
myservo.write(10); // 设定伺服电机的位置
}
else if( adrL_code == 0x46)
{
myservo.write(20); // 设定伺服电机的位置
}
else if( adrL_code == 0x47 )
{
myservo.write(30); // 设定伺服电机的位置
}
else if( adrL_code == 0x44 )
{
myservo.write(40); // 设定伺服电机的位置
}
else if( adrL_code == 0x40 )
{
myservo.write(50); // 设定伺服电机的位置
}
else if( adrL_code == 0x43 )
{
myservo.write(60); // 设定伺服电机的位置
}
else if( adrL_code == 0x07 )
{
myservo.write(70);// 设定伺服电机的位置
}
else if( adrL_code == 0x15)
{
myservo.write(80); // 设定伺服电机的位置
}
else if( adrL_code == 0x09 )
{
myservo.write(90); // 设定伺服电机的位置
}
else if( adrL_code == 0x16)
{
myservo.write(100); // 设定伺服电机的位置
}
else if( adrL_code == 0x19)
{
myservo.write(110); // 设定伺服电机的位置
}
else if( adrL_code == 0x0d)
{
myservo.write(120); // 设定伺服电机的位置
}
else if( adrL_code == 0x0c)
{
myservo.write(130); // 设定伺服电机的位置
}
else if( adrL_code == 0x18 )
{
myservo.write(140); // 设定伺服电机的位置
}
else if( adrL_code == 0x5e )
{
myservo.write(150); // 设定伺服电机的位置
}
else if(adrL_code == 0x08 )
{
myservo.write(160); // 设定伺服电机的位置
}
else if( adrL_code == 0x1c )
{
myservo.write(170); // 设定伺服电机的位置
}
else if( adrL_code == 0x5a )
{
myservo.write(179); // 设定伺服电机的位置
}
else if( adrL_code == 0x42)
{
myservo.write(34); // 设定伺服电机的位置
}
else if( adrL_code == 0x52)
{
myservo.write(93); // 设定伺服电机的位置
}
else if( adrL_code == 0x4a)
{
myservo.write(103); // 设定伺服电机的位置
}
}

第1个回答  2015-03-20
需要给你做一份吗追问

恩恩好啊好啊~加分重谢

追答

需要定做可以丘上说
我id

相似回答