“第七课--Microduino 舵机驱动,不用库函数/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将叫大家使用Microduinoarduino驱动舵机,不调用库函数 ==设备== '''Microduino-Core''' '''Microduino-FT...") |
(→视频) |
||
第82行: | 第82行: | ||
串口输入数字,舵机转动相应角度 | 串口输入数字,舵机转动相应角度 | ||
==视频== | ==视频== | ||
+ | http://v.youku.com/v_show/id_XNjc1NjUwOTUy.html |
2014年2月21日 (五) 04:07的版本
目的本教程将叫大家使用Microduinoarduino驱动舵机,不调用库函数 设备Microduino-Core Microduino-FT232R
原理图程序int sp1=7;//定义舵机接口数字接口7
int pulsewidth;//定义脉宽变量
int val;
int val1;
int myangle1;
//下面是servopulse函数部分(此函数意思:也就是說每次都是0.5ms高電平 1.98ms低電平 然後再0.52ms低電平 17ms延時也是低電平)
void servopulse(int sp1,int val1)//定义一个脉冲函数
{
myangle1=map(val1,0,180,500,2480);
digitalWrite(sp1,HIGH);//将舵机接口电平至高
delayMicroseconds(myangle1);//延时脉宽值的微秒数
digitalWrite(sp1,LOW);//将舵机接口电平至低
delay(20-val1/1000);
}
//servopulse函数部分到此结束
void setup()
{
pinMode(sp1,OUTPUT);//设定舵机接口为输出接口
//设置两组串口波特率
Serial.begin(9600);
delay(500);
Serial.println("servu=o_seral_simple ready" ) ;
}
void loop()//将0到9的数转化为0到180角度,并让LED闪烁相应数的次数
{
val=Serial.read();//读取串行端口的值
if(val>'0'&&val<='9')
{
val1=val-'0';//将特征量转化为数值变量
val1=map(val1,0,9,0,180);//将角度转化为500-2480的脉宽值
Serial.print("moving servo to ");
Serial.print(val1,DEC);
Serial.println();
for(int i=0;i<=50;i++)//给予舵机足够的时间让它转到指定角度
{
servopulse(sp1,val1);//引用脉冲函数
}
}
}
调试步骤一:搭建硬件电路,如下图
步骤二:拷贝代码到ide中,编译并运行 步骤三:打开串口监视器,输入1到9之间的数字
结果串口输入数字,舵机转动相应角度 视频 |