arduino驱动舵机,不调用库函数

ARDUINO 代码复制打印

int sp1=10;//定义舵机接口数字接口7int 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);//引用脉冲函数  }}}
int sp1=10;//定义舵机接口数字接口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);//引用脉冲函数

}

}



}

<img class="s" old="http://imgstore01.cdn.sogou.com/app/a/100520032/e198" smilieid="soso_e198" border="0" alt="" /> Togke兄加油,我觉得你非常非常厉害的啊。
这个就是一个简单的arduino不调用库函数驱动舵机的程序,输入0-9不同数字,舵机转动到相应的角度并返回pwm值。
Ansifa写的PWM介绍的帖子非常不错哦。

<img class="s" old="http://imgstore01.cdn.sogou.com/app/a/100520032/e149" smilieid="soso_e149" border="0" alt="" /> 现在开始接触新的控制方法了,希望一切顺利能在两个月内做出个简易的版本再慢慢升级更新吧<img class="s" old="http://imgstore01.cdn.sogou.com/app/a/100520032/e130" smilieid="soso_e130" border="0" alt="" /> 。用arm做了个舵机控制器后觉得其实PWM控制真的不是很喜欢,虽然用arm写确实比较麻烦。。熬了一周才写出来,完善通信又是一周时间。这次的485通信,基于cortex-m3和stm8的舵机控制器相对PWM的小土坡来说估计算是堵墙了,翻过去有一片不同的天了。希望能学到更多东西。大家一起加油吧<img class="s" old="http://imgstore01.cdn.sogou.com/app/a/100520032/e130" smilieid="soso_e130" border="0" alt="" /> 。

等着这个月收雕刻机了<img class="s" old="http://imgstore01.cdn.sogou.com/app/a/100520032/e102" smilieid="soso_e102" border="0" alt="" /> 嘻嘻
via - 极客工坊

标签: Arduino教程