专注电子技术学习与研究
当前位置:单片机教程网 >> Arduino >> 浏览文章

arduino控制舵机程序

作者:佚名   来源:哭笑不得空间   点击数:  更新时间:2014年08月12日   【字体:

以前没有接触过硬件,因为把弄APM2.5不得不去接触arduino板。Arduino是块极易上手的控板,不像单片机,你要花费大量的时间去学习预备知识,它只要你稍微懂点C语言既能上手。对于我这种业余爱好者,不二之选。手头有几个舵机,首次接触arduino就是用它来操作舵机。Arduino有个底层库(Servo类),包含驱动舵机的基本功能:

attach()//连接舵机
write()//角度控制
writeMicroseconds()//参数为pwm值,1000:逆时针旋转180度,1500:到达中点,2000:顺时针旋转180度
read()//读上一次舵机转动角度
attached()//
detach()//断开舵机连接
实例:
器材:arduino板、舵机、杜邦线若干 
程序可以在IDE>File>Examples>Servo>Sweep中找到
这里介绍不调用Servo库,写的Servo.write()函数,有些问题,串口输入的值与伺服转动的角度不相同。郁闷中!!!
int value;
int pulsewidth;
int pin=9;
void servowrite(int pin,int value)
{
  digitalWrite(pin,HIGH);
  value=map(value,0,180,700,2300);//舵机的PWM值在700~2300间,这是粗略的PWM数值转换
  digitalWrite(pin,LOW);
}
void setup()
{
 Serial.begin(9600);
 pinMode(pin,OUTPUT);
}
void loop()
{
  if(Serial.available()>0)
  {
    int val=Serial.read();
    value=val-'0';//转换为数字
    value=map(value,0,9,0,180);
    Serial.print("moving servo to");
    Serial.print(value);
    servowrite(pin,value);
   }
    
}
关闭窗口

相关文章