利用arduino 控制舵机转动








利用arduino 控制舵机转动_第1张图片

       买来的舵机通过杜邦线将舵机的与Arduino板相连,此处所用的Arduino为2560的,所以通过Arduino的集成开发环境时应选择该版本,以及选择好对应的端口,这样才能上传成功,
这里舵机有三条线,其中那条灰色的线接到板子上标有GND的接口,中间的线接到5V接口,另外那条线应该接到标有PWD那排里,随便指定一个接口作为信号输出口,利用attach()函数,
该函数包含在头函数Servo.h当中,这里利用串口发消息来控制舵机运动,串口频率按照一般的设置成9600bps。
具体实现代码如下:
#include
Servo ser;
int pos;
int i=0;
void setup() {
  ser.attach(9);
  Serial.begin(9600);
}

void loop() {
  pos = ser.read();Serial.println(pos);
  if(Serial.available()!= '-1')
  {
     if(Serial.read()=='+'&& pos<180)
     {  exp1:for(i=0;i<180;i++)
        {ser.write(++pos);delay(100);
         if(Serial.read()=='s')
     {  while(Serial.read()!='g')
        {delay(100);
        if(Serial.read()=='0')break;
        else if(Serial.read()=='1') goto exp;}
     }
      if(pos==180) {Serial.flush(); break;}}
     }
     if(Serial.read()=='-'&& pos>0)
     {exp:  for(i=0;i<180;i++)
        {ser.write(--pos);delay(100);
         if(Serial.read()=='s')
     {  while(Serial.read()!='g')
        {delay(100);
        if(Serial.read()=='0')break;
        else if(Serial.read()=='1') goto exp1;
        }
     }
      if(pos==0){Serial.flush(); break;}}
     }
     if(Serial.read()=='m') ser.write(90);
    if(Serial.read()=='zero')ser.write(0);
    if(Serial.read()=='end') ser.write(180);
    if(Serial.read()=='exit') return;
  }
}

你可能感兴趣的:(利用arduino 控制舵机转动)