Arduino-舵机实验

2019/09 01 11:09
#include <Servo.h>

Servo myservo;
bool dir = false;

void setup() {
  myservo.attach(9); // 接9号
}

void loop(){
  int angle = myservo.read();
  if (dir)
  {
    if (++angle >= 180)
    {
      angle = 180;
      dir = !dir;
    }
  }
  else
  {
    if (--angle <= 0)
    {
      angle = 0;
      dir = !dir; 
    }
  }
  myservo.write(angle);
  delay(10);
}
图片3.png

舵机棕色线接地,红色线接电源,橙色线为信号线接PIN9

用Arduino 控制舵机的方法有两种,一种是通过Arduino 的普通数字传感器接口产生占空比不同的方波,模拟产生PWM 信号进行舵机定位,第二种是直接利用Arduino 自带的Servo 函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2 路舵机,因为Arduino 自带函数只能利用数字9、10 接口。Arduino 的驱动能力有限,所以当需要控制1 个以上的舵机时需要外接电源。